{ "openapi": "3.0.1", "info": {"title":"Latitude.sh API","version":"2023-06-01","description":"The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It allows you to perform the same actions as the Latitude.sh dashboard."}, "servers": [{"url":"https://api.latitude.sh","variables":{"latitude_api_key":{"default":""}}}, {"url":"http://api.latitude.sh","variables":{"latitude_api_key":{"default":""}}}], "tags": [{"name":"API keys"}, {"name":"Baselines (Preview)","description":"Preview. Available to teams with the `baselines_api` feature flag. The shape of these endpoints may change before general availability."}, {"name":"Billing"}, {"name":"Elastic Ips"}, {"name":"Events"}, {"name":"Firewalls"}, {"name":"IP Addresses"}, {"name":"Managed Databases","description":"Managed database instances (PostgreSQL, ClickHouse)"}, {"name":"Kubernetes Clusters"}, {"name":"LKS"}, {"name":"Marketplace apps"}, {"name":"Operating Systems"}, {"name":"Plans"}, {"name":"Public Networks"}, {"name":"Private Networks"}, {"name":"Projects"}, {"name":"Regions"}, {"name":"Roles"}, {"name":"SSH Keys"}, {"name":"Servers"}, {"name":"Block Storage"}, {"name":"Filesystem Storage"}, {"name":"Object Storage"}, {"name":"Tags"}, {"name":"Teams"}, {"name":"Team members"}, {"name":"Traffic"}, {"name":"User data"}, {"name":"User profile"}, {"name":"VPN Sessions"}, {"name":"Virtual machines"}, {"name":"Virtual machine backups"}, {"name":"Virtual machine restores"}], "paths": { "/auth/api_keys": { "get": { "summary": "List API keys", "operationId": "get-api-keys", "tags": ["API keys"], "security": [{"Bearer":[]}], "description": "Returns a list of all API keys.\n", "x-mint": {"href":"/api-reference/get-api-keys"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"tok_6VE1Wd37dXnZJ","type":"api_keys","attributes":{"name":"Dor Daidelos","token_last_slice":"2daaa","api_version":"2023-06-01","read_only":false,"allowed_ips":[],"created_at":"2026-01-14T15:56:29+00:00","updated_at":"2026-01-14T14:56:29+00:00","last_used_at":null,"user":{"id":"user_Wel4PnEAmauQYZz3Vz83CkyV2BW","email":"beckie.prosacco@willms.test"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/api_keys"}}}}}, "x-speakeasy-group": "apiKeys", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.api_keys.list()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.APIKeys.List(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.APIKeys != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.apiKeys.list();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create API key", "operationId": "post-api-key", "tags": ["API keys"], "security": [{"Bearer":[]}], "parameters": [], "description": "Create a new API Key that is tied to the current user account. The created API key is only listed ONCE upon creation. It can however be regenerated or deleted.\n", "x-mint": {"href":"/api-reference/post-api-key"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"tok_ez2A3DVldnawP","type":"api_keys","attributes":{"name":"App Token","token":"54ebfcfa2ad7f9fe0d4e081306554174d063","token_last_slice":"4d063","api_version":"2023-06-01","read_only":false,"allowed_ips":[],"created_at":"2026-01-14T15:56:29+00:00","updated_at":"2026-01-14T15:56:29+00:00","last_used_at":null,"user":{"id":"user_pVkpyK2aoVUlax6Zzx1pfrGe4wr","email":"nathanael@bartoletti-streich.test"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_api_key"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"api_keys","attributes":{"name":"App Token"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_api_key"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"api_keys","attributes":{"name":"App Token"}}}}}}},"required":true}, "x-speakeasy-group": "apiKeys", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.api_keys.create(data={\n \"type\": latitudesh_python_sdk.CreateAPIKeyType.API_KEYS,\n \"attributes\": {\n \"name\": \"App Token\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.APIKeys.Create(ctx, components.CreateAPIKey{\n Data: &components.Data{\n Type: components.CreateAPIKeyTypeAPIKeys,\n Attributes: &components.CreateAPIKeyAttributes{\n Name: latitudeshgosdk.Pointer(\"App Token\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.apiKeys.create({\n data: {\n type: \"api_keys\",\n attributes: {\n name: \"App Token\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/auth/api_keys/{api_key_id}": { "put": { "summary": "Rotate API key", "operationId": "rotate-api-key", "tags": ["API keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"api_key_id","in":"path","required":true,"examples":{"Success":{"value":"tok_x1ZJrdx5qg4LV"}},"schema":{"type":"string"}}], "description": "Rotate an existing API Key, generating a new token. This invalidates the previous key.\nUse PATCH to update settings without rotating the token.\n", "x-mint": {"href":"/api-reference/rotate-api-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token","token":"aeb7b57029087fd4449a8f0fc218d1e17b4c","token_last_slice":"17b4c","api_version":"2023-06-01","read_only":false,"allowed_ips":null,"created_at":"2026-01-14T15:56:30+00:00","updated_at":"2026-01-14T15:56:30+00:00","last_used_at":null,"user":{"id":"user_3J8PY3vz8ahap5nLXYmws36rwRE","email":"arnette@kutch.test"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token"}}}}}}},"required":true}, "x-speakeasy-group": "apiKeys", "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.api_keys.regenerate(api_key_id=\"tok_x1ZJrdx5qg4LV\", data={\n \"id\": \"tok_x1ZJrdx5qg4LV\",\n \"type\": latitudesh_python_sdk.UpdateAPIKeyType.API_KEYS,\n \"attributes\": {\n \"name\": \"App Token\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.APIKeys.Update(ctx, \"tok_x1ZJrdx5qg4LV\", components.UpdateAPIKey{\n Data: &components.UpdateAPIKeyData{\n ID: latitudeshgosdk.Pointer(\"tok_x1ZJrdx5qg4LV\"),\n Type: components.UpdateAPIKeyTypeAPIKeys,\n Attributes: &components.UpdateAPIKeyAttributes{\n Name: latitudeshgosdk.Pointer(\"App Token\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.apiKeys.update({\n apiKeyId: \"tok_x1ZJrdx5qg4LV\",\n updateApiKey: {\n data: {\n id: \"tok_x1ZJrdx5qg4LV\",\n type: \"api_keys\",\n attributes: {\n name: \"App Token\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update API key settings", "operationId": "update-api-key", "tags": ["API keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"api_key_id","in":"path","required":true,"examples":{"Success - Update name without rotating token":{"value":"tok_lpbV0DgRq4AWz"}},"schema":{"type":"string"}}], "description": "Update API Key settings (name, read_only, allowed_ips) without rotating the token.\nUse PUT to rotate the token.\n", "x-mint": {"href":"/api-reference/update-api-key"}, "responses": {"200":{"description":"Success - Update name without rotating token","content":{"application/vnd.api+json":{"examples":{"Success - Update name without rotating token":{"value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name","token_last_slice":"c10e6","api_version":"2023-06-01","read_only":false,"allowed_ips":null,"created_at":"2026-01-14T15:56:30+00:00","updated_at":"2026-01-14T15:56:30+00:00","last_used_at":null,"user":{"id":"user_YLMV5L9oYRFoe4Jo4l2PCGKr8bBa","email":"jaime@ullrich.example"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success - Update name without rotating token":{"summary":"Success - Update name without rotating token","value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success - Update name without rotating token":{"summary":"Success - Update name without rotating token","value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.api_keys.update_api_key(api_key_id=\"tok_lpbV0DgRq4AWz\", data={\n \"id\": \"tok_lpbV0DgRq4AWz\",\n \"type\": latitudesh_python_sdk.UpdateAPIKeyType.API_KEYS,\n \"attributes\": {\n \"name\": \"Updated Name\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.APIKeys.UpdateAPIKey(ctx, \"tok_lpbV0DgRq4AWz\", components.UpdateAPIKey{\n Data: &components.UpdateAPIKeyData{\n ID: latitudeshgosdk.Pointer(\"tok_lpbV0DgRq4AWz\"),\n Type: components.UpdateAPIKeyTypeAPIKeys,\n Attributes: &components.UpdateAPIKeyAttributes{\n Name: latitudeshgosdk.Pointer(\"Updated Name\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.apiKeys.updateApiKey({\n apiKeyId: \"tok_lpbV0DgRq4AWz\",\n updateApiKey: {\n data: {\n id: \"tok_lpbV0DgRq4AWz\",\n type: \"api_keys\",\n attributes: {\n name: \"Updated Name\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete API key", "operationId": "delete-api-key", "tags": ["API keys"], "parameters": [{"name":"api_key_id","in":"path","required":true,"examples":{"Success":{"value":"tok_lQraYDPeOpjwW"}},"schema":{"type":"string"}}], "security": [{"Bearer":[]}], "description": "Delete an existing API Key. Once deleted, the API Key can no longer be used to access the API.\n", "x-mint": {"href":"/api-reference/delete-api-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}, "x-speakeasy-group": "apiKeys", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.api_keys.delete(api_key_id=\"tok_lQraYDPeOpjwW\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.APIKeys.Delete(ctx, \"tok_lQraYDPeOpjwW\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.apiKeys.delete({\n apiKeyId: \"tok_lQraYDPeOpjwW\",\n });\n\n\n}\n\nrun();" } ] } }, "/baselines": { "get": { "summary": "List baselines", "operationId": "get-baselines", "tags": ["Baselines (Preview)"], "security": [{"Bearer":[]}], "description": "**Preview.** Available to teams with the `baselines_api` feature flag. The shape of this\nendpoint may change before general availability.\n\nList all baselines in the team. A baseline records the configuration you expect your\nservers to be delivered with — plan, SSH keys, user data, disk layout and BIOS settings.\n", "x-mint": {"href":"/api-reference/get-baselines"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bl_pRMLydp0dQKr1","type":"baselines","attributes":{"name":"baseline-5","description":"Standard build for the web tier","target_type":"platforms","platforms":[{"id":"plan_GnzRD5xAqM5yw","slug":"g3-h100-medium-74","name":"g3.h100.medium-74"}],"ssh_keys":[],"user_data":null,"disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"}],"bios":{"smt":true},"created_at":"2026-07-30T16:21:19.209Z"}}]}}},"schema":{"$ref":"#/components/schemas/baselines"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.baselines_preview.get_baselines()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BaselinesPreview.GetBaselines(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.Baselines != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.baselinesPreview.getBaselines();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create baseline", "operationId": "create-baseline", "tags": ["Baselines (Preview)"], "security": [{"Bearer":[]}], "parameters": [], "description": "**Preview.** Available to teams with the `baselines_api` feature flag.\n\nCreate a baseline in the team. A baseline can target all servers, a custom set (when the\nplan is not yet known), or one or more specific platforms. When it targets platforms, the\ndisk layout is validated by the same rules a deploy applies — against the smallest of the\nselected platforms — so a baseline that saves here can be dispatched verbatim.\n", "x-mint": {"href":"/api-reference/create-baseline"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"bl_VaNmodjeObE8W","type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":[{"id":"plan_1R3zq24bOWxyn","slug":"g3-l40s-small-76","name":"g3.l40s.small-76"}],"ssh_keys":[{"id":"ssh_RLYV8DZ2D5QoE","name":"lindgren.example","fingerprint":"45:de:3e:19:41:1d:0e:8d:c8:22:70:34:db:5f:67:4b"}],"user_data":{"id":"ud_r0MK4O4kDa95w","description":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham."},"disk_layout":[{"count":2,"role":"os","raid_level":"raid-1"}, {"count":2,"role":"storage","filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false},"created_at":"2026-07-30T16:21:19.430Z"}}}}},"schema":{"$ref":"#/components/schemas/baseline"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Baseline target: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","description":"Slug of the operating system the baseline expects the server to run (required)"},"platforms":{"type":"array","items":{"type":"string"},"description":"Slugs of the plans this baseline applies to. Required when target_type is \"platforms\""},"ssh_key_ids":{"type":"array","items":{"type":"string"},"description":"SSH keys the baseline expects on the server"},"user_data_id":{"type":"string","nullable":true,"description":"User data the baseline expects to run on first boot"},"disk_layout":{"type":"array","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"},"description":"Expected disk layout"},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"}},"required":["name","target_type","operating_system"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":["g3-l40s-small-76"],"ssh_key_ids":["ssh_RLYV8DZ2D5QoE"],"user_data_id":"ud_r0MK4O4kDa95w","disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"}, {"role":"storage","count":2,"filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false}}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Baseline target: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","description":"Slug of the operating system the baseline expects the server to run (required)"},"platforms":{"type":"array","items":{"type":"string"},"description":"Slugs of the plans this baseline applies to. Required when target_type is \"platforms\""},"ssh_key_ids":{"type":"array","items":{"type":"string"},"description":"SSH keys the baseline expects on the server"},"user_data_id":{"type":"string","nullable":true,"description":"User data the baseline expects to run on first boot"},"disk_layout":{"type":"array","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"},"description":"Expected disk layout"},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"}},"required":["name","target_type","operating_system"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":["g3-l40s-small-76"],"ssh_key_ids":["ssh_RLYV8DZ2D5QoE"],"user_data_id":"ud_r0MK4O4kDa95w","disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"}, {"role":"storage","count":2,"filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false}}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.baselines_preview.create_baseline(data={\n \"type\": latitudesh_python_sdk.CreateBaselineBaselinesPreviewType.BASELINES,\n \"attributes\": {\n \"name\": \"web-fleet-v3\",\n \"description\": \"Standard build for the public web tier\",\n \"target_type\": latitudesh_python_sdk.CreateBaselineBaselinesPreviewTargetType.PLATFORMS,\n \"operating_system\": \"ubuntu_22_04_x64_lts\",\n \"platforms\": [\n \"g3-l40s-small-76\",\n ],\n \"ssh_key_ids\": [\n \"ssh_RLYV8DZ2D5QoE\",\n ],\n \"user_data_id\": \"ud_r0MK4O4kDa95w\",\n \"disk_layout\": [\n {\n \"role\": latitudesh_python_sdk.BaselineDiskLayoutGroupRole.OS,\n \"count\": 2,\n \"raid_level\": latitudesh_python_sdk.RaidLevel.RAID_1,\n },\n {\n \"role\": latitudesh_python_sdk.BaselineDiskLayoutGroupRole.STORAGE,\n \"count\": 2,\n \"filesystem\": latitudesh_python_sdk.Filesystem.EXT4,\n \"mount_point\": \"/data\",\n },\n ],\n \"bios\": {},\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BaselinesPreview.CreateBaseline(ctx, operations.CreateBaselineBaselinesPreviewRequestBody{\n Data: &operations.CreateBaselineData{\n Type: operations.CreateBaselineTypeBaselines.ToPointer(),\n Attributes: &operations.CreateBaselineAttributes{\n Name: \"web-fleet-v3\",\n Description: latitudeshgosdk.Pointer(\"Standard build for the public web tier\"),\n TargetType: operations.CreateBaselineTargetTypePlatforms,\n OperatingSystem: \"ubuntu_22_04_x64_lts\",\n Platforms: []string{\n \"g3-l40s-small-76\",\n },\n SSHKeyIds: []string{\n \"ssh_RLYV8DZ2D5QoE\",\n },\n UserDataID: latitudeshgosdk.Pointer(\"ud_r0MK4O4kDa95w\"),\n DiskLayout: []components.BaselineDiskLayoutGroup{\n components.BaselineDiskLayoutGroup{\n Role: components.BaselineDiskLayoutGroupRoleOs.ToPointer(),\n Count: latitudeshgosdk.Pointer[int64](2),\n RaidLevel: components.RaidLevelRaid1.ToPointer(),\n },\n components.BaselineDiskLayoutGroup{\n Role: components.BaselineDiskLayoutGroupRoleStorage.ToPointer(),\n Count: latitudeshgosdk.Pointer[int64](2),\n Filesystem: components.FilesystemExt4.ToPointer(),\n MountPoint: latitudeshgosdk.Pointer(\"/data\"),\n },\n },\n Bios: &operations.CreateBaselineBios{},\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Baseline != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.baselinesPreview.createBaseline({\n data: {\n type: \"baselines\",\n attributes: {\n name: \"web-fleet-v3\",\n description: \"Standard build for the public web tier\",\n targetType: \"platforms\",\n operatingSystem: \"ubuntu_22_04_x64_lts\",\n platforms: [\n \"g3-l40s-small-76\",\n ],\n sshKeyIds: [\n \"ssh_RLYV8DZ2D5QoE\",\n ],\n userDataId: \"ud_r0MK4O4kDa95w\",\n diskLayout: [\n {\n role: \"os\",\n count: 2,\n raidLevel: \"raid-1\",\n },\n {\n role: \"storage\",\n count: 2,\n filesystem: \"ext4\",\n mountPoint: \"/data\",\n },\n ],\n bios: {},\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/baselines/{baseline_id}": { "get": { "summary": "Retrieve baseline", "operationId": "get-baseline", "tags": ["Baselines (Preview)"], "security": [{"Bearer":[]}], "parameters": [{"name":"baseline_id","in":"path","required":true,"description":"Baseline ID","examples":{"Success":{"value":"bl_6059EqYkOQj8p"}},"schema":{"type":"string"}}], "description": "**Preview.** Available to teams with the `baselines_api` feature flag.\n\nRetrieve a single baseline.\n", "x-mint": {"href":"/api-reference/get-baseline"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bl_6059EqYkOQj8p","type":"baselines","attributes":{"name":"baseline-9","description":"Standard build for the web tier","target_type":"all_servers","platforms":[],"ssh_keys":[{"id":"ssh_lpbV0DgRq4AWz","name":"zulauf.example","fingerprint":"31:1a:ae:1b:af:00:30:08:50:d3:9c:4a:90:81:dd:65"}],"user_data":null,"disk_layout":[],"bios":{},"created_at":"2026-07-30T16:21:19.279Z"}}}}},"schema":{"$ref":"#/components/schemas/baseline"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.baselines_preview.get_baseline(baseline_id=\"bl_6059EqYkOQj8p\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BaselinesPreview.GetBaseline(ctx, \"bl_6059EqYkOQj8p\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Baseline != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.baselinesPreview.getBaseline({\n baselineId: \"bl_6059EqYkOQj8p\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete baseline", "operationId": "destroy-baseline", "tags": ["Baselines (Preview)"], "security": [{"Bearer":[]}], "parameters": [{"name":"baseline_id","in":"path","required":true,"description":"Baseline ID","schema":{"type":"string"}}], "description": "**Preview.** Available to teams with the `baselines_api` feature flag.\n\nDelete a baseline.\n", "x-mint": {"href":"/api-reference/destroy-baseline"}, "responses": {"204":{"description":"No Content"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.baselines_preview.destroy_baseline(baseline_id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BaselinesPreview.DestroyBaseline(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.baselinesPreview.destroyBaseline({\n baselineId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/billing/usage": {"get":{ "summary": "Retrieve billing usage", "operationId": "get-billing-usage", "tags": ["Billing"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[products][]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"Allows to filter the billing usage for specific products. It accepts an array of product ids.\n","examples":{"Success":{"value":["si_aslft06m","si_on0fybnq"]}}}, {"name":"filter[plan]","in":"query","required":false,"description":"Accepts a plan name and allows to filter the usage for that plan.\n","schema":{"type":"string"},"examples":{"Success":{"value":"plan.name"}}}, {"name":"filter[project]","in":"query","required":true,"examples":{"Success":{"value":"proj_r0MK4O4kDa95w"}},"schema":{"type":"string"}}], "description": "Returns the billing usage of a project\n", "x-mint": {"href":"/api-reference/get-billing-usage"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"","type":"billing_usage","attributes":{"project":{"id":"proj_r0MK4O4kDa95w","slug":"fantastic-iron-clock","name":"Fantastic Iron Clock"},"period":{"start":"2025-12-24T15:56:32+00:00","end":"2026-01-24T15:56:32+00:00"},"available_credit_balance":123,"amount":0,"price":0,"products":[],"threshold":10000}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/billing_usage"}}}}}, "x-speakeasy-name-override": "listUsage", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.billing.list_usage(filter_project=\"proj_r0MK4O4kDa95w\", filter_products=[\n \"si_aslft06m\",\n \"si_on0fybnq\",\n ], filter_plan=\"plan.name\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Billing.ListUsage(ctx, \"proj_r0MK4O4kDa95w\", []string{\n \"si_aslft06m\",\n \"si_on0fybnq\",\n }, latitudeshgosdk.Pointer(\"plan.name\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.BillingUsage != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.billing.listUsage({\n filterProducts: [\n \"si_aslft06m\",\n \"si_on0fybnq\",\n ],\n filterPlan: \"plan.name\",\n filterProject: \"proj_r0MK4O4kDa95w\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/events": {"get":{ "summary": "List events", "operationId": "get-events", "tags": ["Events"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[author]","in":"query","required":false,"description":"The author ID or email to filter by","schema":{"type":"string"}}, {"name":"filter[project]","in":"query","required":false,"description":"The project ID to filter by","schema":{"type":"string"}}, {"name":"filter[target_name]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"The target type(s) of the event to filter by"}, {"name":"filter[target_id]","in":"query","required":false,"description":"The target id of the event to filter by","schema":{"type":"string"}}, {"name":"filter[action]","in":"query","required":false,"description":"The action performed in event to filter by","schema":{"type":"string"}}, {"name":"filter[created_at][gte]","in":"query","required":false,"description":"The created at greater than equal date to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)","schema":{"type":"string"}}, {"name":"filter[created_at][lte]","in":"query","required":false,"description":"The created at less than equal date to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)","schema":{"type":"string"}}, {"name":"filter[created_at]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"The created at between date range date1, date2 (inclusive) to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)"}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}, {"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: created_at. Example: `sort=-created_at` sorts by creation date descending.","schema":{"type":"string"}}], "description": "Lists actions performed by users on your account.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-events"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"evt_r0MK4O4kDa95w","type":"events","attributes":{"created_at":"2026-01-14T15:56:32+00:00","action":"user_data.create","target":{"id":"ud_QraYDPm5OpjwW","name":"user_data"},"project":{"id":"proj_Av9BVDavORm1W","name":"Enormous Rubber Car","slug":"enormous-rubber-car"},"team":{"id":"team_5EkwwB3BV5Uzo9EpPom8T6Zk6MjG","name":"55 Team"},"author":{"id":"user_1P7kNv94QNtKXLZWMe42hNJ5x6V","name":"Julian Kuvalis","email":"aleshia@stiedemann.test"}}}],"meta":{}}},"ServerDestroy":{"value":{"data":[{"id":"evt_8nKmP2qX9LzRy","type":"events","attributes":{"created_at":"2026-01-07T15:42:15+00:00","action":"servers.destroy","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","reason":"Server no longer needed"}}}],"meta":{}}},"ServerLock":{"value":{"data":[{"id":"evt_6pWnQ8sY4MzPx","type":"events","attributes":{"created_at":"2026-01-07T11:30:22+00:00","action":"servers.lock","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}},"ServerUnlock":{"value":{"data":[{"id":"evt_3vTpN7qM5KzWx","type":"events","attributes":{"created_at":"2026-01-07T14:28:33+00:00","action":"servers.unlock","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}},"DeploymentFailed":{"value":{"data":[{"id":"evt_9mXpL4rK8NzTv","type":"events","attributes":{"created_at":"2026-01-07T13:15:42+00:00","action":"deployment.failed","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","distro":"ubuntu_22_04_x64_lts","operating_system":"Ubuntu 22.04 LTS","region":"Dallas"}}}],"meta":{}}},"ReinstallFailed":{"value":{"data":[{"id":"evt_5kQpN9rX3LzMy","type":"events","attributes":{"created_at":"2026-01-07T12:05:18+00:00","action":"reinstall.failed","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","distro":"ubuntu_22_04_x64_lts","operating_system":"Ubuntu 22.04 LTS","region":"Dallas"}}}],"meta":{}}},"ScheduleDeletion":{"value":{"data":[{"id":"evt_7rXpM5tN2KzVw","type":"events","attributes":{"created_at":"2026-01-07T10:15:08+00:00","action":"schedule_deletion.create","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/events"}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.events.list(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Events.List(ctx, operations.GetEventsRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.Events != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.events.list({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/firewalls/assignments": {"get":{ "summary": "List firewall assignments", "operationId": "get-all-firewall-assignments", "description": "Returns a list of all servers and virtual machines assigned to a firewall.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"},"examples":{"Success":{"value":"sv_Qk0Ryqv1dW36X"}}}, {"name":"filter[virtual_machine]","in":"query","required":false,"description":"The virtual machine ID to filter by","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-all-firewall-assignments"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fwasg_zGr47qlMDAg0m","type":"firewall_assignments","attributes":{"server":{"id":"sv_Qk0Ryqv1dW36X","hostname":"Heavy Duty Silk Bottle","primary_ipv4":"237.198.84.1"},"firewall":{"id":"fw_pRMLydp0dQKr1","name":"Welch LLC"}}}, {"id":"fwasg_w5AEmq7XDBkWX","type":"firewall_assignments","attributes":{"server":{"id":"sv_Qk0Ryqv1dW36X","hostname":"Heavy Duty Silk Bottle","primary_ipv4":"237.198.84.1"},"firewall":{"id":"fw_zGr47qlMDAg0m","name":"Corkery-Windler"}}}]}}},"schema":{"$ref":"#/components/schemas/firewall_assignments"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.get_all_firewall_assignments(filter_server=\"sv_Qk0Ryqv1dW36X\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.GetAllFirewallAssignments(ctx, latitudeshgosdk.Pointer(\"sv_Qk0Ryqv1dW36X\"), nil, latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1))\n if err != nil {\n log.Fatal(err)\n }\n if res.FirewallAssignments != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.getAllFirewallAssignments({\n filterServer: \"sv_Qk0Ryqv1dW36X\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/elastic_ips": { "get": { "summary": "List Elastic IPs", "operationId": "list-elastic-ips", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"The project ID or slug to filter by","schema":{"type":"string"}}, {"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}}, {"name":"filter[status]","in":"query","required":false,"description":"The status to filter by","schema":{"type":"string","enum":["configuring","active","moving","releasing","error"]}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}], "description": "List all Elastic IPs for the authenticated team. Elastic IPs are static public IP addresses that can be assigned to servers and moved between servers within the same project.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/list-elastic-ips"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"active","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_2GmAlJ6BXlK1a","hostname":"my-server","primary_ipv4":"177.54.157.75"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/elastic_ips"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.list_elastic_ips(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.ListElasticIps(ctx, operations.ListElasticIpsRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.ElasticIps != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.listElasticIps({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create an Elastic IP", "operationId": "create-elastic-ip", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [], "description": "Creates a new Elastic IP and assigns it to the specified server. The IP is provisioned asynchronously—the response will show status `configuring` and the `id` will be `null` until provisioning completes. Currently only IPv4 /32 addresses in routed mode are supported.\n", "x-mint": {"href":"/api-reference/create-elastic-ip"}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Accepted":{"value":{"data":{"id":null,"type":"elastic_ips","attributes":{"address":"177.54.156.7","status":"configuring","project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ServerNotInProject":{"value":{"errors":[{"code":"SERVER_NOT_IN_PROJECT","message":"Server must belong to the specified project"}]}},"IpAllocationFailed":{"value":{"errors":[{"code":"IP_ALLOCATION_FAILED","message":"Failed to allocate IP address"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","title":"Site Not Supported","status":"422","detail":"Elastic IPs are not available for site SAO"}]}},"ServerNetworkIncompatible":{"value":{"errors":[{"code":"SERVER_NETWORK_INCOMPATIBLE","title":"Server Network Incompatible","status":"422","detail":"Your server has outdated network configuration and we cannot enable elastic IP for it. Please reach out to support"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_elastic_ip"},"examples":{"Create":{"summary":"Create an Elastic IP","value":{"data":{"type":"elastic_ips","attributes":{"project_id":"proj_AoW6vRnwkvLn0","server_id":"sv_2GmAlJ6BXlK1a"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_elastic_ip"},"examples":{"Create":{"summary":"Create an Elastic IP","value":{"data":{"type":"elastic_ips","attributes":{"project_id":"proj_AoW6vRnwkvLn0","server_id":"sv_2GmAlJ6BXlK1a"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.create_elastic_ip(data={\n \"type\": latitudesh_python_sdk.CreateElasticIPType.ELASTIC_IPS,\n \"attributes\": {\n \"server_id\": \"sv_2GmAlJ6BXlK1a\",\n \"project_id\": \"proj_AoW6vRnwkvLn0\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.CreateElasticIP(ctx, components.CreateElasticIP{\n Data: components.CreateElasticIPData{\n Type: components.CreateElasticIPTypeElasticIps,\n Attributes: &components.CreateElasticIPAttributes{\n ServerID: latitudeshgosdk.Pointer(\"sv_2GmAlJ6BXlK1a\"),\n ProjectID: \"proj_AoW6vRnwkvLn0\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.ElasticIP != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.createElasticIp({\n data: {\n type: \"elastic_ips\",\n attributes: {\n serverId: \"sv_2GmAlJ6BXlK1a\",\n projectId: \"proj_AoW6vRnwkvLn0\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/elastic_ips/{elastic_ip_id}": { "get": { "summary": "Retrieve an Elastic IP", "operationId": "get-elastic-ip", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"examples":{"Success":{"value":"eip_KeQbB4BoO6x10"}},"schema":{"type":"string"}}], "description": "Returns a single Elastic IP by its ID.\n", "x-mint": {"href":"/api-reference/get-elastic-ip"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"active","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_2GmAlJ6BXlK1a","hostname":"my-server","primary_ipv4":"177.54.157.75"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.get_elastic_ip(elastic_ip_id=\"eip_KeQbB4BoO6x10\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.GetElasticIP(ctx, \"eip_KeQbB4BoO6x10\")\n if err != nil {\n log.Fatal(err)\n }\n if res.ElasticIP != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.getElasticIp({\n elasticIpId: \"eip_KeQbB4BoO6x10\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Move an Elastic IP", "operationId": "update-elastic-ip", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"examples":{"Success":{"value":"eip_KeQbB4BoO6x10"}},"schema":{"type":"string"}}], "description": "Moves an Elastic IP to a different server within the same project and site. The reassignment is performed asynchronously. The Elastic IP must be in `active` status, the target server must belong to the same project, and the target server must be in the same site as the currently assigned server.\n", "x-mint": {"href":"/api-reference/update-elastic-ip"}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"moving","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_oDEBlwBGRO2me","hostname":"new-server","primary_ipv4":"177.54.157.180","operating_system":"ubuntu_24_04_x64_lts"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ElasticIpNotActive":{"value":{"errors":[{"code":"ELASTIC_IP_NOT_ACTIVE","message":"Elastic IP must be in active status to move"}]}},"ServerNotInProject":{"value":{"errors":[{"code":"SERVER_NOT_IN_PROJECT","message":"Target server must belong to the same project"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","title":"Site Not Supported","status":"422","detail":"Elastic IPs are not available for site SAO"}]}},"ServerNetworkIncompatible":{"value":{"errors":[{"code":"SERVER_NETWORK_INCOMPATIBLE","title":"Server Network Incompatible","status":"422","detail":"Your server has outdated network configuration and we cannot enable elastic IP for it. Please reach out to support"}]}},"SiteMismatch":{"value":{"errors":[{"code":"SITE_MISMATCH","title":"Site Mismatch","status":"422","detail":"Elastic IP cannot be moved to a server in a different site"}]}},"BgpElasticIpNotUpdatable":{"value":{"errors":[{"code":"BGP_ELASTIC_IP_NOT_UPDATABLE","status":"422","title":"BGP Elastic IP Not Updatable","detail":"A BGP elastic IP is not moved between servers. Manage the servers announcing it through /elastic_ips/ueip_xxx/bgp_sessions"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_elastic_ip"},"examples":{"Move":{"summary":"Move to another server","value":{"data":{"type":"elastic_ips","attributes":{"server_id":"sv_oDEBlwBGRO2me"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_elastic_ip"},"examples":{"Move":{"summary":"Move to another server","value":{"data":{"type":"elastic_ips","attributes":{"server_id":"sv_oDEBlwBGRO2me"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.update_elastic_ip(elastic_ip_id=\"eip_KeQbB4BoO6x10\", data={\n \"type\": latitudesh_python_sdk.UpdateElasticIPType.ELASTIC_IPS,\n \"attributes\": {\n \"server_id\": \"sv_oDEBlwBGRO2me\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.UpdateElasticIP(ctx, \"eip_KeQbB4BoO6x10\", components.UpdateElasticIP{\n Data: components.UpdateElasticIPData{\n Type: components.UpdateElasticIPTypeElasticIps,\n Attributes: components.UpdateElasticIPAttributes{\n ServerID: \"sv_oDEBlwBGRO2me\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.ElasticIP != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.updateElasticIp({\n elasticIpId: \"eip_KeQbB4BoO6x10\",\n updateElasticIp: {\n data: {\n type: \"elastic_ips\",\n attributes: {\n serverId: \"sv_oDEBlwBGRO2me\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Release an Elastic IP", "operationId": "delete-elastic-ip", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"schema":{"type":"string"}}], "description": "Releases an Elastic IP, returning it to the available pool. The IP will transition to `releasing` status before being fully removed. Only Elastic IPs with status `active` or `error` can be released.\n", "x-mint": {"href":"/api-reference/delete-elastic-ip"}, "responses": {"204":{"description":"No Content"},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ElasticIpNotReleasable":{"value":{"errors":[{"code":"ELASTIC_IP_NOT_RELEASABLE","message":"Only Elastic IPs with status active or error can be released"}]}},"ElasticIpHasBgpSessions":{"value":{"errors":[{"code":"ELASTIC_IP_HAS_BGP_SESSIONS","status":"422","title":"Elastic IP Has BGP Sessions","detail":"This elastic IP still announces BGP sessions. Remove them before releasing it."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.elastic_ips.delete_elastic_ip(elastic_ip_id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.DeleteElasticIP(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.elasticIps.deleteElasticIp({\n elasticIpId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/elastic_ips/{elastic_ip_id}/bgp_sessions": { "post": { "summary": "Create a BGP session", "operationId": "create-elastic-ip-bgp-session", "description": "Announce an elastic IP from a server over BGP", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Accepted":{"value":"ueip_059EqY7kOQj8p"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/create-elastic-ip-bgp-session"}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Accepted":{"value":{"data":{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"pending","status_message":null,"server_ip":null,"asn":null,"created_at":null,"server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}}}},"schema":{"$ref":"#/components/schemas/bgp_session"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_bgp_session"},"examples":{"Accepted":{"summary":"Accepted","value":{"data":{"type":"bgp_sessions","attributes":{"server_id":"sv_A05EdQp4OvKYQ"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_bgp_session"},"examples":{"Accepted":{"summary":"Accepted","value":{"data":{"type":"bgp_sessions","attributes":{"server_id":"sv_A05EdQp4OvKYQ"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.create_elastic_ip_bgp_session(elastic_ip_id=\"ueip_059EqY7kOQj8p\", data={\n \"type\": latitudesh_python_sdk.CreateBgpSessionType.BGP_SESSIONS,\n \"attributes\": {\n \"server_id\": \"sv_A05EdQp4OvKYQ\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.CreateElasticIPBgpSession(ctx, \"ueip_059EqY7kOQj8p\", components.CreateBgpSession{\n Data: components.CreateBgpSessionData{\n Type: components.CreateBgpSessionTypeBgpSessions,\n Attributes: &components.CreateBgpSessionAttributes{\n ServerID: \"sv_A05EdQp4OvKYQ\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.BgpSession != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.createElasticIpBgpSession({\n elasticIpId: \"ueip_059EqY7kOQj8p\",\n createBgpSession: {\n data: {\n type: \"bgp_sessions\",\n attributes: {\n serverId: \"sv_A05EdQp4OvKYQ\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List BGP sessions", "operationId": "list-elastic-ip-bgp-sessions", "description": "List the BGP sessions announcing an elastic IP", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Success":{"value":"ueip_v9BVDaGvdRm1W"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/list-elastic-ip-bgp-sessions"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"active","status_message":null,"server_ip":"162.43.189.161","asn":65001,"created_at":"2026-07-24T10:00:00Z","server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}]}}},"schema":{"$ref":"#/components/schemas/bgp_sessions"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.list_elastic_ip_bgp_sessions(elastic_ip_id=\"ueip_v9BVDaGvdRm1W\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.ListElasticIPBgpSessions(ctx, \"ueip_v9BVDaGvdRm1W\")\n if err != nil {\n log.Fatal(err)\n }\n if res.BgpSessions != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.listElasticIpBgpSessions({\n elasticIpId: \"ueip_v9BVDaGvdRm1W\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/elastic_ips/{elastic_ip_id}/bgp_sessions/{id}": { "get": { "summary": "Retrieve a BGP session", "operationId": "get-elastic-ip-bgp-session", "description": "Retrieve a BGP session announcing an elastic IP", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Success":{"value":"ueip_e8pKq015DWAob"}},"schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"examples":{"Success":{"value":"bgps_w49QDB9PqagKb"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-elastic-ip-bgp-session"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"active","status_message":null,"server_ip":"162.43.189.161","asn":65001,"created_at":"2026-07-24T10:00:00Z","server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}}}},"schema":{"$ref":"#/components/schemas/bgp_session"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.elastic_ips.get_elastic_ip_bgp_session(elastic_ip_id=\"ueip_e8pKq015DWAob\", id=\"bgps_w49QDB9PqagKb\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.GetElasticIPBgpSession(ctx, \"ueip_e8pKq015DWAob\", \"bgps_w49QDB9PqagKb\")\n if err != nil {\n log.Fatal(err)\n }\n if res.BgpSession != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.elasticIps.getElasticIpBgpSession({\n elasticIpId: \"ueip_e8pKq015DWAob\",\n id: \"bgps_w49QDB9PqagKb\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete a BGP session", "operationId": "delete-elastic-ip-bgp-session", "description": "Stop announcing an elastic IP from a server", "tags": ["Elastic Ips"], "security": [{"Bearer":[]}], "parameters": [{"name":"elastic_ip_id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"force","in":"query","required":false,"schema":{"type":"boolean"}}], "x-mint": {"href":"/api-reference/delete-elastic-ip-bgp-session"}, "responses": {"202":{"description":"Accepted"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.elastic_ips.delete_elastic_ip_bgp_session(elastic_ip_id=\"\", id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ElasticIps.DeleteElasticIPBgpSession(ctx, \"\", \"\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.elasticIps.deleteElasticIpBgpSession({\n elasticIpId: \"\",\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/firewalls": { "post": { "summary": "Create firewall", "operationId": "create-firewall", "description": "Create a firewall", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/create-firewall"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fw_w5AEmq7XDBkWX","type":"firewalls","attributes":{"name":"my-firewall","project":{"id":"proj_RLYV8DZ2D5QoE","name":"Heavy Duty Copper Watch","slug":"heavy-duty-copper-watch"},"rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":"80","protocol":"TCP","default":false}, {"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP","default":false}, {"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"project":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall","items":{"type":"string"}},"rules":{"type":"array","description":"Firewall rules. When empty, Latitude seeds a default rule allowing SSH (TCP port 22) from any source.","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}},"required":["name","project"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewalls","attributes":{"name":"my-firewall","project":"heavy-duty-copper-watch","rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP traffic"}, {"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP"}, {"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","description":"Application ports"}]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"project":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall","items":{"type":"string"}},"rules":{"type":"array","description":"Firewall rules. When empty, Latitude seeds a default rule allowing SSH (TCP port 22) from any source.","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}},"required":["name","project"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewalls","attributes":{"name":"my-firewall","project":"heavy-duty-copper-watch","rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP traffic"}, {"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP"}, {"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","description":"Application ports"}]}}}}}}},"required":true}, "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.create(data={\n \"type\": latitudesh_python_sdk.CreateFirewallFirewallsType.FIREWALLS,\n \"attributes\": {\n \"name\": \"my-firewall\",\n \"project\": \"heavy-duty-copper-watch\",\n \"rules\": [\n {\n \"from_\": \"192.168.42.73\",\n \"to\": \"192.168.43.51\",\n \"protocol\": latitudesh_python_sdk.CreateFirewallProtocol.TCP,\n \"port\": \"80\",\n \"description\": \"Allow HTTP traffic\",\n },\n {\n \"from_\": \"192.168.1.16\",\n \"to\": \"192.168.1.30\",\n \"protocol\": latitudesh_python_sdk.CreateFirewallProtocol.TCP,\n \"port\": \"80\",\n },\n {\n \"from_\": \"192.168.1.10\",\n \"to\": \"192.168.1.20\",\n \"protocol\": latitudesh_python_sdk.CreateFirewallProtocol.UDP,\n \"port\": \"3000-4000\",\n \"description\": \"Application ports\",\n },\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.Create(ctx, operations.CreateFirewallFirewallsRequestBody{\n Data: operations.CreateFirewallFirewallsData{\n Type: operations.CreateFirewallFirewallsTypeFirewalls,\n Attributes: &operations.CreateFirewallFirewallsAttributes{\n Name: \"my-firewall\",\n Project: \"heavy-duty-copper-watch\",\n Rules: []operations.CreateFirewallRules{\n operations.CreateFirewallRules{\n From: latitudeshgosdk.Pointer(\"192.168.42.73\"),\n To: latitudeshgosdk.Pointer(\"192.168.43.51\"),\n Protocol: operations.CreateFirewallProtocolTCP.ToPointer(),\n Port: latitudeshgosdk.Pointer(\"80\"),\n Description: latitudeshgosdk.Pointer(\"Allow HTTP traffic\"),\n },\n operations.CreateFirewallRules{\n From: latitudeshgosdk.Pointer(\"192.168.1.16\"),\n To: latitudeshgosdk.Pointer(\"192.168.1.30\"),\n Protocol: operations.CreateFirewallProtocolTCP.ToPointer(),\n Port: latitudeshgosdk.Pointer(\"80\"),\n },\n operations.CreateFirewallRules{\n From: latitudeshgosdk.Pointer(\"192.168.1.10\"),\n To: latitudeshgosdk.Pointer(\"192.168.1.20\"),\n Protocol: operations.CreateFirewallProtocolUDP.ToPointer(),\n Port: latitudeshgosdk.Pointer(\"3000-4000\"),\n Description: latitudeshgosdk.Pointer(\"Application ports\"),\n },\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Firewall != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.create({\n data: {\n type: \"firewalls\",\n attributes: {\n name: \"my-firewall\",\n project: \"heavy-duty-copper-watch\",\n rules: [\n {\n from: \"192.168.42.73\",\n to: \"192.168.43.51\",\n protocol: \"TCP\",\n port: \"80\",\n description: \"Allow HTTP traffic\",\n },\n {\n from: \"192.168.1.16\",\n to: \"192.168.1.30\",\n protocol: \"TCP\",\n port: \"80\",\n },\n {\n from: \"192.168.1.10\",\n to: \"192.168.1.20\",\n protocol: \"UDP\",\n port: \"3000-4000\",\n description: \"Application ports\",\n },\n ],\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List firewalls", "operationId": "list-firewalls", "description": "List firewalls", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"},"examples":{"Success":{"value":"intelligent-marble-lamp"}}}, {"name":"filter[tags]","in":"query","required":false,"description":"Comma-separated tag IDs. Returns firewalls that have all the given tags.","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/list-firewalls"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fw_VaNmodjeObE8W","type":"firewalls","attributes":{"name":"Carroll-Purdy","project":{"id":"proj_2695BdKrOevVo","name":"Intelligent Marble Lamp","slug":"intelligent-marble-lamp"},"rules":[{"from":"150.186.180.30","to":"115.157.70.5","port":"80","protocol":"TCP","default":false}]}}]}}},"schema":{"$ref":"#/components/schemas/firewalls"}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.list(filter_project=\"intelligent-marble-lamp\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.List(ctx, latitudeshgosdk.Pointer(\"intelligent-marble-lamp\"), nil, latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1))\n if err != nil {\n log.Fatal(err)\n }\n if res.Firewalls != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.list({\n filterProject: \"intelligent-marble-lamp\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] } }, "/firewalls/{firewall_id}": { "get": { "summary": "Retrieve firewall", "operationId": "get-firewall", "description": "Returns a single firewall by its ID.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_6A05EdQ1dvKYQ"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-firewall"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fw_6A05EdQ1dvKYQ","type":"firewalls","attributes":{"name":"D'Amore-Nienow","project":{"id":"proj_byQrJdNJd30gv","name":"Rustic Steel Plate","slug":"rustic-steel-plate"},"rules":[{"from":"233.62.24.172","to":"20.231.71.178","port":"80","protocol":"TCP","default":false}, {"from":"242.23.216.53","to":"136.56.111.45","port":"80","protocol":"TCP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.get(firewall_id=\"fw_6A05EdQ1dvKYQ\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.Get(ctx, \"fw_6A05EdQ1dvKYQ\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Firewall != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.get({\n firewallId: \"fw_6A05EdQ1dvKYQ\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update firewall", "operationId": "update-firewall", "description": "Updates a firewall by its ID.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_r0MK4O4kDa95w"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/update-firewall"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fw_r0MK4O4kDa95w","type":"firewalls","attributes":{"name":"new-name","project":{"id":"proj_aKXgRdR3qv9k5","name":"Rustic Wooden Clock","slug":"rustic-wooden-clock"},"rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":"80","protocol":"TCP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall. Replaces the current tags; send an empty array to remove all tags.","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"firewalls","attributes":{"name":"new-name","rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP"}]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall. Replaces the current tags; send an empty array to remove all tags.","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"firewalls","attributes":{"name":"new-name","rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP"}]}}}}}}},"required":true}, "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.update(firewall_id=\"fw_r0MK4O4kDa95w\", data={\n \"type\": latitudesh_python_sdk.UpdateFirewallFirewallsType.FIREWALLS,\n \"attributes\": {\n \"name\": \"new-name\",\n \"rules\": [\n {\n \"from_\": \"192.168.42.72\",\n \"to\": \"192.168.43.51\",\n \"protocol\": latitudesh_python_sdk.UpdateFirewallFirewallsProtocol.TCP,\n \"port\": \"80\",\n \"description\": \"Allow HTTP\",\n },\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.Update(ctx, \"fw_r0MK4O4kDa95w\", operations.UpdateFirewallFirewallsRequestBody{\n Data: operations.UpdateFirewallFirewallsData{\n Type: operations.UpdateFirewallFirewallsTypeFirewalls,\n Attributes: &operations.UpdateFirewallFirewallsAttributes{\n Name: latitudeshgosdk.Pointer(\"new-name\"),\n Rules: []operations.UpdateFirewallFirewallsRules{\n operations.UpdateFirewallFirewallsRules{\n From: latitudeshgosdk.Pointer(\"192.168.42.72\"),\n To: latitudeshgosdk.Pointer(\"192.168.43.51\"),\n Protocol: operations.UpdateFirewallFirewallsProtocolTCP.ToPointer(),\n Port: latitudeshgosdk.Pointer(\"80\"),\n Description: latitudeshgosdk.Pointer(\"Allow HTTP\"),\n },\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Firewall != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.update({\n firewallId: \"fw_r0MK4O4kDa95w\",\n requestBody: {\n data: {\n type: \"firewalls\",\n attributes: {\n name: \"new-name\",\n rules: [\n {\n from: \"192.168.42.72\",\n to: \"192.168.43.51\",\n protocol: \"TCP\",\n port: \"80\",\n description: \"Allow HTTP\",\n },\n ],\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete firewall", "operationId": "delete-firewall", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/delete-firewall"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.firewalls.delete(firewall_id=\"fw_123\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.Delete(ctx, \"fw_123\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.firewalls.delete({\n firewallId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/firewalls/{firewall_id}/assignments": { "post": { "summary": "Assign server to firewall", "operationId": "create-firewall-assignment", "description": "Assigns a server or a virtual machine to a firewall by its ID.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Created":{"value":"fw_Ee8pKq05DWAob"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/create-firewall-assignment"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fwasg_6VE1Wd37dXnZJ","type":"firewall_assignments","attributes":{"server":{"id":"sv_aKXgRdR3qv9k5","hostname":"Ergonomic Wooden Keyboard","primary_ipv4":"132.192.74.198"},"firewall_id":"fw_Ee8pKq05DWAob"}}}}},"schema":{"$ref":"#/components/schemas/firewall_server"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to assign. Provide exactly one of server_id or virtual_machine_id. A server can be assigned to at most one firewall."},"virtual_machine_id":{"type":"string","description":"The virtual machine ID to assign. Provide exactly one of server_id or virtual_machine_id. A virtual machine can be assigned to at most one firewall."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewall_assignments","attributes":{"server_id":"sv_aKXgRdR3qv9k5"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to assign. Provide exactly one of server_id or virtual_machine_id. A server can be assigned to at most one firewall."},"virtual_machine_id":{"type":"string","description":"The virtual machine ID to assign. Provide exactly one of server_id or virtual_machine_id. A virtual machine can be assigned to at most one firewall."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewall_assignments","attributes":{"server_id":"sv_aKXgRdR3qv9k5"}}}}}}},"required":true}, "x-speakeasy-group": "firewalls.assignments", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.assign(firewall_id=\"fw_Ee8pKq05DWAob\", data={\n \"type\": latitudesh_python_sdk.CreateFirewallAssignmentFirewallsType.FIREWALL_ASSIGNMENTS,\n \"attributes\": {\n \"server_id\": \"sv_aKXgRdR3qv9k5\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.Assignments.Create(ctx, \"fw_Ee8pKq05DWAob\", operations.CreateFirewallAssignmentFirewallsAssignmentsRequestBody{\n Data: operations.CreateFirewallAssignmentFirewallsAssignmentsData{\n Type: operations.CreateFirewallAssignmentFirewallsAssignmentsTypeFirewallAssignments,\n Attributes: &operations.CreateFirewallAssignmentFirewallsAssignmentsAttributes{\n ServerID: latitudeshgosdk.Pointer(\"sv_aKXgRdR3qv9k5\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.FirewallServer != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.assignments.create({\n firewallId: \"fw_Ee8pKq05DWAob\",\n requestBody: {\n data: {\n type: \"firewall_assignments\",\n attributes: {\n serverId: \"sv_aKXgRdR3qv9k5\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "Firewall assignments", "operationId": "get-firewall-assignments", "description": "Returns a list of all servers and virtual machines assigned to a particular firewall.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_Qk0Ryqv1dW36X"}},"schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-firewall-assignments"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fwasg_6A05EdQ1dvKYQ","type":"firewall_assignments","attributes":{"server":{"id":"sv_1Qkm7dXzD8nZV","hostname":"Durable Concrete Lamp","primary_ipv4":"114.216.142.237"},"firewall_id":"fw_Qk0Ryqv1dW36X"}}, {"id":"fwasg_ez2A3DVldnawP","type":"firewall_assignments","attributes":{"server":{"id":"sv_m5xyZOnNOWM0l","hostname":"Rustic Cotton Clock","primary_ipv4":"27.26.3.128"},"firewall_id":"fw_Qk0Ryqv1dW36X"}}]}}},"schema":{"$ref":"#/components/schemas/firewall_assignments"}}}}}, "x-speakeasy-name-override": "listAssignments", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.firewalls.list_assignments(firewall_id=\"fw_Qk0Ryqv1dW36X\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.ListAssignments(ctx, \"fw_Qk0Ryqv1dW36X\", latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1))\n if err != nil {\n log.Fatal(err)\n }\n if res.FirewallAssignments != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.firewalls.listAssignments({\n firewallId: \"fw_Qk0Ryqv1dW36X\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] } }, "/firewalls/{firewall_id}/assignments/{assignment_id}": {"delete":{ "summary": "Delete assignment", "operationId": "delete-firewall-assignment", "description": "Removes a server or a virtual machine from a firewall by its assignment ID.", "tags": ["Firewalls"], "security": [{"Bearer":[]}], "parameters": [{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"schema":{"type":"string"}}, {"name":"assignment_id","in":"path","description":"The Assignment ID","required":true,"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/delete-firewall-assignment"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "deleteAssignment", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.firewalls.delete_assignment(firewall_id=\"fw_2695BdKrOevVo\", assignment_id=\"fwasg_6059EqYkOQj8p\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Firewalls.DeleteAssignment(ctx, \"fw_2695BdKrOevVo\", \"fwasg_6059EqYkOQj8p\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.firewalls.deleteAssignment({\n firewallId: \"\",\n assignmentId: \"\",\n });\n\n\n}\n\nrun();" } ] }}, "/ips": {"get":{ "summary": "List IPs", "operationId": "get-ips", "tags": ["IP Addresses"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}}, {"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}}, {"name":"filter[family]","in":"query","schema":{"type":"string","enum":["IPv4","IPv6"]},"required":false,"description":"The protocol family to filter by"}, {"name":"filter[type]","in":"query","schema":{"type":"string","enum":["private","public","elastic"]},"required":false,"description":"The protocol type to filter by"}, {"name":"filter[location]","in":"query","required":false,"description":"The site slug to filter by","schema":{"type":"string"}}, {"name":"filter[address]","in":"query","required":false,"description":"The address of IP to filter by starts_with","schema":{"type":"string"}}, {"name":"filter[additional]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by additional IPs (true) or management IPs (false)"}, {"name":"filter[available]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by unassigned IPs (true) or assigned IPs (false)"}, {"name":"filter[management]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by management IPs (true) or additional/elastic IPs (false)"}, {"name":"extra_fields[ip_addresses]","in":"query","required":false,"description":"The `region` and `server` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[ip_addresses]=region,server` in the query string.","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}}, {"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: address, family, type, created_at. Example: `sort=type,-created_at` sorts by type ascending, then by creation date descending.","schema":{"type":"string"}}], "description": "List all Management and Additional IP Addresses.\n • Management IPs are IPs that are used for the management IP of a device.\n This is a public IP address that a device is born and dies with. It never changes during the lifecycle of the device.\n • Additional IPs are individual IPs that can be added to a device as an additional IP that can be used.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-ips"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ip_5AEmq7wXqBkWX","type":"ip_addresses","attributes":{"address":"110.190.5.254","cidr":null,"family":"IPv4","gateway":null,"netmask":"255.255.255.255","type":"Public","public":true,"management":true,"additional":false,"project":{"id":"proj_lkg1DeVgOvZE5","name":"Incredible Silk Keyboard"},"region":{},"available":true,"assignment":{}}}, {"id":"ip_Gr47qleMDAg0m","type":"ip_addresses","attributes":{"address":"180.228.210.136","cidr":null,"family":"IPv4","gateway":null,"netmask":"255.255.255.255","type":"Public","public":true,"management":true,"additional":false,"project":{"id":"proj_lkg1DeVgOvZE5","name":"Incredible Silk Keyboard"},"region":{},"available":true,"assignment":{}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ip_addresses"}}}}}, "x-speakeasy-group": "ipAddresses", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ip_addresses.list(filter_server=\"46\", filter_project=\"64\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.IPAddresses.List(ctx, operations.GetIpsRequest{\n FilterServer: latitudeshgosdk.Pointer(\"46\"),\n FilterProject: latitudeshgosdk.Pointer(\"64\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.IPAddresses != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.ipAddresses.list({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/ips/{ip_id}": {"get":{ "summary": "Retrieve an IP", "operationId": "get-ip", "tags": ["IP Addresses"], "security": [{"Bearer":[]}], "parameters": [{"name":"ip_id","in":"path","description":"The IP Address ID","required":true,"schema":{"type":"string"}}, {"name":"extra_fields[ip_addresses]","in":"query","required":false,"description":"The `region` and `server` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[ip_addresses]=region,server` in the query string.","schema":{"type":"string"}}], "description": "Retrieve an IP Address", "x-mint": {"href":"/api-reference/get-ip"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/ip_address"}}}}}, "x-speakeasy-group": "ipAddresses", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ip_addresses.get(ip_id=\"ip_059EqY7kOQj8p\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.IPAddresses.Get(ctx, \"ip_059EqY7kOQj8p\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.IPAddress != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.ipAddresses.get({\n ipId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/team/members": { "get": { "summary": "List members", "operationId": "get-team-members", "tags": ["Team members"], "security": [{"Bearer":[]}], "parameters": [{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-team-members"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"user_4V815bRpPLCKKQnvA2yESr5Q8Px","type":"users","attributes":{"first_name":"Arron","last_name":"Flatley","email":"gabrielle@carter.example","mfa_enabled":false,"created_at":"2025-10-31T00:00:00+00:00","updated_at":"2026-11-15T00:00:00+00:00","last_login_at":null,"role":{"id":"role_0W0Q8EJMrViyEkP5KBzzHNP4v48","name":"billing"}}}, {"id":"user_YLNGPAYPAotoo2mZRv59SGLKQW7n","type":"users","attributes":{"first_name":"Kathryne","last_name":"Purdy","email":"hilaria.rutherford@lowe.test","mfa_enabled":false,"created_at":"2025-05-31T00:00:00+00:00","updated_at":"2026-10-22T00:00:00+00:00","last_login_at":null,"role":{"id":"role_o41aor9xVMSzmNM5eQN4TkJbv42","name":"owner"}}}, {"id":"user_LxZl44k6rJtLBAYg67L7F5o3AkJP","type":"users","attributes":{"first_name":"Myles","last_name":"Lesch","email":"manual@marquardt-lueilwitz.example","mfa_enabled":false,"created_at":"2025-02-22T00:00:00+00:00","updated_at":"2026-09-20T00:00:00+00:00","last_login_at":"2025-08-05T00:00:00+00:00","role":{"id":"role_o41aor9xVMSzmNM5eQN4TkJbv42","name":"owner"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/team_members"}}}}}, "x-speakeasy-group": "teams.members", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.teams_members.list(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Teams.Members.GetTeamMembers(ctx, latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1), nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.TeamMembers != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.teams.members.getTeamMembers({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create member", "operationId": "post-team-members", "tags": ["Team members"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/post-team-members"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"user_pbV0Dgykd4AWz","type":"memberships","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator","mfa_enabled":false,"created_at":"2026-01-14T15:56:36+00:00","updated_at":"2026-01-14T15:56:36+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/membership"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["memberships"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]}},"required":["email","role"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["memberships"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]}},"required":["email","role"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator"}}}}}}},"required":true}, "x-speakeasy-group": "teamMembers", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.teams_members.add(data={\n \"type\": latitudesh_python_sdk.PostTeamMembersTeamsMembersType.MEMBERSHIPS,\n \"attributes\": {\n \"first_name\": \"Maricela\",\n \"last_name\": \"Torphy\",\n \"email\": \"maritza_schneider@mcglynn.test\",\n \"role\": latitudesh_python_sdk.PostTeamMembersTeamsMembersRole.COLLABORATOR,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.TeamMembers.PostTeamMembers(ctx, operations.PostTeamMembersTeamMembersRequestBody{\n Data: operations.PostTeamMembersTeamMembersData{\n Type: operations.PostTeamMembersTeamMembersTypeMemberships,\n Attributes: &operations.PostTeamMembersTeamMembersAttributes{\n FirstName: latitudeshgosdk.Pointer(\"Maricela\"),\n LastName: latitudeshgosdk.Pointer(\"Torphy\"),\n Email: \"maritza_schneider@mcglynn.test\",\n Role: operations.PostTeamMembersRoleCollaborator,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Membership != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.teamMembers.postTeamMembers({\n data: {\n type: \"memberships\",\n attributes: {\n firstName: \"Maricela\",\n lastName: \"Torphy\",\n email: \"maritza_schneider@mcglynn.test\",\n role: \"collaborator\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/team/members/{user_id}": {"delete":{ "summary": "Remove a member", "operationId": "destroy-team-member", "tags": ["Team members"], "parameters": [{"name":"user_id","in":"path","description":"The user ID","required":true,"examples":{"Success":{"value":"user_0MoLqJEYd57pY"}},"schema":{"type":"string"}}], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/destroy-team-member"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}, "x-speakeasy-group": "teamMembers", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.teams_members.remove_member(user_id=\"user_0MoLqJEYd57pY\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.TeamMembers.Delete(ctx, \"user_0MoLqJEYd57pY\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.teamMembers.delete({\n userId: \"user_0MoLqJEYd57pY\",\n });\n\n\n}\n\nrun();" } ] }}, "/plans/operating_systems": {"get":{ "summary": "List operating systems", "operationId": "get-plans-operating-system", "tags": ["Operating Systems"], "security": [{"Bearer":[]}], "description": "Lists all operating systems available to deploy and reinstall.\n", "parameters": [{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-plans-operating-system"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"os_mw49QDB5qagKb","type":"operating_system","attributes":{"name":"windows_server_2012_r2_std_v281 11.77","distro":"CentOS 1","slug":"debian_121","version":"11.77","user":"Rosalinda","features":{},"provisionable_on":["g3.a100.medium-39","c2.medium.x86-40"]}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/operating_systems"}}}}}, "x-speakeasy-group": "operatingSystems", "x-speakeasy-name-override": "listPlans", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.operating_systems.list(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.OperatingSystems.ListPlans(ctx, latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1), nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.OperatingSystems != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.operatingSystems.listPlans({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/kubernetes_clusters": {"post":{"summary":"Create a Kubernetes Cluster","operationId":"create-kubernetes-cluster","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new managed Kubernetes cluster. Maximum of 1 cluster per project.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can create clusters. Users with the `billing` role cannot perform this action.\n\nCluster names must follow Kubernetes naming rules: lowercase alphanumeric characters or hyphens, must start and end with an alphanumeric character, and be at most 63 characters long.\n","responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"provisioning","control_plane_endpoint":"https://api.my-cluster.example.com:6443"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_create_response"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"Project ID is required"}]}},"InvalidSshKeys":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"One or more SSH keys not found or not owned by your team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ClusterLimitExceeded":{"value":{"errors":[{"code":"CLUSTER_LIMIT_EXCEEDED","message":"Only 1 cluster per project is allowed"}]}},"NoAvailableIP":{"value":{"errors":[{"code":"NO_AVAILABLE_IP","message":"Failed to allocate LoadBalancer IP: No available IP found"}]}},"InvalidSite":{"value":{"errors":[{"code":"INVALID_SITE","message":"Site not found"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","message":"Managed Kubernetes is not available at site MIA. Available sites: FRA, ASH"}]}},"InvalidClusterName":{"value":{"errors":[{"code":"INVALID_CLUSTER_NAME","message":"Cluster name must contain only lowercase letters, numbers, and hyphens"}]}},"InsufficientStock":{"value":{"errors":[{"code":"INSUFFICIENT_STOCK","message":"No stock available of plan suitable for Kubernetes cluster"}]}},"PlanNotFound":{"value":{"errors":[{"code":"PLAN_NOT_FOUND","message":"Plan 'invalid-plan' not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"503":{"description":"Service Unavailable","content":{"application/vnd.api+json":{"examples":{"ManagementClusterError":{"value":{"errors":[{"code":"MANAGEMENT_CLUSTER_ERROR","message":"Failed to communicate with the management cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_kubernetes_cluster"},"examples":{"Created":{"summary":"Create a cluster","value":{"data":{"type":"kubernetes_clusters","attributes":{"name":"my-cluster","project_id":"proj_6059EqYkOQj8p","site":"SAN3","plan":"c2-small-x86","ssh_keys":["ssh_VkE1DwV37dnZJ"]}}}}}}},"required":true}},"get":{"summary":"List Kubernetes Clusters","operationId":"list-kubernetes-clusters","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"query","required":true,"description":"The project ID to filter clusters by","schema":{"type":"string"}}],"description":"Lists all Kubernetes clusters for a project.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioned","ready":true,"infrastructure_ready":true,"control_plane_ready":true,"message":"Cluster is ready","steps":[{"name":"infrastructure","status":"completed"}, {"name":"control_plane","status":"completed"}, {"name":"workers","status":"completed"}],"last_status_change":"2026-01-15T10:35:00Z","created_at":"2026-01-15T10:30:00Z"}}]}},"EmptyList":{"value":{"data":[]}}},"schema":{"$ref":"#/components/schemas/kubernetes_clusters"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"MissingProjectId":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"project_id query param is required"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}}, "/kubernetes_clusters/available_versions": {"get":{"summary":"List Available Kubernetes Versions","operationId":"list-kubernetes-available-versions","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[],"description":"Returns the list of available Kubernetes versions for cluster creation and upgrades. Versions are sourced from the RKE2 release channels and cached for 24 hours.\n\nEach version object includes:\n- `latest`: The full version string (e.g., `v1.35.3+rke2r1`)\n- `minor`: The minor version number (e.g., `1.35`)\n\nThe API returns the latest 5 supported minor versions. When upgrading clusters, you can only upgrade one minor version at a time (e.g., from 1.34 to 1.35).\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"latest":"v1.31.6+rke2r1","minor":"1.31"}, {"latest":"v1.32.5+rke2r1","minor":"1.32"}, {"latest":"v1.33.5+rke2r1","minor":"1.33"}, {"latest":"v1.34.6+rke2r1","minor":"1.34"}, {"latest":"v1.35.3+rke2r1","minor":"1.35"}]}}},"schema":{"$ref":"#/components/schemas/kubernetes_available_versions"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}}, "/kubernetes_clusters/{kubernetes_cluster_id}": {"get":{"summary":"Get a Kubernetes Cluster","operationId":"get-kubernetes-cluster","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Retrieves detailed information about a Kubernetes cluster including its status, control plane, worker node details, and individual node information.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioned","ready":true,"control_plane_endpoint":"https://api.my-cluster.example.com:6443","kubeconfig_url":"/kubernetes_clusters/kc_pRMLydp0dQKr1/kubeconfig","location":"SAN3","load_balancer_ips":["10.0.0.1"],"kubernetes_version":"v1.34.3+rke2r1","version_status":"upgrade_available","available_upgrade":"v1.35.3+rke2r1","created_at":"2026-01-15T10:30:00Z","plan":"c3-small-x86","worker_plan":"c3-medium-x86","control_plane_count":1,"worker_count":1,"control_plane":{"ready":true,"replicas":1,"ready_replicas":1},"workers":{"replicas":1,"ready_replicas":1,"available_replicas":1},"worker_status":"ready","control_plane_status":"ready","infrastructure_ready":true,"control_plane_ready":true,"message":"Cluster is ready","steps":[{"name":"infrastructure","status":"completed"}, {"name":"control_plane","status":"completed"}, {"name":"workers","status":"completed"}],"last_status_change":"2026-01-15T10:35:00Z","failure_message":null,"failure_reason":null,"nodes":[{"id":"my-cluster-control-plane-abc12","name":"my-cluster-control-plane-abc12","hostname":"my-cluster-control-plane-abc12","server_id":"sv_RLYV8DZ2D5QoE","type":"control_plane","status":"ready","ip":"203.0.113.10","internal_ip":"10.0.0.10","external_ip":"203.0.113.10"}, {"id":"my-cluster-md-0-def34","name":"my-cluster-md-0-def34","hostname":"my-cluster-md-0-def34","server_id":"sv_7KP2Xm9nYwR3Q","type":"worker","status":"ready","ip":"203.0.113.20","internal_ip":"10.0.0.20","external_ip":"203.0.113.20"}],"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project"}}}}},"Provisioning":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioning","ready":false,"control_plane_endpoint":null,"kubeconfig_url":null,"location":"SAN3","load_balancer_ips":[],"kubernetes_version":"v1.34.3+rke2r1","version_status":"up_to_date","available_upgrade":null,"created_at":"2026-01-15T10:30:00Z","plan":"c3-small-x86","worker_plan":"c3-medium-x86","control_plane_count":1,"worker_count":0,"control_plane":{"ready":false,"replicas":1,"ready_replicas":0},"workers":null,"worker_status":null,"control_plane_status":"scaling","infrastructure_ready":false,"control_plane_ready":false,"message":"Setting up cluster infrastructure","steps":[{"name":"infrastructure","status":"in_progress"}, {"name":"control_plane","status":"pending"}, {"name":"workers","status":"pending"}],"last_status_change":"2026-01-15T10:32:00Z","failure_message":null,"failure_reason":null,"nodes":[{"id":"my-cluster-control-plane-xyz78","name":"my-cluster-control-plane-xyz78","hostname":null,"server_id":null,"type":"control_plane","status":"pending","ip":null,"internal_ip":null,"external_ip":null}],"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project"}}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"delete":{"summary":"Delete a Kubernetes Cluster","operationId":"delete-kubernetes-cluster","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Deletes a Kubernetes cluster. This action is irreversible and will destroy all cluster resources.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can delete clusters. Users with the `billing` role cannot perform this action.\n","responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"DeletionFailed":{"value":{"errors":[{"code":"DELETION_FAILED","message":"Failed to delete the cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"patch":{"summary":"Update Kubernetes Cluster","operationId":"update-kubernetes-cluster","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in `Provisioned` phase to accept updates.\n\n## Scaling Operations\n\nExactly one of `worker_count` or `control_plane_count` must be provided per request. You cannot scale workers and control plane nodes in the same request.\n\nWhen scaling up, the API validates that sufficient server stock is available for the requested delta (e.g., scaling from 2 to 5 workers checks for 3 available servers).\n\nWhen scaling from 0 workers, you must provide a `worker_plan` since there is no existing configuration to inherit the plan from.\n\nControl plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.\n\n## Version Upgrades\n\nProvide a `kubernetes_version` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:\n\n- **No downgrades**: You cannot downgrade to a lower version than currently installed\n- **One minor version at a time**: You can only upgrade one minor version at a time (e.g., from 1.34 to 1.35, not from 1.34 to 1.36)\n- **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request\n- **Available versions only**: The target version must be in the list returned by `GET /kubernetes_clusters/available_versions`\n\nReturns 202 Accepted when an update operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if no change is needed (no-op).\n","responses":{"200":{"description":"OK - No change needed","content":{"application/vnd.api+json":{"examples":{"WorkersUnchanged":{"summary":"Worker count unchanged","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"unchanged","worker_count":3}}}},"ControlPlaneUnchanged":{"summary":"Control plane count unchanged","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"unchanged","control_plane_count":3}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_update_response"}}}},"202":{"description":"Accepted - Update operation started","content":{"application/vnd.api+json":{"examples":{"ScalingWorkers":{"summary":"Worker scaling in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"scaling","worker_count":5}}}},"ScalingControlPlane":{"summary":"Control plane scaling in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"scaling","control_plane_count":3}}}},"UpgradingVersion":{"summary":"Version upgrade in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"upgrading","kubernetes_version":"v1.35.0+rke2r1"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_update_response"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"MissingParameter":{"summary":"No update parameter provided","value":{"errors":[{"code":"VALIDATION_ERROR","message":"worker_count, control_plane_count, or kubernetes_version is required"}]}},"ScalingMutualExclusion":{"summary":"Both worker_count and control_plane_count provided","value":{"errors":[{"code":"VALIDATION_ERROR","message":"cannot update control_plane_count and worker_count in the same request"}]}},"VersionWithScaling":{"summary":"Version upgrade combined with scaling","value":{"errors":[{"code":"VALIDATION_ERROR","message":"cannot combine kubernetes_version with scaling operations"}]}},"InvalidWorkerCountType":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"worker_count must be an integer"}]}},"InvalidControlPlaneCountType":{"summary":"Control plane count is not an integer","value":{"errors":[{"code":"VALIDATION_ERROR","message":"control_plane_count must be an integer"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ClusterNotReady":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"Cluster must be in Provisioned phase to accept updates (current phase: Provisioning)"}]}},"InvalidWorkerCount":{"value":{"errors":[{"code":"INVALID_WORKER_COUNT","message":"worker_count must be between 0 and 10"}]}},"WorkerPlanRequired":{"value":{"errors":[{"code":"WORKER_PLAN_REQUIRED","message":"worker_plan is required when scaling from 0 workers"}]}},"InvalidControlPlaneCount":{"summary":"Control plane count below minimum","value":{"errors":[{"code":"VALIDATION_ERROR","message":"control_plane_count must be at least 1"}]}},"InsufficientStock":{"value":{"errors":[{"code":"INSUFFICIENT_STOCK","message":"No stock available of plan suitable for Kubernetes cluster"}]}},"VersionDowngrade":{"summary":"Attempted to downgrade Kubernetes version","value":{"errors":[{"code":"VERSION_DOWNGRADE","message":"Cannot downgrade from v1.35.0+rke2r1 to v1.34.0+rke2r1"}]}},"MinorVersionSkip":{"summary":"Attempted to skip a minor version","value":{"errors":[{"code":"MINOR_VERSION_SKIP","message":"Cannot skip minor versions. Current: 1.34, target: 1.36. Upgrade to 1.35 first."}]}},"VersionNotAvailable":{"summary":"Target version not in available versions list","value":{"errors":[{"code":"VERSION_NOT_AVAILABLE","message":"Version v1.30.0+rke2r1 is not available for upgrade"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"503":{"description":"Service Unavailable","content":{"application/vnd.api+json":{"examples":{"ManagementClusterError":{"value":{"errors":[{"code":"MANAGEMENT_CLUSTER_ERROR","message":"Failed to communicate with the management cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_kubernetes_cluster"},"examples":{"ScaleWorkersUp":{"summary":"Scale workers from 2 to 5","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":5}}}},"ScaleWorkersDown":{"summary":"Scale workers from 5 to 2","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":2}}}},"ScaleWorkersFromZero":{"summary":"Scale from 0 workers (requires worker_plan)","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":3,"worker_plan":"c3-small-x86"}}}},"ScaleWorkersToZero":{"summary":"Scale down to 0 workers","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":0}}}},"ScaleControlPlaneUp":{"summary":"Scale control plane from 1 to 3 nodes","value":{"data":{"type":"kubernetes_clusters","attributes":{"control_plane_count":3}}}},"ScaleControlPlaneDown":{"summary":"Scale control plane from 3 to 1 node","value":{"data":{"type":"kubernetes_clusters","attributes":{"control_plane_count":1}}}},"UpgradeVersion":{"summary":"Upgrade Kubernetes version","value":{"data":{"type":"kubernetes_clusters","attributes":{"kubernetes_version":"v1.35.0+rke2r1"}}}}}}},"required":true}}}, "/kubernetes_clusters/{kubernetes_cluster_id}/kubeconfig": {"get":{"summary":"Get Kubernetes Cluster Kubeconfig","operationId":"get-kubernetes-cluster-kubeconfig","tags":["Kubernetes Clusters"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Retrieves the kubeconfig file for a Kubernetes cluster. The kubeconfig is only available once the cluster is fully provisioned.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can access cluster credentials. Users with the `billing` role cannot perform this action.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"kubernetes_cluster_kubeconfigs","id":"kc_pRMLydp0dQKr1","attributes":{"cluster_name":"my-cluster","kubeconfig":"apiVersion: v1\nclusters:\n- cluster:\n certificate-authority-data: LS0tLS1...\n server: https://api.my-cluster.example.com:6443\n name: my-cluster\ncontexts:\n- context:\n cluster: my-cluster\n user: my-cluster-admin\n name: my-cluster\ncurrent-context: my-cluster\nkind: Config\nusers:\n- name: my-cluster-admin\n user:\n client-certificate-data: LS0tLS1...\n client-key-data: LS0tLS1...\n"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_kubeconfig"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"KubeconfigNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Kubeconfig not found for cluster my-cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}}, "/lks/clusters": { "post": { "summary": "Create an LKS cluster", "operationId": "create-lks-cluster", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [], "description": "Creates an LKS cluster. The cluster is the control plane only — worker capacity is added separately through node pools (`POST /lks/clusters/{cluster_id}/nodepools`).\n\n`site` must be one of the slugs returned by `GET /lks/sites`, and `kubernetes_version` must be a patch listed by `GET /lks/available_versions` with `available_for_creation: true`.\n\nThe cluster is returned immediately with `status: \"provisioning\"`. Poll `GET /lks/clusters/{id}` until `status` is `ready`, then fetch the kubeconfig.\n", "requestBody": {"required":true,"content":{"application/json":{"examples":{"Minimal":{"summary":"Platform defaults for the network ranges","value":{"data":{"type":"lks_clusters","attributes":{"name":"production","project_id":"proj_6059EqYkOQj8p","site":"DAL2","kubernetes_version":"1.36.3"}}}},"WithNetworkOverrides":{"summary":"Custom CIDRs — one IPv4 CIDR per field","value":{"data":{"type":"lks_clusters","attributes":{"name":"production","project_id":"proj_6059EqYkOQj8p","site":"DAL2","kubernetes_version":"1.36.3","description":"Main production cluster","network":{"pod_cidrs":["10.70.0.0/16"],"service_cidrs":["10.71.0.0/16"],"node_cidrs":["10.72.0.0/24"]}}}}}},"schema":{"$ref":"#/components/schemas/create_lks_cluster"}},"application/vnd.api+json":{"examples":{"Minimal":{"summary":"Platform defaults for the network ranges","value":{"data":{"type":"lks_clusters","attributes":{"name":"production","project_id":"proj_6059EqYkOQj8p","site":"DAL2","kubernetes_version":"1.36.3"}}}},"WithNetworkOverrides":{"summary":"Custom CIDRs — one IPv4 CIDR per field","value":{"data":{"type":"lks_clusters","attributes":{"name":"production","project_id":"proj_6059EqYkOQj8p","site":"DAL2","kubernetes_version":"1.36.3","description":"Main production cluster","network":{"pod_cidrs":["10.70.0.0/16"],"service_cidrs":["10.71.0.0/16"],"node_cidrs":["10.72.0.0/24"]}}}}}},"schema":{"$ref":"#/components/schemas/create_lks_cluster"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Provisioning":{"value":{"data":{"id":"lksc_pRMLydp0dQKr1","type":"lks_clusters","attributes":{"name":"production","description":"","project_id":"proj_6059EqYkOQj8p","site":"DAL2","status":"provisioning","message":"","reason":"CreatingNetwork","control_plane_endpoint":null,"kubeconfig_url":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","network":{"pod_cidrs":["10.0.0.0/12"],"service_cidrs":["10.96.0.0/15"],"node_cidrs":["10.16.0.0/21"]},"created_at":"2026-09-01T12:00:00Z","updated_at":"2026-09-01T12:00:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_cluster"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ProjectNotFound":{"summary":"Unknown project, or a project owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Project 'proj_6059EqYkOQj8p' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"VersionNotAvailable":{"value":{"errors":[{"code":"VERSION_NOT_AVAILABLE","title":"Version Not Available","detail":"Kubernetes 1.36.0 is not available for creation","status":"422","meta":{}}]}},"InvalidSite":{"value":{"errors":[{"code":"INVALID_SITE","title":"Invalid Site","detail":"Site 'XXX1' cannot host an LKS cluster","status":"422","meta":{}}]}},"ValidationError":{"summary":"Contract validation failure","value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"must be a Kubernetes patch version, e.g. 1.36.3","status":"422","source":{"pointer":"kubernetes_version"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.create_lks_cluster(data={\n \"type\": latitudesh_python_sdk.CreateLksClusterType.LKS_CLUSTERS,\n \"attributes\": {\n \"name\": \"production\",\n \"project_id\": \"proj_6059EqYkOQj8p\",\n \"site\": \"DAL2\",\n \"kubernetes_version\": \"1.36.3\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.CreateLksCluster(ctx, components.CreateLksCluster{\n Data: components.CreateLksClusterData{\n Type: components.CreateLksClusterTypeLksClusters,\n Attributes: components.CreateLksClusterAttributes{\n Name: \"production\",\n ProjectID: \"proj_6059EqYkOQj8p\",\n Site: \"DAL2\",\n KubernetesVersion: \"1.36.3\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.LksCluster != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.createLksCluster({\n data: {\n type: \"lks_clusters\",\n attributes: {\n name: \"production\",\n projectId: \"proj_6059EqYkOQj8p\",\n site: \"DAL2\",\n kubernetesVersion: \"1.36.3\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List LKS clusters", "operationId": "list-lks-clusters", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"query","required":true,"description":"Project `id_hash` or slug. Required — clusters are always scoped to a project.","schema":{"type":"string"},"example":"proj_6059EqYkOQj8p"}], "description": "Lists every LKS cluster of a project. The response is not paginated; `meta.total` is the number of clusters returned.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"OneCluster":{"value":{"data":[{"id":"lksc_pRMLydp0dQKr1","type":"lks_clusters","attributes":{"name":"production","description":"","project_id":"proj_6059EqYkOQj8p","site":"DAL2","status":"ready","message":"","reason":"","control_plane_endpoint":"https://lksc-prmlydp0dqkr1.lks.latitude.sh:6443","kubeconfig_url":"/lks/clusters/lksc_pRMLydp0dQKr1/kubeconfig","kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","network":{"pod_cidrs":["10.0.0.0/12"],"service_cidrs":["10.96.0.0/15"],"node_cidrs":["10.16.0.0/21"]},"created_at":"2026-09-01T12:00:00Z","updated_at":"2026-09-01T12:18:00Z"}}],"meta":{"total":1}}},"Empty":{"value":{"data":[],"meta":{"total":0}}}},"schema":{"$ref":"#/components/schemas/lks_clusters"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ProjectNotFound":{"summary":"Unknown project, or a project owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Project 'proj_6059EqYkOQj8p' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.list_lks_clusters(project_id=\"proj_6059EqYkOQj8p\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.ListLksClusters(ctx, \"proj_6059EqYkOQj8p\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LksClusters != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.listLksClusters({\n projectId: \"proj_6059EqYkOQj8p\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/lks/clusters/{id}": { "get": { "summary": "Get an LKS cluster", "operationId": "get-lks-cluster", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Retrieves a single LKS cluster.\n\n`status` is an open enum sourced from the platform controller — `provisioning`, `ready`, `updating`, `scaling`, `upgrading`, `paused`, `deleting` and `deleted` are the values in use today, and new ones may appear without notice. `reason` and `message` carry the machine-readable and human-readable detail behind the current `status`.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"Ready":{"value":{"data":{"id":"lksc_pRMLydp0dQKr1","type":"lks_clusters","attributes":{"name":"production","description":"","project_id":"proj_6059EqYkOQj8p","site":"DAL2","status":"ready","message":"","reason":"","control_plane_endpoint":"https://lksc-prmlydp0dqkr1.lks.latitude.sh:6443","kubeconfig_url":"/lks/clusters/lksc_pRMLydp0dQKr1/kubeconfig","kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","network":{"pod_cidrs":["10.0.0.0/12"],"service_cidrs":["10.96.0.0/15"],"node_cidrs":["10.16.0.0/21"]},"created_at":"2026-09-01T12:00:00Z","updated_at":"2026-09-01T12:18:00Z"}}}},"Provisioning":{"summary":"`control_plane_endpoint` and `kubeconfig_url` stay null until the control plane is up","value":{"data":{"id":"lksc_pRMLydp0dQKr1","type":"lks_clusters","attributes":{"name":"production","description":"","project_id":"proj_6059EqYkOQj8p","site":"DAL2","status":"provisioning","message":"","reason":"CreatingNetwork","control_plane_endpoint":null,"kubeconfig_url":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","network":{"pod_cidrs":["10.0.0.0/12"],"service_cidrs":["10.96.0.0/15"],"node_cidrs":["10.16.0.0/21"]},"created_at":"2026-09-01T12:00:00Z","updated_at":"2026-09-01T12:00:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_cluster"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.get_lks_cluster(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.GetLksCluster(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LksCluster != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.getLksCluster({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update an LKS cluster", "operationId": "update-lks-cluster", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Renames a cluster, edits its description, or upgrades the control plane. At least one of `name`, `description` or `kubernetes_version` must be provided.\n\nSetting a newer `kubernetes_version` consents to a control-plane upgrade; the value must be a patch listed by `GET /lks/available_versions` with `available_for_upgrade: true` and must not be lower than the current one. Node pools are upgraded separately and must never run a patch newer than the control plane.\n\nThe cluster must be idle: a cluster that is provisioning, updating, scaling, upgrading, paused or deleting rejects the request with 409.\n", "requestBody": {"required":true,"content":{"application/json":{"examples":{"Rename":{"value":{"data":{"type":"lks_clusters","attributes":{"name":"production-eu"}}}},"UpgradeControlPlane":{"value":{"data":{"type":"lks_clusters","attributes":{"kubernetes_version":"1.37.2"}}}}},"schema":{"$ref":"#/components/schemas/update_lks_cluster"}},"application/vnd.api+json":{"examples":{"Rename":{"value":{"data":{"type":"lks_clusters","attributes":{"name":"production-eu"}}}},"UpgradeControlPlane":{"value":{"data":{"type":"lks_clusters","attributes":{"kubernetes_version":"1.37.2"}}}}},"schema":{"$ref":"#/components/schemas/update_lks_cluster"}}}}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"Upgrading":{"value":{"data":{"id":"lksc_pRMLydp0dQKr1","type":"lks_clusters","attributes":{"name":"production","description":"","project_id":"proj_6059EqYkOQj8p","site":"DAL2","status":"upgrading","message":"upgrading the cluster","reason":"Upgrading","control_plane_endpoint":"https://lksc-prmlydp0dqkr1.lks.latitude.sh:6443","kubeconfig_url":"/lks/clusters/lksc_pRMLydp0dQKr1/kubeconfig","kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","network":{"pod_cidrs":["10.0.0.0/12"],"service_cidrs":["10.96.0.0/15"],"node_cidrs":["10.16.0.0/21"]},"created_at":"2026-09-01T12:00:00Z","updated_at":"2026-09-01T12:18:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_cluster"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict — the cluster is not in an admissible state for this operation","content":{"application/vnd.api+json":{"examples":{"OperationInProgress":{"summary":"Another operation is still running (`provisioning`, `updating`, `scaling`, `upgrading`)","value":{"errors":[{"code":"OPERATION_IN_PROGRESS","title":"Operation In Progress","detail":"operation in progress","status":"409","meta":{}}]}},"ResourcePaused":{"value":{"errors":[{"code":"RESOURCE_PAUSED","title":"Resource Paused","detail":"this cluster is paused","status":"409","meta":{}}]}},"ResourceDeleting":{"value":{"errors":[{"code":"RESOURCE_DELETING","title":"Resource Deleting","detail":"this cluster is being deleted","status":"409","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"DowngradeNotAllowed":{"value":{"errors":[{"code":"DOWNGRADE_NOT_ALLOWED","title":"Downgrade Not Allowed","detail":"Downgrade not allowed: the cluster is on Kubernetes 1.36.3, requested 1.36.1","status":"422","meta":{}}]}},"VersionNotAvailable":{"value":{"errors":[{"code":"VERSION_NOT_AVAILABLE","title":"Version Not Available","detail":"Kubernetes 1.39.0 is not available for upgrade","status":"422","meta":{}}]}},"EmptyPayload":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"at least one of name, description or kubernetes_version must be provided","status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.update_lks_cluster(id=\"\", data={\n \"type\": latitudesh_python_sdk.UpdateLksClusterType.LKS_CLUSTERS,\n \"attributes\": {\n \"name\": \"production-eu\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.UpdateLksCluster(ctx, \"\", components.UpdateLksCluster{\n Data: components.UpdateLksClusterData{\n Type: components.UpdateLksClusterTypeLksClusters,\n Attributes: &components.UpdateLksClusterAttributes{\n Name: latitudeshgosdk.Pointer(\"production-eu\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.LksCluster != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.updateLksCluster({\n id: \"\",\n updateLksCluster: {\n data: {\n type: \"lks_clusters\",\n attributes: {\n name: \"production-eu\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete an LKS cluster", "operationId": "delete-lks-cluster", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Marks the cluster for deletion. The call returns as soon as the tombstone is written; the platform then tears the cluster and its node pools down asynchronously. A cluster that is already deleted, or that is paused, rejects the request.\n", "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict — the cluster is paused","content":{"application/vnd.api+json":{"examples":{"ResourcePaused":{"value":{"errors":[{"code":"RESOURCE_PAUSED","title":"Resource Paused","detail":"this cluster is paused","status":"409","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.lks.delete_lks_cluster(id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.DeleteLksCluster(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.lks.deleteLksCluster({\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/lks/clusters/{id}/kubeconfig": {"get":{ "summary": "Get the cluster kubeconfig", "operationId": "get-lks-cluster-kubeconfig", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Returns the kubeconfig for the cluster. It only exists once the control plane is up, so this endpoint answers 409 `NOT_READY` while the cluster is still provisioning — poll `GET /lks/clusters/{id}` until `kubeconfig_url` is set.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"Ready":{"value":{"data":{"id":"lksc_pRMLydp0dQKr1","type":"lks_cluster_kubeconfigs","attributes":{"kubeconfig":"apiVersion: v1\nkind: Config\nclusters:\n- cluster:\n server: https://lksc-prmlydp0dqkr1.lks.latitude.sh:6443\n name: production\n"}}}}},"schema":{"$ref":"#/components/schemas/lks_cluster_kubeconfig"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict — the control plane is not ready yet","content":{"application/vnd.api+json":{"examples":{"NotReady":{"value":{"errors":[{"code":"NOT_READY","message":"Kubeconfig is not available yet"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.get_lks_cluster_kubeconfig(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.GetLksClusterKubeconfig(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LksClusterKubeconfig != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.getLksClusterKubeconfig({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/lks/clusters/{cluster_id}/nodepools": { "post": { "summary": "Create a node pool", "operationId": "create-lks-node-pool", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"cluster_id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Adds a node pool to an LKS cluster. The platform provisions `count` servers of `plan` from stock, so both fields are required.\n\n`kubernetes_version` defaults to the control-plane patch and may never be newer than it. `max_pods_per_node` is set once, here — it cannot be changed later.\n", "requestBody": {"required":true,"content":{"application/json":{"examples":{"OnDemand":{"summary":"Minimal on-demand pool","value":{"data":{"type":"lks_node_pools","attributes":{"name":"pool-a","plan":"c2-small-x86","count":2}}}},"WithLabelsAndTaints":{"value":{"data":{"type":"lks_node_pools","attributes":{"name":"gpu","plan":"g3-xlarge-x86","count":3,"max_pods_per_node":250,"labels":{"workload":"training"},"taints":[{"key":"dedicated","value":"gpu","effect":"NoSchedule"}]}}}}},"schema":{"$ref":"#/components/schemas/create_lks_node_pool"}},"application/vnd.api+json":{"examples":{"OnDemand":{"summary":"Minimal on-demand pool","value":{"data":{"type":"lks_node_pools","attributes":{"name":"pool-a","plan":"c2-small-x86","count":2}}}},"WithLabelsAndTaints":{"value":{"data":{"type":"lks_node_pools","attributes":{"name":"gpu","plan":"g3-xlarge-x86","count":3,"max_pods_per_node":250,"labels":{"workload":"training"},"taints":[{"key":"dedicated","value":"gpu","effect":"NoSchedule"}]}}}}},"schema":{"$ref":"#/components/schemas/create_lks_node_pool"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Provisioning":{"value":{"data":{"id":"lksnp_9dQKr1pRMLyd","type":"lks_node_pools","attributes":{"name":"pool-a","type":"bare_metal","mode":"on_demand","plan":"c2-small-x86","description":"","count":2,"max_pods_per_node":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","status":"provisioning","message":"","reason":"WaitingForNodes","ready_nodes":null,"labels":{},"taints":[],"created_at":"2026-09-01T12:05:00Z","updated_at":"2026-09-01T12:05:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_node_pool"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"VersionSkew":{"value":{"errors":[{"code":"VERSION_SKEW","title":"Version Skew","detail":"Version skew not allowed: node pool Kubernetes 1.37.0 cannot be newer than the cluster's 1.36.3","status":"422","meta":{}}]}},"MaxPodsOutOfRange":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"must be between 16 and 500","status":"422","source":{"pointer":"max_pods_per_node"}}]}},"ReservedLabelPrefix":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"key 'kubernetes.io/arch' uses reserved prefix 'kubernetes.io'","status":"422","source":{"pointer":"labels"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.create_lks_node_pool(cluster_id=\"\", data={\n \"type\": latitudesh_python_sdk.CreateLksNodePoolType.LKS_NODE_POOLS,\n \"attributes\": {\n \"plan\": \"c2-small-x86\",\n \"count\": 2,\n \"name\": \"pool-a\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.CreateLksNodePool(ctx, \"\", components.CreateLksNodePool{\n Data: components.CreateLksNodePoolData{\n Type: components.CreateLksNodePoolTypeLksNodePools,\n Attributes: components.CreateLksNodePoolAttributes{\n Plan: \"c2-small-x86\",\n Count: 2,\n Name: latitudeshgosdk.Pointer(\"pool-a\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.LksNodePool != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.createLksNodePool({\n clusterId: \"\",\n createLksNodePool: {\n data: {\n type: \"lks_node_pools\",\n attributes: {\n plan: \"c2-small-x86\",\n count: 2,\n name: \"pool-a\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List node pools", "operationId": "list-lks-node-pools", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"cluster_id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}], "description": "Lists every node pool of an LKS cluster. The response is not paginated; `meta.total` is the number of node pools returned.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"OnePool":{"value":{"data":[{"id":"lksnp_9dQKr1pRMLyd","type":"lks_node_pools","attributes":{"name":"pool-a","type":"bare_metal","mode":"on_demand","plan":"c2-small-x86","description":"","count":2,"max_pods_per_node":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","status":"ready","message":"","reason":"","ready_nodes":2,"labels":{"workload":"general"},"taints":[{"key":"dedicated","value":"gpu","effect":"NoSchedule"}],"created_at":"2026-09-01T12:05:00Z","updated_at":"2026-09-01T12:22:00Z"}}],"meta":{"total":1}}}},"schema":{"$ref":"#/components/schemas/lks_node_pools"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.list_lks_node_pools(cluster_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.ListLksNodePools(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LksNodePools != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.listLksNodePools({\n clusterId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/lks/clusters/{cluster_id}/nodepools/{id}": { "get": { "summary": "Get a node pool", "operationId": "get-lks-node-pool", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"cluster_id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The node pool ID (format: `lksnp_`).","schema":{"type":"string"}}], "description": "Retrieves a single node pool of an LKS cluster. `ready_nodes` reports how many of the pool's `count` nodes have joined the cluster.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"Ready":{"value":{"data":{"id":"lksnp_9dQKr1pRMLyd","type":"lks_node_pools","attributes":{"name":"pool-a","type":"bare_metal","mode":"on_demand","plan":"c2-small-x86","description":"","count":2,"max_pods_per_node":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","status":"ready","message":"","reason":"","ready_nodes":2,"labels":{"workload":"general"},"taints":[{"key":"dedicated","value":"gpu","effect":"NoSchedule"}],"created_at":"2026-09-01T12:05:00Z","updated_at":"2026-09-01T12:22:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_node_pool"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}},"NodePoolNotFound":{"summary":"Unknown node pool, or a node pool of another cluster","value":{"errors":[{"code":"NOT_FOUND","title":"Not Found","detail":"Node pool 'lksnp_9dQKr1pRMLyd' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.get_lks_node_pool(cluster_id=\"\", id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.GetLksNodePool(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LksNodePool != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.getLksNodePool({\n clusterId: \"\",\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update a node pool", "operationId": "update-lks-node-pool", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"cluster_id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The node pool ID (format: `lksnp_`).","schema":{"type":"string"}}], "description": "Scales, renames, upgrades or re-labels a node pool. At least one attribute must be provided.\n\n`labels` and `taints` are declarative replacements, not merges: omit the field to leave it untouched, send the whole map/list to replace it, or send `{}` / `[]` to clear it.\n\nA newer `kubernetes_version` rolls a node-recreating upgrade; it must not be lower than the pool's current patch nor newer than the control-plane patch. `max_pods_per_node` is immutable — a PATCH that carries it is rejected with 422 even if the value is unchanged.\n\nThe node pool must be idle: one that is provisioning, updating, scaling, upgrading, paused or deleting rejects the request with 409.\n", "requestBody": {"required":true,"content":{"application/json":{"examples":{"Scale":{"summary":"Count-only PATCH — labels and taints are left untouched","value":{"data":{"type":"lks_node_pools","attributes":{"count":4}}}},"Upgrade":{"value":{"data":{"type":"lks_node_pools","attributes":{"kubernetes_version":"1.36.3"}}}},"ReplaceLabels":{"summary":"Replaces the whole label map","value":{"data":{"type":"lks_node_pools","attributes":{"labels":{"env":"prod"}}}}},"ClearTaints":{"value":{"data":{"type":"lks_node_pools","attributes":{"taints":[]}}}}},"schema":{"$ref":"#/components/schemas/update_lks_node_pool"}},"application/vnd.api+json":{"examples":{"Scale":{"summary":"Count-only PATCH — labels and taints are left untouched","value":{"data":{"type":"lks_node_pools","attributes":{"count":4}}}},"Upgrade":{"value":{"data":{"type":"lks_node_pools","attributes":{"kubernetes_version":"1.36.3"}}}},"ReplaceLabels":{"summary":"Replaces the whole label map","value":{"data":{"type":"lks_node_pools","attributes":{"labels":{"env":"prod"}}}}},"ClearTaints":{"value":{"data":{"type":"lks_node_pools","attributes":{"taints":[]}}}}},"schema":{"$ref":"#/components/schemas/update_lks_node_pool"}}}}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"Scaling":{"value":{"data":{"id":"lksnp_9dQKr1pRMLyd","type":"lks_node_pools","attributes":{"name":"pool-a","type":"bare_metal","mode":"on_demand","plan":"c2-small-x86","description":"","count":4,"max_pods_per_node":null,"kubernetes_version":"1.36.3","platform_version":"lks-v1.36.3-002","status":"scaling","message":"scaling the node pool","reason":"Scaling","ready_nodes":2,"labels":{"workload":"general"},"taints":[{"key":"dedicated","value":"gpu","effect":"NoSchedule"}],"created_at":"2026-09-01T12:05:00Z","updated_at":"2026-09-01T12:22:00Z"}}}}},"schema":{"$ref":"#/components/schemas/lks_node_pool"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}},"NodePoolNotFound":{"summary":"Unknown node pool, or a node pool of another cluster","value":{"errors":[{"code":"NOT_FOUND","title":"Not Found","detail":"Node pool 'lksnp_9dQKr1pRMLyd' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict — the node pool is not in an admissible state for this operation","content":{"application/vnd.api+json":{"examples":{"OperationInProgress":{"summary":"Another operation is still running (`provisioning`, `updating`, `scaling`, `upgrading`)","value":{"errors":[{"code":"OPERATION_IN_PROGRESS","title":"Operation In Progress","detail":"operation in progress","status":"409","meta":{}}]}},"ResourcePaused":{"value":{"errors":[{"code":"RESOURCE_PAUSED","title":"Resource Paused","detail":"this node pool is paused","status":"409","meta":{}}]}},"ResourceDeleting":{"value":{"errors":[{"code":"RESOURCE_DELETING","title":"Resource Deleting","detail":"this node pool is being deleted","status":"409","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"DowngradeNotAllowed":{"value":{"errors":[{"code":"DOWNGRADE_NOT_ALLOWED","title":"Downgrade Not Allowed","detail":"Downgrade not allowed: the node pool is on Kubernetes 1.36.3, requested 1.36.1","status":"422","meta":{}}]}},"VersionSkew":{"value":{"errors":[{"code":"VERSION_SKEW","title":"Version Skew","detail":"Version skew not allowed: node pool Kubernetes 1.37.0 cannot be newer than the cluster's 1.36.3","status":"422","meta":{}}]}},"MaxPodsNotUpdatable":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"cannot be changed after the node pool is created","status":"422","source":{"pointer":"max_pods_per_node"}}]}},"EmptyPayload":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"at least one attribute must be provided","status":"422"}]}},"DuplicateTaint":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"taint[1] duplicates key 'dedicated' with effect 'NoSchedule'","status":"422","source":{"pointer":"taints"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.update_lks_node_pool(cluster_id=\"\", id=\"\", data={\n \"type\": latitudesh_python_sdk.UpdateLksNodePoolType.LKS_NODE_POOLS,\n \"attributes\": {\n \"count\": 4,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.UpdateLksNodePool(ctx, \"\", \"\", components.UpdateLksNodePool{\n Data: components.UpdateLksNodePoolData{\n Type: components.UpdateLksNodePoolTypeLksNodePools,\n Attributes: &components.UpdateLksNodePoolAttributes{\n Count: latitudeshgosdk.Pointer[int64](4),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.LksNodePool != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.updateLksNodePool({\n clusterId: \"\",\n id: \"\",\n updateLksNodePool: {\n data: {\n type: \"lks_node_pools\",\n attributes: {\n count: 4,\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete a node pool", "operationId": "delete-lks-node-pool", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [{"name":"cluster_id","in":"path","required":true,"description":"The cluster ID (format: `lksc_`).","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The node pool ID (format: `lksnp_`).","schema":{"type":"string"}}], "description": "Marks the node pool for deletion. The call returns as soon as the tombstone is written; the platform then drains and releases the nodes asynchronously.\n", "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"summary":"The member role cannot perform this action","value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","title":"User Authorization Error","detail":"You are not authorized to perform this action.","status":"403","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"summary":"Unknown cluster, or a cluster owned by another team","value":{"errors":[{"code":"NOT_FOUND","title":"Cluster Not Found","detail":"Cluster 'lksc_pRMLydp0dQKr1' not found","status":"404","meta":{}}]}},"NodePoolNotFound":{"summary":"Unknown node pool, or a node pool of another cluster","value":{"errors":[{"code":"NOT_FOUND","title":"Not Found","detail":"Node pool 'lksnp_9dQKr1pRMLyd' not found","status":"404","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict — the node pool is paused","content":{"application/vnd.api+json":{"examples":{"ResourcePaused":{"value":{"errors":[{"code":"RESOURCE_PAUSED","title":"Resource Paused","detail":"this node pool is paused","status":"409","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.lks.delete_lks_node_pool(cluster_id=\"\", id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.DeleteLksNodePool(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.lks.deleteLksNodePool({\n clusterId: \"\",\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/lks/available_versions": {"get":{ "summary": "List available Kubernetes versions", "operationId": "list-lks-available-versions", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [], "description": "Lists the Kubernetes patches the platform offers, with their lifecycle flags. Use a version with `available_for_creation: true` when creating a cluster or a node pool, and one with `available_for_upgrade: true` when upgrading. Exactly one entry has `default: true`.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"TwoVersions":{"value":{"data":[{"id":"1.36.3","type":"lks_kubernetes_versions","attributes":{"version":"1.36.3","default":true,"available_for_creation":true,"available_for_upgrade":true}}, {"id":"1.37.2","type":"lks_kubernetes_versions","attributes":{"version":"1.37.2","default":false,"available_for_creation":false,"available_for_upgrade":true}}]}}},"schema":{"$ref":"#/components/schemas/lks_kubernetes_versions"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.list_lks_available_versions()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.ListLksAvailableVersions(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.LksKubernetesVersions != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.listLksAvailableVersions();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/lks/sites": {"get":{ "summary": "List sites available for LKS", "operationId": "list-lks-sites", "tags": ["LKS"], "security": [{"Bearer":[]}], "parameters": [], "description": "Lists the sites that can host an LKS cluster, one entry per site. Pass an entry's `id` (the site slug) as `site` when creating a cluster. `country` is null when the underlying site has no region assigned.\n", "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"examples":{"TwoSites":{"value":{"data":[{"id":"DAL2","type":"lks_sites","attributes":{"name":"Dallas","slug":"DAL2","facility":"DAL2","country":{"name":"United States","slug":"US"}}}, {"id":"SAO2","type":"lks_sites","attributes":{"name":"Sao Paulo","slug":"SAO2","facility":"SAO2","country":{"name":"Brazil","slug":"BR"}}}],"meta":{"total":2}}}},"schema":{"$ref":"#/components/schemas/lks_sites"}}}},"502":{"description":"Bad Gateway — NetBox is temporarily unavailable","content":{"application/vnd.api+json":{"examples":{"UpstreamServiceError":{"value":{"errors":[{"code":"UPSTREAM_SERVICE_ERROR","title":"Bad Gateway","detail":"NetBox is temporarily unavailable. Please try again.","status":"502","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.lks.list_lks_sites()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Lks.ListLksSites(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.LksSites != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.lks.listLksSites();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans": {"get":{ "summary": "List plans", "operationId": "get-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[name]","in":"query","required":false,"description":"The plan name to filter by","schema":{"type":"string"}}, {"name":"filter[slug]","in":"query","required":false,"description":"The plan slug to filter by","schema":{"type":"string"}}, {"name":"filter[location]","in":"query","required":false,"description":"The location of the site to filter by","schema":{"type":"string"}}, {"name":"filter[stock_level]","in":"query","schema":{"type":"string","enum":["unavailable","low","medium","high","unique"]},"required":false,"description":"The stock level at the site to filter by"}, {"name":"filter[in_stock]","in":"query","required":false,"description":"The stock available at the site to filter by","schema":{"type":"boolean"}}, {"name":"filter[gpu]","in":"query","required":false,"description":"Filter by the existence of an associated GPU","schema":{"type":"boolean"}}, {"name":"filter[ram]","in":"query","required":false,"description":"The ram size in Gigabytes to filter by, should be used with the following options:\n [eql] to filter for values equal to the provided value.\n [gte] to filter for values greater or equal to the provided value.\n [lte] to filter by values lower or equal to the provided value.","schema":{"type":"integer"}}, {"name":"filter[disk]","in":"query","required":false,"description":"The disk size in Gigabytes to filter by, should be used with the following options:\n [eql] to filter for values equal to the provided value.\n [gte] to filter for values greater or equal to the provided value.\n [lte] to filter by values lower or equal to the provided value.","schema":{"type":"integer"}}], "description": "Lists all plans. Availability by region is included in `attributes.regions.locations.available[*]` node for a given plan.\n", "x-mint": {"href":"/api-reference/get-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_g1mbDw8BOLv5B","type":"plans","attributes":{"slug":"m4-metal-small-42","name":"m4.metal.small-42","features":[],"specs":{"cpu":{"type":"E-2276G","clock":3.8,"cores":6,"count":1},"memory":{"total":32},"drives":[{"count":1,"size":"3.8TB","type":"SSD"}],"nics":[{"count":1,"type":"10 Gbps"}],"gpu":{"count":4,"type":"NVIDIA H100","vram_per_gpu":null,"interconnect":null}},"regions":[{"name":"Brazil","deploys_instantly":[],"locations":{"available":["SAO"],"in_stock":["SAO"]},"stock_level":"medium","pricing":{"USD":{"hour":10.0,"month":50.0,"year":100.0},"BRL":{"hour":53.0,"month":108.5,"year":205.0}}}]}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/plan_data"}}}}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.list()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.List(ctx, operations.GetPlansRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.list();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans/{plan_id}": {"get":{ "summary": "Retrieve plan", "operationId": "get-plan", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [{"name":"plan_id","in":"path","required":true,"examples":{"Success":{"value":"plan_RMLydp20DQKr1"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-plan"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"plan_RMLydp20DQKr1","type":"plans","attributes":{"slug":"g3-h100-medium-43","name":"g3.h100.medium-43","features":[],"specs":{"cpu":{"type":"E-2276G","clock":3.8,"cores":6,"count":1},"memory":{"total":32},"drives":[{"count":1,"size":"3.8TB","type":"SSD"}],"nics":[{"count":1,"type":"10 Gbps"}],"gpu":{"count":4,"type":"NVIDIA H100","vram_per_gpu":null,"interconnect":null}},"regions":[{"name":"Brazil","deploys_instantly":[],"locations":{"available":["SAO"],"in_stock":["SAO"]},"stock_level":"medium","pricing":{"USD":{"hour":10.0,"month":50.0,"year":100.0},"BRL":{"hour":53.0,"month":108.5,"year":205.0}}}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/plan"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.get(plan_id=\"plan_RMLydp20DQKr1\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.Get(ctx, \"plan_RMLydp20DQKr1\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Plan != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.get({\n planId: \"plan_RMLydp20DQKr1\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans/bandwidth": { "get": { "summary": "List bandwidth plans", "operationId": "get-bandwidth-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [{"name":"API-Version","in":"header","schema":{"type":"string","default":"2023-06-01"},"examples":{"Success":{"value":"2023-06-01"}}}, {"name":"filter[id]","in":"query","required":false,"description":"The plan ID to filter by","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "description": "Lists all bandwidth plans.", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-bandwidth-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"chile-54","type":"bandwidth_plan","attributes":{"region":"Chile 54","locations":["ASH","SAO"],"pricing":{"usd":{"monthly":5000,"yearly":6000},"brl":{"monthly":8000,"yearly":null}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/bandwidth_plans"}}}}}, "x-speakeasy-name-override": "getBandwidth", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.list_bandwidth(api_version=\"2023-06-01\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.GetBandwidth(ctx, operations.GetBandwidthPlansRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.BandwidthPlans != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.getBandwidth({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Update bandwidth packages", "operationId": "update-plans-bandwidth", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [], "description": "Allows to increase or decrease bandwidth packages. Only admins and owners can request.\n", "x-mint": {"href":"/api-reference/update-plans-bandwidth"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"bandwidth_packages","attributes":{"project":{"id":"proj_z2A3DVZ3DnawP","name":"Orn-Reilly","slug":"orn-reilly"},"packages":[{"region_slug":"united-states","unit_price":0.5,"currency":"USD","contracted":10,"total_price":5.0}, {"region_slug":"brazil","unit_price":4.6,"currency":"USD","contracted":0,"total_price":0.0}]}}}}},"schema":{"$ref":"#/components/schemas/bandwidth_packages"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to add bandwidth"},"quantity":{"type":"integer","description":"The total amount you want to have"},"region_slug":{"type":"string","description":"The region to add bandwidth"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"bandwidth_packages","attributes":{"project":"proj_z2A3DVZ3DnawP","region_slug":"brazil","quantity":5}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to add bandwidth"},"quantity":{"type":"integer","description":"The total amount you want to have"},"region_slug":{"type":"string","description":"The region to add bandwidth"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"bandwidth_packages","attributes":{"project":"proj_z2A3DVZ3DnawP","region_slug":"brazil","quantity":5}}}}}}},"required":true}, "x-speakeasy-name-override": "updateBandwidth", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.update_bandwidth(data={\n \"type\": latitudesh_python_sdk.UpdatePlansBandwidthPlansType.BANDWIDTH_PACKAGES,\n \"attributes\": {\n \"project\": \"proj_z2A3DVZ3DnawP\",\n \"quantity\": 5,\n \"region_slug\": \"brazil\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.UpdateBandwidth(ctx, operations.UpdatePlansBandwidthPlansRequestBody{\n Data: &operations.UpdatePlansBandwidthPlansData{\n Type: operations.UpdatePlansBandwidthPlansTypeBandwidthPackages.ToPointer(),\n Attributes: &operations.UpdatePlansBandwidthPlansAttributes{\n Project: latitudeshgosdk.Pointer(\"proj_z2A3DVZ3DnawP\"),\n Quantity: latitudeshgosdk.Pointer[int64](5),\n RegionSlug: latitudeshgosdk.Pointer(\"brazil\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.BandwidthPackages != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.updateBandwidth({\n data: {\n type: \"bandwidth_packages\",\n attributes: {\n project: \"proj_z2A3DVZ3DnawP\",\n quantity: 5,\n regionSlug: \"brazil\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/plans/storage": {"get":{ "summary": "List storage plans", "operationId": "get-storage-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[storage_type]","in":"query","required":false,"description":"Filter by storage type (filesystem, object, or volume)","schema":{"type":"string"}}, {"name":"filter[storage_class]","in":"query","required":false,"description":"Filter by storage class (standard or high_performance)","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_059EqY7kOQj8p","type":"storage_plans","attributes":{"name":"Filesystem","storage_type":"filesystem","storage_class":null,"regions":[{"name":"United States","locations":["DAL"],"pricing":{"USD":{"month":0.12},"BRL":{"month":0.68}}}]}}]}}},"schema":{"$ref":"#/components/schemas/storage_plans"}}}}}, "x-speakeasy-name-override": "listStorage", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.list_storage()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.ListStorage(ctx, nil, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.StoragePlans != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.listStorage();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans/lks": {"get":{ "summary": "List LKS plans", "operationId": "get-lks-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "description": "Lists bare metal plans available to LKS with per-site capacity for a node pool.\n`attributes.regions.locations.in_stock_count` gives the number of servers a node pool can get, keyed by site slug.\n", "x-mint": {"href":"/api-reference/get-lks-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_059EqY7kOQj8p","type":"lks_plans","attributes":{"name":"m4.metal.small-42","slug":"m4-metal-small-42","specs":{"cpu":{"type":"E-2276G","clock":3.8,"cores":6,"count":1},"memory":{"total":32},"drives":[{"count":1,"size":"3.8TB","type":"SSD"}],"nics":[{"count":1,"type":"10 Gbps"}],"gpu":{"count":4,"type":"NVIDIA H100","vram_per_gpu":null,"interconnect":null}},"regions":[{"name":"United States","locations":{"available":["DAL2"],"in_stock":["DAL2"],"in_stock_count":{"DAL2":5}},"stock_level":"medium","pricing":{"USD":{"hour":10.0,"month":50.0,"year":100.0},"BRL":{"hour":53.0,"month":108.5,"year":205.0}}}]}}]}}},"schema":{"$ref":"#/components/schemas/lks_plans"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.get_lks_plans()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.GetLksPlans(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.LksPlans != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.getLksPlans();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans/virtual_machines": {"get":{ "summary": "List VM plans", "operationId": "get-vm-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[gpu]","in":"query","required":false,"description":"Filter plans by GPU availability","schema":{"type":"boolean"}}], "x-mint": {"href":"/api-reference/get-vm-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_aNmodj4eDbE8W","type":"virtual_machine_plans","attributes":{"name":"vm.l40s.tiny","specs":{"memory":16,"gpu":"NVIDIA H100 Tensor Core GPU","vram_per_gpu":80,"vcpus":14,"vcpu":{"count":14,"clock":3.8,"type":"Intel Xeon"},"nics":[{"type":"1 Gbps","count":1}],"disk":{"type":"local NVMe","size":{"amount":150,"unit":"gib"}}},"regions":[{"name":"United States","locations":{"available":["DAL"],"in_stock":["DAL"]},"stock_level":"low","pricing":{"USD":{"hour":1.0,"month":720.0,"year":8640.0},"BRL":{"hour":1.0,"month":720.0,"year":8640.0}}}],"stock_level":"low","available_operating_systems":["ubuntu_24_04_x64_lts","debian_13","rocky_10","almalinux_10"]}}]}}},"schema":{"$ref":"#/components/schemas/virtual_machine_plans"}}}}}, "x-speakeasy-group": "plans.vm", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.list_vm_plans()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.VM.List(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachinePlans != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.vm.list();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/plans/managed_databases": {"get":{ "summary": "List managed database plans", "operationId": "get-managed-database-plans", "tags": ["Plans"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/get-managed-database-plans"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_a1b2c3d4","type":"managed_database_plans","attributes":{"name":"db.clickhouse.dev","slug":"db-clickhouse-dev","engine":"clickhouse","specs":{"cpu":"1","memory":"2Gi","storage":"5Gi","shards":1,"replicas":1,"iops":null},"regions":[{"region":"ASH","city":"Ashburn","country":"United States","site":{"id":"loc_ashburn","name":"Ashburn","slug":"ASH","facility":"DC1"},"pricing":{"USD":{"month":10.0,"year":100.0},"BRL":{"month":57.0,"year":570.0}}}]}}]}}},"schema":{"$ref":"#/components/schemas/managed_database_plans"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.plans.get_managed_database_plans()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Plans.GetManagedDatabasePlans(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.ManagedDatabasePlans != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.plans.getManagedDatabasePlans();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/public_networks": { "get": { "summary": "List networks", "operationId": "get-public-networks", "tags": ["Public Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"}}, {"name":"filter[site]","in":"query","required":false,"schema":{"type":"string"}}], "description": "**Preview.** Available at locations where the `public_network` feature is enabled.\n\nList the customer networks owned by the team", "x-mint": {"href":"/api-reference/get-public-networks"}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_networks"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.public_networks.get_public_networks()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PublicNetworks.GetPublicNetworks(ctx, nil, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.PublicNetworks != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.publicNetworks.getPublicNetworks();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create a network", "operationId": "create-public-network", "tags": ["Public Networks"], "security": [{"Bearer":[]}], "parameters": [], "description": "**Preview.** Available at locations where the `public_network` feature is enabled.\n\nProvision a customer network: an IPv4 block of the chosen size plus a paired IPv6 /64. The network is allocated synchronously and returned in the response; billing is settled in the background.", "x-mint": {"href":"/api-reference/create-public-network"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_network"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_public_network"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_public_network"}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.public_networks.create_public_network(data={\n \"type\": latitudesh_python_sdk.CreatePublicNetworkType.PUBLIC_NETWORKS,\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PublicNetworks.CreatePublicNetwork(ctx, components.CreatePublicNetwork{\n Data: components.CreatePublicNetworkData{\n Type: components.CreatePublicNetworkTypePublicNetworks,\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.PublicNetwork != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.publicNetworks.createPublicNetwork({\n data: {\n type: \"public_networks\",\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/public_networks/{id}": { "get": { "summary": "Retrieve a network", "operationId": "get-public-network", "tags": ["Public Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Retrieve a customer network", "x-mint": {"href":"/api-reference/get-public-network"}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_network"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.public_networks.get_public_network(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PublicNetworks.GetPublicNetwork(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.PublicNetwork != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.publicNetworks.getPublicNetwork({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete a network", "operationId": "destroy-public-network", "tags": ["Public Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "description": "**Preview.** Available at locations where the `public_network` feature is enabled.\n\nDelete a customer network. Only allowed while the network has no IPs in use.", "x-mint": {"href":"/api-reference/destroy-public-network"}, "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.public_networks.destroy_public_network(id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PublicNetworks.DestroyPublicNetwork(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.publicNetworks.destroyPublicNetwork({\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/public_networks/{id}/ips": {"patch":{ "summary": "Update a network IP", "operationId": "update-public-network-ip", "tags": ["Public Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "description": "**Preview.** Available at locations where the `public_network` feature is enabled.\n\nReserve an available address of a network for your own use, so servers are never attached to the network with it, or release an address you reserved.", "x-mint": {"href":"/api-reference/update-public-network-ip"}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_network"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_public_network_ip"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_public_network_ip"}}},"required":true}, "x-codeSamples": [ { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PublicNetworks.UpdatePublicNetworkIP(ctx, \"\", components.UpdatePublicNetworkIP{\n Data: components.UpdatePublicNetworkIPData{\n Type: components.UpdatePublicNetworkIPTypePublicNetworks,\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.PublicNetwork != nil {\n // handle response\n }\n}" } ] }}, "/projects": { "get": { "summary": "List projects", "operationId": "get-projects", "tags": ["Projects"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[name]","in":"query","required":false,"description":"The project name to filter by","schema":{"type":"string"}}, {"name":"filter[slug]","in":"query","required":false,"description":"The project slug to filter by","schema":{"type":"string"}}, {"name":"filter[description]","in":"query","required":false,"description":"The project description to filter by","schema":{"type":"string"}}, {"name":"filter[billing_type]","in":"query","required":false,"description":"The billing type to filter by","schema":{"type":"string"}}, {"name":"filter[environment]","in":"query","required":false,"description":"The environment to filter by","schema":{"type":"string"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return projects with `tag_1` AND `tag_2`","schema":{"type":"string"},"examples":{"Success":{"value":"tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y"}}}, {"name":"extra_fields[projects]","in":"query","required":false,"description":"The `last_renewal_date` and `next_renewal_date` are provided as extra attributes that show previous and future billing cycle dates. To request it, just set `extra_fields[projects]=last_renewal_date,next_renewal_date` in the query string.","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "description": "Returns a list of all projects for the current team\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-projects"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"proj_WeGoqAanqP7nz","type":"projects","attributes":{"tags":[{"id":"tag_GXeww714mRF2gZ05lnKgU8emo5RE","name":"tag1","description":"Sunt dolorem inventore maxime.","color":"#2d6767"}, {"id":"tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y","name":"tag2","description":"Et occaecati quod ex.","color":"#182f18"}],"name":"Durable Iron Gloves","slug":"durable-iron-gloves","description":"Heavy Duty Steel Computer","billing_type":"Hourly","cost":null,"billing_method":"Normal","bandwidth_alert":false,"environment":null,"provisioning_type":"on_demand","billing":{},"team":{"id":"team_w03a5zVl9XsXVybw2gz7SNr1el2","name":"176 Team","slug":"176-team","description":"176 Team","address":"3253 VonRueden Creek, Jcbury, NV 21576","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:39+00:00","updated_at":"2026-01-14T15:56:39+00:00"}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/projects"}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.projects.list(filter_tags=\"tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Projects.List(ctx, operations.GetProjectsRequest{\n FilterTags: latitudeshgosdk.Pointer(\"tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Projects != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.projects.list({\n filterTags: \"tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create project", "operationId": "create-project", "tags": ["Projects"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/create-project"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"proj_0L6WO156OPlXy","type":"projects","attributes":{"tags":[],"name":"Bailey and Sons","slug":"bailey-and-sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","bandwidth_alert":null,"environment":"Development","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","billing":{"subscription_id":"sub_wj7zk7mu35c2yq","type":"Normal","method":"Normal"},"team":{"id":"team_72lL07N6leClEozwoxe9UVap9Aw","name":"179 Team","slug":"179-team","description":"179 Team","address":"Suite 460 74321 Nana Locks, Crystalport, TN 35908","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:39+00:00","updated_at":"2026-01-14T15:56:39+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The project name. Must be unique."},"provisioning_type":{"type":"string","description":"The provisioning type of the project. Default: on_demand","enum":["reserved","on_demand"]},"description":{"type":"string","description":"The project description."},"environment":{"type":"string","enum":["Development","Staging","Production"]}},"required":["name","provisioning_type"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"projects","attributes":{"name":"Bailey and Sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","environment":"Development","provisioning_type":"on_demand"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The project name. Must be unique."},"provisioning_type":{"type":"string","description":"The provisioning type of the project. Default: on_demand","enum":["reserved","on_demand"]},"description":{"type":"string","description":"The project description."},"environment":{"type":"string","enum":["Development","Staging","Production"]}},"required":["name","provisioning_type"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"projects","attributes":{"name":"Bailey and Sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","environment":"Development","provisioning_type":"on_demand"}}}}}}},"required":true}, "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.projects.create(data={\n \"type\": latitudesh_python_sdk.CreateProjectProjectsType.PROJECTS,\n \"attributes\": {\n \"name\": \"Bailey and Sons\",\n \"provisioning_type\": latitudesh_python_sdk.CreateProjectProvisioningType.ON_DEMAND,\n \"description\": \"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.\",\n \"environment\": latitudesh_python_sdk.CreateProjectProjectsEnvironment.DEVELOPMENT,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Projects.Create(ctx, operations.CreateProjectProjectsRequestBody{\n Data: &operations.CreateProjectProjectsData{\n Type: operations.CreateProjectProjectsTypeProjects,\n Attributes: &operations.CreateProjectProjectsAttributes{\n Name: \"Bailey and Sons\",\n ProvisioningType: operations.CreateProjectProvisioningTypeOnDemand,\n Description: latitudeshgosdk.Pointer(\"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.\"),\n Environment: operations.CreateProjectEnvironmentDevelopment.ToPointer(),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.projects.create({\n data: {\n type: \"projects\",\n attributes: {\n name: \"Bailey and Sons\",\n provisioningType: \"on_demand\",\n description: \"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.\",\n environment: \"Development\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/projects/{project_id}": { "patch": { "summary": "Update project", "operationId": "update-project", "tags": ["Projects"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","description":"The project ID or Slug","required":true,"examples":{"Success":{"value":"proj_Gr47qleMDAg0m"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/update-project"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":[{"id":"tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","name":"Ted Sandyman","description":"Corporis nostrum praesentium deleniti.","color":"#020302"}, {"id":"tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj","name":"Erchirion","description":"Corporis quos sequi mollitia.","color":"#0d4e4e"}],"name":"Moore-Durgan","slug":"moore-durgan","description":"Sequi occaecati eaque exercitationem.","bandwidth_alert":true,"environment":"Production","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","billing":{"subscription_id":"sub_5sst6soyu2lzm0","type":"Normal","method":"Normal"},"team":{"id":"team_mygwarnav0hG97b9393biKZxall","name":"198 Team","slug":"198-team","description":"198 Team","address":"Apt. 401 9373 Gregg Islands, Cassinmouth, NC 33577-6685","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:40+00:00","updated_at":"2026-01-14T15:56:40+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"environment":{"type":"string","enum":["Development","Staging","Production"]},"bandwidth_alert":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"}}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":["tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"environment":{"type":"string","enum":["Development","Staging","Production"]},"bandwidth_alert":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"}}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":["tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj"]}}}}}}}}, "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.projects.update(project_id=\"proj_Gr47qleMDAg0m\", data={\n \"id\": \"proj_Gr47qleMDAg0m\",\n \"type\": latitudesh_python_sdk.UpdateProjectProjectsType.PROJECTS,\n \"attributes\": {\n \"tags\": [\n \"tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV\",\n \"tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj\",\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Projects.Update(ctx, \"proj_Gr47qleMDAg0m\", &operations.UpdateProjectProjectsRequestBody{\n Data: operations.UpdateProjectProjectsData{\n ID: \"proj_Gr47qleMDAg0m\",\n Type: operations.UpdateProjectProjectsTypeProjects,\n Attributes: &operations.UpdateProjectProjectsAttributes{\n Tags: []string{\n \"tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV\",\n \"tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj\",\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.projects.update({\n projectId: \"proj_Gr47qleMDAg0m\",\n requestBody: {\n data: {\n id: \"proj_Gr47qleMDAg0m\",\n type: \"projects\",\n attributes: {\n tags: [\n \"tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV\",\n \"tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj\",\n ],\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete project", "description": "Deletes a project and releases associated resources. Any Elastic IPs assigned to the project are automatically released and returned to the available pool.", "operationId": "delete-project", "tags": ["Projects"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","description":"The project ID or Slug","required":true,"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/delete-project"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.projects.delete(project_id=\"invalid\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Projects.Delete(ctx, \"invalid\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.projects.delete({\n projectId: \"\",\n });\n\n\n}\n\nrun();" } ] }, "get": { "summary": "Retrieve project", "operationId": "get-project", "tags": ["Projects"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"The project ID or Slug","schema":{"type":"string"}}], "description": "Returns a single project belonging to the current team\n", "x-mint": {"href":"/api-reference/get-project"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"},"meta":{"type":"object"}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.projects.get_project(project_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Projects.GetProject(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.projects.getProject({\n projectId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/projects/{project_id}/ssh_keys": { "get": { "summary": "List SSH Keys", "operationId": "get-project-ssh-keys", "tags": ["SSH Keys"], "deprecated": true, "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","description":"Project ID or Slug","required":true,"examples":{"Success":{"value":"proj_5AEmq7wMqBkWX"}},"schema":{"type":"string"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_5wKQ2Y9eoAi5plr4zlQ6tjl6rEw,tag_8GKKZ6B9MbtYl4K09gj4fXy9Nneg"}},"schema":{"type":"string"}}, {"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}}, {"name":"page[number]","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer"}}, {"name":"page[size]","in":"query","required":false,"description":"Number of items per page","schema":{"type":"integer"}}], "description": "List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/get-project-ssh-keys"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ssh_mw49QDB5qagKb","type":"ssh_keys","attributes":{"tags":[],"name":"hirthe-ankunding.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmIH/Esj4Cpz6utdAJN+syqnQ9xBHMGXKEKTecy2Qn2F7riuCDe7ICRDmpVnUhWJtvWGwrnGZgJkt3/q72lRGeMfBXF68cdvrzHMl+vDpQbmd6WAyCl4ufhGJyVrsw9N5eTMm9DOALWnd6SBldR6aubGUhhITI/ODh3N/l/0YPP2Nqif0lVrBCyxFBs894uNgbG2SR1hS6g7ZA8IfrUtQE3OPXMaVyIpfbdDVSVerOB9xZu2A8J+Dx/8hV7RPeed+R8D8wt9zLul03kaC/mrwXYrQDtEjqfgzLr/DtskKu02jyL3o2aXY0PmUtUX0QVDBOD9QImXOPLJGtagDfYER","fingerprint":"59:4a:b2:bf:13:8c:e4:18:dc:49:24:4b:37:f1:5d:2e","created_at":"2026-01-14T15:56:40+00:00","updated_at":"2026-01-14T15:56:40+00:00","project":{"id":"proj_RMLydp7XOQKr1","name":"Lightweight Silk Wallet","slug":"lightweight-silk-wallet","description":"Synergistic Copper Coat","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_Gz4meW9wlVc2Q36vbgXgu05XYgo","first_name":"Tracy","last_name":"Corkery","email":"bennett@johnson-beatty.example","created_at":"2025-11-29T00:00:00.000Z","updated_at":"2025-12-07T00:00:00.000Z","role":{"id":"role_Jp9VwYlWgbTMl0Po7RpYteZX4pj","name":"owner","created_at":"2025-10-11T00:00:00.000Z","updated_at":"2026-08-03T00:00:00.000Z"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ssh_keys"}}}}}, "x-speakeasy-name-override": "list" }, "post": { "summary": "Create SSH Key", "operationId": "post-project-ssh-key", "tags": ["SSH Keys"], "deprecated": true, "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Created":{"value":"proj_059EqYE2qQj8p"}},"schema":{"type":"string"}}], "description": "Allow you create SSH Keys in a project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/post-project-ssh-key"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ssh_w5AEmq7XDBkWX","type":"ssh_keys","attributes":{"tags":[],"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","fingerprint":"0a:00:34:53:51:0e:a5:4e:06:2c:d7:16:88:96:82:f3","created_at":"2026-01-14T15:56:41+00:00","updated_at":"2026-01-14T15:56:41+00:00","project":{"id":"proj_059EqYE2qQj8p","name":"Incredible Silk Pants","slug":"incredible-silk-pants","description":"Lightweight Iron Bench","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_geJbN1G962iVzBrra7R9TkaXw28","first_name":"Fletcher","last_name":"Thompson","email":"shawn@klein.example","created_at":"2025-12-31T00:00:00.000Z","updated_at":"2025-05-16T00:00:00.000Z","role":{"id":"role_QJ5olj6Jk7uWz0ybo0XkcXYZegPo","name":"owner","created_at":"2025-12-23T00:00:00.000Z","updated_at":"2026-03-20T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"}},"required":["name","public_key"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx"}}}}}}},"required":true}, "x-speakeasy-group": "projects.sshKeys" } }, "/projects/{project_id}/ssh_keys/{ssh_key_id}": { "get": { "summary": "Retrieve Project SSH Key", "operationId": "get-project-ssh-key", "tags": ["SSH Keys"], "deprecated": true, "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_kjQwdE0XOYNVP"}},"schema":{"type":"string"}}, {"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_zGr47qlMDAg0m"}},"schema":{"type":"string"}}], "description": "List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/get-project-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_zGr47qlMDAg0m","type":"ssh_keys","attributes":{"tags":[],"name":"breitenberg-blick.test","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCUO+zsQdGJJGFIJT6R9PRgnfpA1NiIMBmfZK13pmAsC/aEr4TvJT+q60U2DZVeQi2AxdPwk3JrGpOgDUOKA9M6FlCXjCMWS5VINwbt6+P7ZCSThqdPPETrcDNd2wgNs+Q5kxRHqlknDu4KszIf14cXNnWCYjCly2+wV/Y17XuHGhHnzRSCf30mNtqQngKqkOHOB+G2P8RaZ6g70wOOoSlDRo3mxQ0vA62U25FeTbFdhkIrFDYsPX+4JL1bXYkRD3KIbfvH99RHtd/wtcqwpUuHoKdyiUNyJFBvtj912zVh+0n8zfe58Rmz0J9wGCTir3Qh/FwAVKB2kLpRHde7kZlv","fingerprint":"47:0f:68:b5:e7:4c:5c:32:b6:97:3d:e9:17:df:6d:93","created_at":"2026-01-14T15:56:41+00:00","updated_at":"2026-01-14T15:56:41+00:00","project":{"id":"proj_kjQwdE0XOYNVP","name":"Intelligent Rubber Bench","slug":"intelligent-rubber-bench","description":"Rustic Linen Clock","provisioning_type":"on_demand","billing_type":"Hourly","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_0VVWJmQwmzUyMYL0Zv37FwW0aWVP","first_name":"Margarete","last_name":"Huels","email":"charlie@okeefe.example","created_at":"2025-09-01T00:00:00.000Z","updated_at":"2025-12-20T00:00:00.000Z","role":{"id":"role_jZxLKXzGNXt0PYgaW4QbfKMPEgM","name":"owner","created_at":"2025-03-24T00:00:00.000Z","updated_at":"2026-06-05T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "get" }, "patch": { "summary": "Update Project SSH Key", "operationId": "put-project-ssh-key", "deprecated": true, "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_v9BVDaR3ORm1W"}},"schema":{"type":"string"}}, {"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_zlkg1DegdvZE5"}},"schema":{"type":"string"}}], "description": "Allow you update SSH Key in a project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/put-project-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":[{"id":"tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","name":"Dáin Ironfoot","description":"Non quos voluptatem voluptatem.","color":"#254646"}, {"id":"tag_57nzyG0Bn3c5wooyYyeLH1w9kmN","name":"Almiel","description":"Repellendus quae velit rerum.","color":"#2121e8"}],"name":"ruecker.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbDuCsEBno4lL6+lLXiBuziWK+go4/TQ2xXWNkyO9PEQSwp8t7fu5USARgUl5HxRK2K+enzTOGVYG+IGWTh8GsNQ68D+6VQZDafStcAoRX7/drrIbkMho3Fv5o5mfjIeMB9A6yT7FxsWFx4VkV8wlCLn3HSq/Q2fvuKh3j10B/ZKCG14K2Que9xrGhCbAGVzxrCozWc4yCdpXSL0CFUOOQDpOa44VzcMVkXqxyaJYDjlxMklfGQ/81YjtM5hne0kFPajeVmHZGQ7QsZZEww/P7c0pL44n9b/sYmzHOuZYFCM3MuU2pfonEJBOVfFVeXh5pPvUmis8mxxCAQhtzJE4D","fingerprint":"17:c4:55:c4:1b:a3:1f:fd:89:70:2d:c3:55:7a:4c:6e","created_at":"2026-01-14T15:56:42+00:00","updated_at":"2026-01-14T15:56:42+00:00","project":{"id":"proj_v9BVDaR3ORm1W","name":"Sleek Linen Lamp","slug":"sleek-linen-lamp","description":"Ergonomic Rubber Gloves","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_Rzg2JEoZNASA1bznzWJBI6GXJ0v","first_name":"Meghann","last_name":"Windler","email":"jonah_bartoletti@mueller.example","created_at":"2026-01-10T00:00:00.000Z","updated_at":"2025-03-26T00:00:00.000Z","role":{"id":"role_6noZ5alPanUpr0yoVygMCL6mK88","name":"owner","created_at":"2025-07-29T00:00:00.000Z","updated_at":"2026-05-30T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":["tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","tag_57nzyG0Bn3c5wooyYyeLH1w9kmN"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":["tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","tag_57nzyG0Bn3c5wooyYyeLH1w9kmN"]}}}}}}},"required":true}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "modifyProjectKey" }, "delete": { "summary": "Delete Project SSH Key", "operationId": "delete-project-ssh-key", "tags": ["SSH Keys"], "deprecated": true, "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_LA73qk4wDaJ2o"}},"schema":{"type":"string"}}, {"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}], "description": "Allow you remove SSH Keys in a project. Remove a SSH Key from the project won't revoke the SSH Keys access for previously deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/delete-project-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "removeFromProject" } }, "/storage/usage": {"get":{ "summary": "List storage usage", "operationId": "get-storage-usage", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","description":"Project ID or Slug","required":true,"examples":{"Success":{"value":"proj_5AEmq7wMqBkWX"}},"schema":{"type":"string"}}, {"name":"filter[storage_id]","in":"query","required":false,"description":"Restrict the result to a single storage. Accepts the storage/bucket ID","examples":{"Success":{"value":"bkt_6VE1Wd37dXnZJ"}},"schema":{"type":"string"}}, {"name":"filter[start_date]","in":"query","required":false,"description":"Defaults to yesterday","schema":{"type":"string","format":"date"}}, {"name":"filter[end_date]","in":"query","required":false,"description":"Defaults to today; clamped to today when a future date is given","schema":{"type":"string","format":"date"}}], "description": "Returns daily object storage usage for a project. Each row reports the canonical usage in bytes for a single storage on a given day, plus the provider-reported raw value.\n", "x-mint": {"href":"/api-reference/get-storage-usage"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"42_2026-01-02","type":"storage_usage","attributes":{"date":"2026-01-02","storage_type":"object","tier":"standard","region":"us-east-1","bytes":10737418240,"raw_value":10.0,"raw_unit":"GiB","ingested_at":"2026-01-03T04:15:00+00:00"}}]}}},"schema":{"$ref":"#/components/schemas/storage_usage"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_usage(filter_project=\"proj_5AEmq7wMqBkWX\", filter_storage_id=\"bkt_6VE1Wd37dXnZJ\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageUsage(ctx, \"proj_5AEmq7wMqBkWX\", latitudeshgosdk.Pointer(\"bkt_6VE1Wd37dXnZJ\"), nil, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.StorageUsage != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageUsage({\n filterProject: \"proj_5AEmq7wMqBkWX\",\n filterStorageId: \"bkt_6VE1Wd37dXnZJ\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/projects/{project_id}/user_data": {"get":{"summary":"List Project user data","operationId":"get-project-users-data","tags":["User data"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_LYV8DZYQq5QoE"}},"schema":{"type":"string"}}, {"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}],"description":"List all Users Data in the project. These scripts can be used to configure servers with user data.\n","x-mint":{"href":"/api-reference/get-project-users-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ud_AW6Q2D9lqKLpr","type":"user_data","attributes":{"description":"Three eggs with cilantro, tomatoes, onions, avocados and melted Emmental cheese. With a side of roasted potatoes, and your choice of toast or croissant.","content":"QnJlYWRlZCBmcmllZCBjaGlja2VuIHdpdGggd2FmZmxlcywgYW5kIGEgc2lkZSBvZiBtYXBsZSBzeXJ1cC4=","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"Breaded fried chicken with waffles, and a side of maple syrup.","project":{"id":"proj_LYV8DZYQq5QoE","name":"Sleek Cotton Bottle","slug":"sleek-cotton-bottle","description":"Intelligent Aluminum Watch","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data"}}}}}},"post":{ "summary": "Create Project user data", "operationId": "post-project-user-data", "deprecated": true, "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Created":{"value":"proj_8NkvdyMKdeLpx"}},"schema":{"type":"string"}}], "description": "Allows you to create User Data in a project, which can be used to perform custom setup on your servers after deploy and reinstall.\n", "x-mint": {"href":"/api-reference/post-project-user-data"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ud_pRMLydp0dQKr1","type":"user_data","attributes":{"description":"User Data description","content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"#cloud-config\nruncmd:\n - [ touch, /home/ubuntu/test ]","project":{"id":"proj_8NkvdyMKdeLpx","name":"Intelligent Bronze Car","slug":"intelligent-bronze-car","description":"Small Iron Shoes","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description"}}}}}}},"required":true}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "create" }}, "/projects/{project_id}/user_data/{user_data_id}": { "get": {"summary":"Retrieve Project user data","operationId":"get-project-user-data","deprecated":true,"tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_e8pKq0GYdWAob"}},"schema":{"type":"string"}}, {"name":"user_data_id","in":"path","required":true,"examples":{"Success":{"value":"ud_VLMmAD8EOwop2"}},"schema":{"type":"string"}}, {"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}],"description":"Get User Data in the project. These scripts can be used to configure servers with user data.\n","x-mint":{"href":"/api-reference/get-project-user-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ud_VLMmAD8EOwop2","type":"user_data","attributes":{"description":"Three egg omelet with Roquefort cheese, chives, and ham. With a side of roasted potatoes, and your choice of toast or croissant.","content":"Q3JlYW15IG1hc2NhcnBvbmUgY2hlZXNlIGFuZCBjdXN0YXJkIGxheWVyZWQgYmV0d2VlbiBlc3ByZXNzbyBhbmQgcnVtIHNvYWtlZCBob3VzZS1tYWRlIGxhZHlmaW5nZXJzLCB0b3BwZWQgd2l0aCBWYWxyaG9uYSBjb2NvYSBwb3dkZXIu","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"Creamy mascarpone cheese and custard layered between espresso and rum soaked house-made ladyfingers, topped with Valrhona cocoa powder.","project":{"id":"proj_e8pKq0GYdWAob","name":"Enormous Silk Car","slug":"enormous-silk-car","description":"Aerodynamic Granite Bag","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}}, "patch": { "summary": "Update Project user data", "operationId": "put-project-user-data", "tags": ["User data"], "deprecated": true, "security": [{"Bearer":[]}], "parameters": [{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","schema":{"type":"string"}}, {"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Allow you update User Data in a project.\n", "x-mint": {"href":"/api-reference/put-project-user-data"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}}}}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "updateForProject" }, "delete": {"summary":"Delete Project user data","operationId":"delete-project-user-data","tags":["User data"],"security":[{"Bearer":[]}],"deprecated":true,"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","schema":{"type":"string"}}, {"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allow you remove User Data in a project.\n","x-mint":{"href":"/api-reference/delete-project-user-data"},"responses":{"204":{"description":"No Content"}}} }, "/regions": {"get":{ "summary": "List regions", "operationId": "get-regions", "tags": ["Regions"], "security": [{"Bearer":[]}], "description": "Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).\n\n", "parameters": [{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}, {"name":"include_custom","in":"query","required":false,"description":"When set to `true`, the response also includes custom regions (such as storage-only regions) alongside the default core regions. When omitted or `false`, only core regions are returned.","schema":{"type":"boolean"}}, {"name":"filter[features]","in":"query","required":false,"description":"Return only locations that support the given capability, e.g. `filter[features]=public_network`.","schema":{"type":"string"}}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-regions"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"loc_k0RyqvNvqW36X","type":"regions","attributes":{"name":"Luettgen Group","slug":"luettgen-group","facility":"Luettgen Group","country":{"name":"Grant and Sons","slug":"grant-and-sons"},"type":"core","features":["public_network"]}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/regions"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.regions.list(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Regions.Get(ctx, operations.GetRegionsRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.Regions != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.regions.get({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/regions/{region_id}": {"get":{ "summary": "Retrieve region", "operationId": "get-region", "tags": ["Regions"], "security": [{"Bearer":[]}], "parameters": [{"name":"region_id","in":"path","description":"The region region_ID","required":true,"examples":{"Success":{"value":"reg_GMy1DbYLqN50m"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-region"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"loc_WVQJDMQlDRbyE","type":"regions","attributes":{"name":"Durgan-Wunsch","slug":"durgan-wunsch","facility":"Durgan-Wunsch","country":{"name":"Kreiger-Muller","slug":"kreiger-muller"},"type":"core","features":["public_network"]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/region"}}}}}, "x-speakeasy-name-override": "fetch", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.regions.get(region_id=\"reg_GMy1DbYLqN50m\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Regions.Fetch(ctx, \"reg_GMy1DbYLqN50m\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Region != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.regions.fetch({\n regionId: \"reg_GMy1DbYLqN50m\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/roles": {"get":{ "summary": "List roles", "operationId": "get-roles", "tags": ["Roles"], "security": [{"Bearer":[]}], "description": "Returns a list of all roles that can be assigned to users\n", "parameters": [{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-roles"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"role_0L6WO1vEdPlXy","type":"roles","attributes":{"name":"collaborator"}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/role_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.roles.list(page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Roles.List(ctx, latitudeshgosdk.Pointer[int64](20), latitudeshgosdk.Pointer[int64](1), nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.roles.list({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }}, "/roles/{role_id}": {"get":{ "summary": "Retrieve role", "operationId": "get-role-id", "tags": ["Roles"], "security": [{"Bearer":[]}], "parameters": [{"name":"role_id","in":"path","required":true,"examples":{"Success":{"value":"role_LMmAD8vldwop2"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-role-id"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"role_LMmAD8vldwop2","type":"roles","attributes":{"name":"billing"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/role"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.roles.get(role_id=\"role_LMmAD8vldwop2\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Roles.Get(ctx, \"role_LMmAD8vldwop2\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Role != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.roles.get({\n roleId: \"role_LMmAD8vldwop2\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers": { "get": { "summary": "List servers", "operationId": "get-servers", "tags": ["Servers"], "parameters": [{"name":"filter[id]","in":"query","required":false,"description":"The server ID to filter by (exact match)","schema":{"type":"string"}}, {"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}}, {"name":"filter[region]","in":"query","required":false,"description":"The region Slug to filter by","schema":{"type":"string"}}, {"name":"filter[hostname]","in":"query","required":false,"description":"The hostname of server to filter by","schema":{"type":"string"}}, {"name":"filter[hostname][eql]","in":"query","required":false,"description":"The exact (case-sensitive) hostname of server to filter by","schema":{"type":"string"}}, {"name":"filter[hostname][prefix]","in":"query","required":false,"description":"Filter servers whose hostname starts with the provided value","schema":{"type":"string"}}, {"name":"filter[hostname][suffix]","in":"query","required":false,"description":"Filter servers whose hostname ends with the provided value","schema":{"type":"string"}}, {"name":"filter[hostname][match]","in":"query","required":false,"description":"Filter servers whose hostname contains the provided value","schema":{"type":"string"}}, {"name":"filter[created_at_gte]","in":"query","required":false,"description":"The created at greater than equal date to filter by. `created_at` is the date the server was added to the project","schema":{"type":"string"}}, {"name":"filter[created_at_lte]","in":"query","required":false,"description":"The created at less than equal date to filter by. `created_at` is the date the server was added to the project","schema":{"type":"string"}}, {"name":"filter[created_at]","in":"query","required":false,"description":"The created at date range to filter by, as two comma-separated ISO 8601 datetimes (both bounds required), e.g. `filter[created_at]=2026-01-01T00:00:00Z,2026-01-31T23:59:59Z`. `created_at` is the date the server was added to the project","schema":{"type":"string"}}, {"name":"filter[label]","in":"query","required":false,"description":"The label of server to filter by","schema":{"type":"string"}}, {"name":"filter[label][eql]","in":"query","required":false,"description":"The exact (case-sensitive) label of server to filter by","schema":{"type":"string"}}, {"name":"filter[label][prefix]","in":"query","required":false,"description":"Filter servers whose label starts with the provided value","schema":{"type":"string"}}, {"name":"filter[label][suffix]","in":"query","required":false,"description":"Filter servers whose label ends with the provided value","schema":{"type":"string"}}, {"name":"filter[label][match]","in":"query","required":false,"description":"Filter servers whose label contains the provided value","schema":{"type":"string"}}, {"name":"filter[status]","in":"query","required":false,"description":"The status of server to filter by","schema":{"type":"string"}}, {"name":"filter[plan]","in":"query","required":false,"description":"The platform/plan name of the server to filter by","schema":{"type":"string"}}, {"name":"filter[plan][eql]","in":"query","required":false,"description":"The exact platform/plan name of the server to filter by (case-insensitive)","schema":{"type":"string"}}, {"name":"filter[plan][prefix]","in":"query","required":false,"description":"Filter servers whose platform/plan name starts with the provided value","schema":{"type":"string"}}, {"name":"filter[plan][suffix]","in":"query","required":false,"description":"Filter servers whose platform/plan name ends with the provided value","schema":{"type":"string"}}, {"name":"filter[plan][match]","in":"query","required":false,"description":"Filter servers whose platform/plan name contains the provided value","schema":{"type":"string"}}, {"name":"filter[gpu]","in":"query","required":false,"description":"Filter by the existence of an associated GPU","schema":{"type":"boolean"}}, {"name":"filter[ram][eql]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) equals the provided value.","schema":{"type":"integer"}}, {"name":"filter[ram][gte]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) greater than or equal the provided value.","schema":{"type":"integer"}}, {"name":"filter[ram][lte]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) less than or equal the provided value.","schema":{"type":"integer"}}, {"name":"filter[disk][eql]","in":"query","required":false,"description":"Filter servers with disk size (in GB) equal to the provided value.","schema":{"type":"integer"}}, {"name":"filter[disk][gte]","in":"query","required":false,"description":"Filter servers with disk size (in GB) greater than or equal to the provided value.","schema":{"type":"integer"}}, {"name":"filter[disk][lte]","in":"query","required":false,"description":"Filter servers with disk size (in GB) less than or equal to the provided value.","schema":{"type":"integer"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tags IDs to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return servers with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79,tag_yARk1KLJAvslWY7k5wNBCaKEV7e"}},"schema":{"type":"string"}}, {"name":"filter[bgp_eligible]","in":"query","required":false,"description":"Filter by whether the server can announce a BGP Elastic IP.","schema":{"type":"boolean"}}, {"name":"extra_fields[servers]","in":"query","required":false,"description":"The `credentials` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[servers]=credentials` in the query string.","schema":{"type":"string"}}, {"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported: hostname, created_at, location, operating_system.","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "security": [{"Bearer":[]}], "description": "Returns a list of all servers belonging to the team.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-servers"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"sv_WeGoqAanqP7nz","type":"servers","attributes":{"tags":[{"id":"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79","name":"tag1","description":"Autem tempora est aperiam.","color":"#160303"}, {"id":"tag_yARk1KLJAvslWY7k5wNBCaKEV7e","name":"tag2","description":"Vitae cupiditate doloribus optio.","color":"#ee6dee"}],"hostname":"Hostname","label":"832845NODEKG","price":599.0,"role":"Bare Metal","primary_ipv4":"19.98.98.65","primary_ipv6":"49e5:fef3:7891:16df:ccf6:93bb:a930:4dc0","status":"on","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"São Paulo 74","country":"Singapore 66","site":{"id":"loc_695BdKjrOevVo","name":"São Paulo 74","slug":"SAO","facility":"São Paulo 74","rack_id":"rack_VLMmAD8EOwop2"}},"team":{"id":"team_Ygapr2KkrMur4QneZ00yUEGl4W2","name":"292 Team","slug":"292-team","description":"292 Team","address":"Apt. 180 27016 Chi Prairie, Kenyaport, CA 12866","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_Z8rodmnGq1jLB","name":"Incredible Linen Car","slug":"incredible-linen-car","description":"Lightweight Iron Chair","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":1,"ip_addresses":8,"prefixes":0,"servers":3,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_pbV0Dg1Rd4AWz","name":"g3.h100.small-51","slug":"plan-slug","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"}, {"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"}, {"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}],"operating_system":{"name":"Ubuntu (18.04 x64 LTS)","slug":"ubuntu_18_04_x64_lts","version":"18.04 x64 LTS","features":{"raid":true,"ssh_keys":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"bionic"}},"specs":{"cpu":"Xeon E-2186G CPU @ 3.80GHz (6 cores)","disk":"500 GB SSD","ram":"32 GB","nic":"","gpu":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/servers"}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.list(filter_project=\"proj_g1mbDwrZqLv5B\", filter_region=\"SAO\", filter_ram_eql=32, filter_ram_gte=40, filter_ram_lte=40, filter_tags=\"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79,tag_yARk1KLJAvslWY7k5wNBCaKEV7e\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.List(ctx, operations.GetServersRequest{\n FilterProject: latitudeshgosdk.Pointer(\"proj_g1mbDwrZqLv5B\"),\n FilterRegion: latitudeshgosdk.Pointer(\"SAO\"),\n FilterRAMEql: latitudeshgosdk.Pointer[int64](32),\n FilterRAMGte: latitudeshgosdk.Pointer[int64](40),\n FilterRAMLte: latitudeshgosdk.Pointer[int64](40),\n FilterTags: latitudeshgosdk.Pointer(\"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79,tag_yARk1KLJAvslWY7k5wNBCaKEV7e\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Servers != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.list({\n filterTags: \"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79,tag_yARk1KLJAvslWY7k5wNBCaKEV7e\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create server", "operationId": "create-server", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/create-server"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"type":"servers","id":"sv_W6Q2D9xGqKLpr","attributes":{"hostname":"BRC1","label":"846419NODEME","role":"Bare Metal","status":"off","primary_ipv4":"171.189.35.253","primary_ipv6":"7d69:748d:26cc:796a:1248:b6be:a658:96a4","specs":{"cpu":"Xeon E-2186G CPU @ 3.80GHz (6 cores)","disk":"500 GB SSD","ram":"32 GB","nic":""},"plan":{"id":"plan_8NkvdyMKdeLpx","name":"c2.small.x86","slug":"c2-small-x86","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"}, {"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"}, {"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to deploy the server"},"plan":{"type":"string","description":"The plan slug to choose server from, defining the specs the server will have","x-speakeasy-unknown-values":"allow","enum":["c3-large-x86","c3-small-x86","c4-metal-large","f4-metal-large","f4-metal-medium","f4-metal-small","g3-h100-small","g4-b300-large","g4-rtx6kpro-large","m3-large-x86","m4-metal-large","m4-metal-medium","m4-metal-small","m4-metal-xlarge","rs4-metal-large","rs4-metal-xlarge","s3-large-x86"]},"site":{"type":"string","description":"The site slug to deploy the server","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"operating_system":{"type":"string","description":"The operating system slug for the new server","x-speakeasy-unknown-values":"allow","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"]},"hostname":{"type":"string","description":"The server hostname"},"ssh_keys":{"type":"array","items":{"type":"string"},"description":"SSH Keys to set on the server","nullable":true},"user_data":{"type":"string","description":"User data ID to set on the server. This is a custom script that will run after the deploy","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when iPXE is selected as operating system.","nullable":true},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to true to deploy the server attached to the given public_network_id. Requires public_network_id; only public-network-capable stock is selected."},"public_network_id":{"type":"string","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. ID of a customer public network to attach the server onto. Requires public_network: true. The public network must belong to the same project and location as the deployment and have a free address."},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"bgp_ready":{"type":"boolean","nullable":true,"description":"Deploy the server onto hardware that can announce an Elastic IP over BGP."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","nullable":true}},"required":["project","plan","site","operating_system","hostname"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"servers","attributes":{"project":"proj_lxWpD699qm6rk","plan":"c2-small-x86","site":"ASH","operating_system":"ubuntu_22_04_x64_lts","hostname":"BRC1"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to deploy the server"},"plan":{"type":"string","description":"The plan slug to choose server from, defining the specs the server will have","x-speakeasy-unknown-values":"allow","enum":["c3-large-x86","c3-small-x86","c4-metal-large","f4-metal-large","f4-metal-medium","f4-metal-small","g3-h100-small","g4-b300-large","g4-rtx6kpro-large","m3-large-x86","m4-metal-large","m4-metal-medium","m4-metal-small","m4-metal-xlarge","rs4-metal-large","rs4-metal-xlarge","s3-large-x86"]},"site":{"type":"string","description":"The site slug to deploy the server","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"operating_system":{"type":"string","description":"The operating system slug for the new server","x-speakeasy-unknown-values":"allow","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"]},"hostname":{"type":"string","description":"The server hostname"},"ssh_keys":{"type":"array","items":{"type":"string"},"description":"SSH Keys to set on the server","nullable":true},"user_data":{"type":"string","description":"User data ID to set on the server. This is a custom script that will run after the deploy","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when iPXE is selected as operating system.","nullable":true},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to true to deploy the server attached to the given public_network_id. Requires public_network_id; only public-network-capable stock is selected."},"public_network_id":{"type":"string","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. ID of a customer public network to attach the server onto. Requires public_network: true. The public network must belong to the same project and location as the deployment and have a free address."},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"bgp_ready":{"type":"boolean","nullable":true,"description":"Deploy the server onto hardware that can announce an Elastic IP over BGP."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","nullable":true}}}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"servers","attributes":{"project":"proj_lxWpD699qm6rk","plan":"c2-small-x86","site":"ASH","operating_system":"ubuntu_22_04_x64_lts","hostname":"BRC1"}}}}}}},"required":true}, "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.create(data={\n \"type\": latitudesh_python_sdk.CreateServerServersType.SERVERS,\n \"attributes\": {\n \"project\": \"proj_lxWpD699qm6rk\",\n \"plan\": latitudesh_python_sdk.CreateServerServersPlan.M4_METAL_XLARGE,\n \"site\": latitudesh_python_sdk.CreateServerServersSite.ASH,\n \"operating_system\": latitudesh_python_sdk.CreateServerServersOperatingSystem.ALMALINUX_10,\n \"hostname\": \"BRC1\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Create(ctx, operations.CreateServerServersRequestBody{\n Data: &operations.CreateServerServersData{\n Type: operations.CreateServerServersTypeServers,\n Attributes: &operations.CreateServerServersAttributes{\n Project: \"proj_lxWpD699qm6rk\",\n Plan: operations.CreateServerPlanM4MetalXlarge,\n Site: operations.CreateServerSiteAsh,\n OperatingSystem: operations.CreateServerOperatingSystemAlmalinux10,\n Hostname: \"BRC1\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Server != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.create({\n data: {\n type: \"servers\",\n attributes: {\n project: \"proj_lxWpD699qm6rk\",\n plan: \"m4-metal-xlarge\",\n site: \"ASH\",\n operatingSystem: \"almalinux-10\",\n hostname: \"BRC1\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/servers/{server_id}": { "get": { "summary": "Retrieve server", "operationId": "get-server", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_VE1Wd3aXDXnZJ"}},"schema":{"type":"string"}}, {"name":"extra_fields[servers]","in":"query","required":false,"description":"The `credentials` are provided as extra attributes that is lazy loaded. To request it, just set `extra_fields[servers]=credentials` in the query string.","schema":{"type":"string"}}], "description": "Returns a server that belongs to the team.\n", "x-mint": {"href":"/api-reference/get-server"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_VE1Wd3aXDXnZJ","type":"servers","attributes":{"tags":[],"hostname":"Hostname","label":"327106NODEQI","price":599.0,"role":"Bare Metal","primary_ipv4":"9.120.132.45","primary_ipv6":"889e:8540:973b:5c04:abce:2551:47ae:a67e","status":"on","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"São Paulo 81","country":"Mexico 73","site":{"id":"loc_GMy1DbNgDN50m","name":"São Paulo 81","slug":"SAO","facility":"São Paulo 81","rack_id":"rack_6VE1Wd37dXnZJ"}},"team":{"id":"team_M2WyX3zpQMf5Wvaw6zkotLZx0Ne","name":"308 Team","slug":"308-team","description":"308 Team","address":"Suite 667 299 Enoch Lights, Lake Lilli, MT 24573-1532","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_LMmAD8E4Owop2","name":"Awesome Granite Chair","slug":"awesome-granite-chair","description":"Mediocre Paper Wallet","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_yQrJdN9JO30gv","name":"c2.large.arm","slug":"c2-large-arm","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"}, {"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"}, {"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}],"operating_system":{"name":"Ubuntu (18.04 x64 LTS)","slug":"ubuntu_18_04_x64_lts","version":"18.04 x64 LTS","features":{"raid":true,"ssh_keys":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"bionic"}},"specs":{"cpu":"","disk":"","ram":"","nic":"","gpu":null}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.get(server_id=\"sv_VE1Wd3aXDXnZJ\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Get(ctx, \"sv_VE1Wd3aXDXnZJ\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.Server != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.get({\n serverId: \"sv_VE1Wd3aXDXnZJ\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update server", "operationId": "update-server", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_yQrJdNAGO30gv"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/update-server"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"tags":[],"hostname":"Lightweight Wooden Knife","label":"136877NODEKM","price":599.0,"role":"Bare Metal","primary_ipv4":"214.249.69.62","primary_ipv6":"b0c8:139:6f83:7f0c:6e2:33a3:78e4:e03f","status":"unknown","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"Frankfurt 115","country":"Germany 107","site":{"id":"loc_aNmodjGyqbE8W","name":"Frankfurt 115","slug":"FRA96","facility":"Frankfurt 115","rack_id":"rack_byQrJdNJd30gv"}},"team":{"id":"team_YQZmYB34Nxso86ZgyKj2UEPEnyA","name":"348 Team","slug":"348-team","description":"348 Team","address":"51588 Goodwin Mission, Port Oswaldo, KS 14871-0638","currency":{"id":"cur_GnzRD5xAqM5yw","code":"agd","name":"daznioxpdspfbdbvvikg","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_yQrJdNMGO30gv","name":"Awesome Wool Computer","slug":"awesome-wool-computer","description":"Practical Rubber Shirt","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_3YjJOLLyOvZ87","name":"c2.large.arm","slug":"c2-large-arm","billing":"hourly"},"interfaces":[],"operating_system":{},"specs":{"cpu":"","disk":"","ram":"","nic":"","gpu":null}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string"},"billing":{"type":"string","nullable":true,"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","enum":["hourly","monthly","yearly"]},"tags":{"type":"array","items":{"type":"string"},"nullable":true,"description":"List of Tag IDs"},"project":{"type":"string","description":"Project ID or slug to move the server to"}}}},"example":{"data":{"id":"sv_81EVOtR1N4J2Z","type":"servers","attributes":{"hostname":"new-hostname","tags":[]}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"project":"proj_yQrJdNMGO30gv"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string"},"billing":{"type":"string","nullable":true,"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","enum":["hourly","monthly","yearly"]},"tags":{"type":"array","items":{"type":"string"},"nullable":true,"description":"List of Tag IDs"},"project":{"type":"string","description":"Project ID or slug to move the server to"}}}},"example":{"data":{"id":"sv_81EVOtR1N4J2Z","type":"servers","attributes":{"hostname":"new-hostname","tags":[]}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"project":"proj_yQrJdNMGO30gv"}}}}}}},"required":true}, "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.update(server_id=\"sv_yQrJdNAGO30gv\", data={\n \"id\": \"sv_yQrJdNAGO30gv\",\n \"type\": latitudesh_python_sdk.UpdateServerServersType.SERVERS,\n \"attributes\": {\n \"project\": \"proj_yQrJdNMGO30gv\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Update(ctx, \"sv_yQrJdNAGO30gv\", operations.UpdateServerServersRequestBody{\n Data: &operations.UpdateServerServersData{\n ID: latitudeshgosdk.Pointer(\"sv_yQrJdNAGO30gv\"),\n Type: operations.UpdateServerServersTypeServers.ToPointer(),\n Attributes: &operations.UpdateServerServersAttributes{\n Project: latitudeshgosdk.Pointer(\"proj_yQrJdNMGO30gv\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Server != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.update({\n serverId: \"sv_yQrJdNAGO30gv\",\n requestBody: {\n data: {\n id: \"sv_yQrJdNAGO30gv\",\n type: \"servers\",\n attributes: {\n project: \"proj_yQrJdNMGO30gv\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Remove server", "operationId": "destroy-server", "tags": ["Servers"], "parameters": [{"name":"server_id","in":"path","description":"The server ID","required":true,"schema":{"type":"string"}}, {"name":"reason","in":"query","description":"The reason for deleting the server","required":false,"schema":{"type":"string"}}], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/destroy-server"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.servers.delete(server_id=\"sv_WeGoqAZNDP7nz\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Delete(ctx, \"sv_WeGoqAZNDP7nz\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.servers.delete({\n serverId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/servers/{server_id}/deploy_config": { "get": { "summary": "Retrieve deploy config", "operationId": "get-server-deploy-config", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_pRMLydp0dQKr1"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-server-deploy-config"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_pRMLydp0dQKr1","type":"deploy_config","attributes":{"ssh_keys":["ssh_0g1mbDwBqLv5B"],"user_data":"ud_0g1mbDwBqLv5B","raid":"raid-0","operating_system":"debian_10","hostname":"Asoka","ipxe_url":null,"ipxe":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/deploy_config"}}}}}, "x-speakeasy-name-override": "getDeployConfig", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.get_deploy_config(server_id=\"sv_pRMLydp0dQKr1\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.GetDeployConfig(ctx, \"sv_pRMLydp0dQKr1\")\n if err != nil {\n log.Fatal(err)\n }\n if res.DeployConfig != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.getDeployConfig({\n serverId: \"sv_pRMLydp0dQKr1\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update deploy config", "operationId": "update-server-deploy-config", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_lkg1DeYLDvZE5"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/update-server-deploy-config"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_lkg1DeYLDvZE5","type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname","ipxe_url":null,"ipxe":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/deploy_config"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","title":"Feature Not Enabled","detail":"Public networks are not enabled for this team","status":"403"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"PublicNetworkNotSupportedForServer":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"cannot be used: the server has 0 cabled bond NICs, but a bond requires exactly 2","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkHasNoFreeAddresses":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"has no free IP addresses","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkIdRequiredWhenPublicNetwork":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"is required when public_network is true","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkRequiredForPublicNetworkId":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"can only be set when public_network is true","status":"422","source":{"pointer":"public_network_id"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string","nullable":true},"operating_system":{"type":"string","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"],"nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string","description":"User data to configure the server","nullable":true},"ssh_keys":{"type":"array","items":{"type":"string"},"nullable":true},"ipxe_url":{"type":"string","description":"URL where iPXE script is stored on, necessary for custom image deployments. This attribute is required when operating system iPXE is selected.","nullable":true},"ipxe":{"type":"string","description":"URL where the iPXE script is stored, or the iPXE script encoded in base64. This attribute is required when the iPXE operating system is selected. Replaces the deprecated 'ipxe_url'.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"Set to 'true' to attach the server onto a public network. Requires 'public_network_id'. Available only when the public network feature is enabled for the server's location."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach the server onto. Requires 'public_network' to be 'true'. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. This public network configuration is saved to the deploy config and inherited by future reinstalls until changed. Available only when the public network feature is enabled for the server's location."}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string","nullable":true},"operating_system":{"type":"string","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"],"nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string","description":"User data to configure the server","nullable":true},"ssh_keys":{"type":"array","items":{"type":"string"},"nullable":true},"ipxe_url":{"type":"string","description":"URL where iPXE script is stored on, necessary for custom image deployments. This attribute is required when operating system iPXE is selected.","nullable":true},"ipxe":{"type":"string","description":"URL where the iPXE script is stored, or the iPXE script encoded in base64. This attribute is required when the iPXE operating system is selected. Replaces the deprecated 'ipxe_url'.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"Set to 'true' to attach the server onto a public network. Requires 'public_network_id'. Available only when the public network feature is enabled for the server's location."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach the server onto. Requires 'public_network' to be 'true'. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. This public network configuration is saved to the deploy config and inherited by future reinstalls until changed. Available only when the public network feature is enabled for the server's location."}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname"}}}}}}},"required":true}, "x-speakeasy-name-override": "updateDeployConfig", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.update_deploy_config(server_id=\"sv_lkg1DeYLDvZE5\", data={\n \"type\": latitudesh_python_sdk.UpdateServerDeployConfigServersType.DEPLOY_CONFIG,\n \"attributes\": {\n \"hostname\": \"my-hostname\",\n \"operating_system\": latitudesh_python_sdk.UpdateServerDeployConfigServersOperatingSystem.CENTOS_9_STREAM,\n \"raid\": latitudesh_python_sdk.UpdateServerDeployConfigServersRaid.RAID_1,\n \"user_data\": \"ud_5LA73qkjdaJ2o\",\n \"ssh_keys\": [\n \"ssh_m5xyZOnNOWM0l\",\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.UpdateDeployConfig(ctx, \"sv_lkg1DeYLDvZE5\", operations.UpdateServerDeployConfigServersRequestBody{\n Data: operations.UpdateServerDeployConfigServersData{\n Type: operations.UpdateServerDeployConfigServersTypeDeployConfig,\n Attributes: &operations.UpdateServerDeployConfigServersAttributes{\n Hostname: latitudeshgosdk.Pointer(\"my-hostname\"),\n OperatingSystem: operations.UpdateServerDeployConfigServersOperatingSystemCentos9Stream.ToPointer(),\n Raid: operations.UpdateServerDeployConfigServersRaidRaid1.ToPointer(),\n UserData: latitudeshgosdk.Pointer(\"ud_5LA73qkjdaJ2o\"),\n SSHKeys: []string{\n \"ssh_m5xyZOnNOWM0l\",\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.DeployConfig != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.updateDeployConfig({\n serverId: \"sv_lkg1DeYLDvZE5\",\n requestBody: {\n data: {\n type: \"deploy_config\",\n attributes: {\n hostname: \"my-hostname\",\n operatingSystem: \"centos-9-stream\",\n raid: \"raid-1\",\n userData: \"ud_5LA73qkjdaJ2o\",\n sshKeys: [\n \"ssh_m5xyZOnNOWM0l\",\n ],\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/servers/{server_id}/lock": {"post":{ "summary": "Lock server", "operationId": "server-lock", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_pbV0DgjKq4AWz"}},"schema":{"type":"string"}}], "description": "Locks the server. A locked server cannot be deleted or modified and no actions can be performed on it.", "x-mint": {"href":"/api-reference/server-lock"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_pbV0DgjKq4AWz","type":"servers","attributes":{"hostname":"Heavy Duty Concrete Chair","label":"946654NODEUT","price":599.0,"ipmi_status":"Normal","scheduled_deletion_at":null,"status":"unknown","role":"Enclosure","primary_ipv4":"150.158.19.54","created_at":null,"locked":true,"team":{"id":"team_zAoElw92Z1c36A13Vx9EF71RlMl","name":"467 Team","slug":"467-team","description":"467 Team","address":"Suite 277 939 Hermann Mall, Hongshire, NH 77247-8873","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_Gr47qloZdAg0m","name":"Heavy Duty Linen Bottle","slug":"heavy-duty-linen-bottle","description":"Awesome Copper Lamp","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":"sub_6rq7u7562p9hap","type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"region":{"city":"Frankfurt 132","country":"Germany 147","site":{"id":"loc_Gr47ql4vqAg0m","name":"Frankfurt 132","slug":"FRA113","facility":"Frankfurt 132"}}}}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}, "x-speakeasy-name-override": "lock", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.lock(server_id=\"sv_pbV0DgjKq4AWz\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Lock(ctx, \"sv_pbV0DgjKq4AWz\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Server != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.lock({\n serverId: \"sv_pbV0DgjKq4AWz\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/unlock": {"post":{ "summary": "Unlock server", "operationId": "server-unlock", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_e8pKq0xYqWAob"}},"schema":{"type":"string"}}], "description": "Unlocks the server. A locked server cannot be deleted or modified and no actions can be performed on it.", "x-mint": {"href":"/api-reference/server-unlock"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_e8pKq0xYqWAob","type":"servers","attributes":{"hostname":"Fantastic Copper Shirt","label":"275299NODEZB","price":599.0,"ipmi_status":"Normal","scheduled_deletion_at":null,"status":"unknown","role":"Storage","primary_ipv4":"95.231.106.4","created_at":null,"locked":false,"team":{"id":"team_L8E8kyLxxotB4WNL0Pnrhbla8NW","name":"472 Team","slug":"472-team","description":"472 Team","address":"992 Noe Neck, Lake Germanberg, FL 06343","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_aNmodjQZObE8W","name":"Enormous Marble Clock","slug":"enormous-marble-clock","description":"Synergistic Granite Gloves","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":"sub_qmelg7r2lao5z3","type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"region":{"city":"Sydney 134","country":"Australia 149","site":{"id":"loc_kjQwdEmXdYNVP","name":"Sydney 134","slug":"SYD115","facility":"Sydney 134"}}}}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}, "x-speakeasy-name-override": "unlock", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.unlock(server_id=\"sv_e8pKq0xYqWAob\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Unlock(ctx, \"sv_e8pKq0xYqWAob\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Server != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.unlock({\n serverId: \"sv_e8pKq0xYqWAob\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/out_of_band_connection": { "post": { "summary": "Create out-of-band connection", "operationId": "create-server-out-of-band", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_8NkvdyGKDeLpx"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/create-server-out-of-band"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"obc_mw49QDB5qagKb","type":"out_of_band","attributes":{"ssh_key":{"id":"ssh_3YjJOLMydvZ87","description":"wisozk-gislason.example","fingerprint":"14:e2:8e:b3:9e:f5:08:31:b6:c7:43:6d:f5:1e:6d:b2"},"created_at":"2026-01-14T15:56:58+00:00","username":"server-1","credentials":{"user":"donn","password":"398ig362ci"},"port":"2222","access_ip":"189.1.2.0","server_id":"sv_8NkvdyGKDeLpx","status":"connected"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/out_of_band_connection"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["out_of_band"]},"attributes":{"type":"object","properties":{"ssh_key_id":{"type":"string","description":"SSH Key ID to set for out of band"}},"required":["ssh_key_id"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"out_of_band","attributes":{"ssh_key_id":"ssh_3YjJOLMydvZ87"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["out_of_band"]},"attributes":{"type":"object","properties":{"ssh_key_id":{"type":"string","description":"SSH Key ID to set for out of band"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"out_of_band","attributes":{"ssh_key_id":"ssh_3YjJOLMydvZ87"}}}}}}},"required":true}, "x-speakeasy-name-override": "startOutOfBandConnection", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.create_out_of_band_connection(server_id=\"sv_8NkvdyGKDeLpx\", data={\n \"type\": latitudesh_python_sdk.CreateServerOutOfBandServersType.OUT_OF_BAND,\n \"attributes\": {\n \"ssh_key_id\": \"ssh_3YjJOLMydvZ87\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.StartOutOfBandConnection(ctx, \"sv_8NkvdyGKDeLpx\", operations.CreateServerOutOfBandServersRequestBody{\n Data: operations.CreateServerOutOfBandServersData{\n Type: operations.CreateServerOutOfBandServersTypeOutOfBand,\n Attributes: &operations.CreateServerOutOfBandServersAttributes{\n SSHKeyID: \"ssh_3YjJOLMydvZ87\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.OutOfBandConnection != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.startOutOfBandConnection({\n serverId: \"sv_8NkvdyGKDeLpx\",\n requestBody: {\n data: {\n type: \"out_of_band\",\n attributes: {\n sshKeyId: \"ssh_3YjJOLMydvZ87\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List out-of-band connections", "operationId": "get-server-out-of-band", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_GnzRD5lvqM5yw"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-server-out-of-band"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"obc_AW6Q2D9lqKLpr","type":"out_of_band","attributes":{"ssh_key":{"id":"ssh_Gr47qlNMOAg0m","description":"raynor-dubuque.example","fingerprint":"d5:d6:ac:44:54:1a:d9:c3:0a:1e:c6:2a:9b:66:d5:90"},"created_at":"2026-01-14T15:56:58+00:00","username":"server-1","credentials":{"user":"vonda_littel","password":"8i97d81tjq"},"port":"2222","access_ip":"189.1.2.0","server_id":"sv_GnzRD5lvqM5yw","status":"connected"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/out_of_band_connection"}}}}}, "x-speakeasy-name-override": "getOutOfBand", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.list_out_of_band_connections(server_id=\"sv_GnzRD5lvqM5yw\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.GetOutOfBand(ctx, \"sv_GnzRD5lvqM5yw\")\n if err != nil {\n log.Fatal(err)\n }\n if res.OutOfBandConnection != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.getOutOfBand({\n serverId: \"sv_GnzRD5lvqM5yw\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/servers/{server_id}/actions": {"post":{ "summary": "Run power action", "operationId": "create-server-action", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_WVQJDMVBORbyE"}},"schema":{"type":"string"}}], "description": "Performs an action on a given server:\n- `power_on`\n- `power_off`\n- `reboot`\n", "x-mint": {"href":"/api-reference/create-server-action"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"act_73qkbw0QmjdaJ","type":"actions","attributes":{"status":"Rebooting device"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_action"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the server","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"actions","attributes":{"action":"reboot"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the server","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"actions","attributes":{"action":"reboot"}}}}}}},"required":true}, "x-speakeasy-name-override": "runAction", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.actions(server_id=\"sv_WVQJDMVBORbyE\", data={\n \"type\": latitudesh_python_sdk.CreateServerActionServersType.ACTIONS,\n \"attributes\": {\n \"action\": latitudesh_python_sdk.CreateServerActionAction.REBOOT,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.RunAction(ctx, \"sv_WVQJDMVBORbyE\", operations.CreateServerActionServersRequestBody{\n Data: operations.CreateServerActionServersData{\n Type: operations.CreateServerActionServersTypeActions,\n Attributes: &operations.CreateServerActionServersAttributes{\n Action: operations.CreateServerActionActionReboot,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.ServerAction != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.runAction({\n serverId: \"sv_WVQJDMVBORbyE\",\n requestBody: {\n data: {\n type: \"actions\",\n attributes: {\n action: \"reboot\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/remote_access": {"post":{ "summary": "Create IPMI credentials", "operationId": "create-ipmi-session", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_Qkm7dXaRq8nZV"}},"schema":{"type":"string"}}], "description": "Generates IPMI credentials for a given server. Remote access creates a VPN connection to the internal network of your server so you can connect to its IPMI.\nYou will have to use a VPN client such as https://openvpn.net to connect. See `VPN Sessions` API to create a VPN connection.\n\nRelated guide: https://docs.latitude.sh/docs/ipmi\n", "x-mint": {"href":"/api-reference/create-ipmi-session"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ipmi_mw49QDB5qagKb","type":"ipmi_sessions","attributes":{"ipmi_address":"10.0.10.1","ipmi_url":null,"ipmi_username":"customer_access","ipmi_password":"ipmi_password"}}}}},"schema":{"$ref":"#/components/schemas/ipmi_session"}}}}}, "x-speakeasy-name-override": "createIpmiSession", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.create_ipmi_session(server_id=\"sv_Qkm7dXaRq8nZV\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.CreateIpmiSession(ctx, \"sv_Qkm7dXaRq8nZV\")\n if err != nil {\n log.Fatal(err)\n }\n if res.IpmiSession != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.createIpmiSession({\n serverId: \"sv_Qkm7dXaRq8nZV\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/rescue_mode": {"post":{ "summary": "Put server in rescue mode", "operationId": "server-start-rescue-mode", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_WeGoqAWNOP7nz"}},"schema":{"type":"string"}}], "description": "Starts rescue mode on a given server.", "x-mint": {"href":"/api-reference/server-start-rescue-mode"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_rescue"}}}}}, "x-speakeasy-name-override": "startRescueMode", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.start_rescue_mode(server_id=\"sv_WeGoqAWNOP7nz\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.StartRescueMode(ctx, \"sv_WeGoqAWNOP7nz\")\n if err != nil {\n log.Fatal(err)\n }\n if res.ServerRescue != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.startRescueMode({\n serverId: \"sv_WeGoqAWNOP7nz\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/exit_rescue_mode": {"post":{ "summary": "Exits rescue mode", "operationId": "server-exit-rescue-mode", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_3YjJOLQNdvZ87"}},"schema":{"type":"string"}}], "description": "Exits rescue mode on a given server.", "x-mint": {"href":"/api-reference/server-exit-rescue-mode"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_rescue"}}}}}, "x-speakeasy-name-override": "exitRescueMode", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.exit_rescue_mode(server_id=\"sv_3YjJOLQNdvZ87\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.ExitRescueMode(ctx, \"sv_3YjJOLQNdvZ87\")\n if err != nil {\n log.Fatal(err)\n }\n if res.ServerRescue != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.exitRescueMode({\n serverId: \"sv_3YjJOLQNdvZ87\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/servers/{server_id}/schedule_deletion": { "post": { "summary": "Schedule server deletion", "operationId": "server-schedule-deletion", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_g1mbDwBZqLv5B"}},"schema":{"type":"string"}}], "description": "Schedules the server to be removed at the end of the billing cycle.", "x-mint": {"href":"/api-reference/server-schedule-deletion"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"sv_g1mbDwBZqLv5B","type":"schedule_deletion","attributes":{"server_id":"sv_g1mbDwBZqLv5B","scheduled_deletion_at":"2026-02-14T09:57:01Z"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_schedule_deletion"}}}}}, "x-speakeasy-name-override": "scheduleDeletion", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.servers.schedule_deletion(server_id=\"sv_g1mbDwBZqLv5B\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.ScheduleDeletion(ctx, \"sv_g1mbDwBZqLv5B\")\n if err != nil {\n log.Fatal(err)\n }\n if res.ServerScheduleDeletion != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.servers.scheduleDeletion({\n serverId: \"sv_g1mbDwBZqLv5B\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Unschedule server deletion", "operationId": "server-unschedule-deletion", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Unschedules the server removal at the end of the billing cycle.", "x-mint": {"href":"/api-reference/server-unschedule-deletion"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "unscheduleDeletion", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.servers.unschedule_deletion(server_id=\"sv_Z8rodmJGq1jLB\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.UnscheduleDeletion(ctx, \"sv_Z8rodmJGq1jLB\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.servers.unscheduleDeletion({\n serverId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/servers/{server_id}/reinstall": {"post":{ "summary": "Run Server Reinstall", "operationId": "create-server-reinstall", "tags": ["Servers"], "security": [{"Bearer":[]}], "parameters": [{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_aNmodj6ydbE8W"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/create-server-reinstall"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","title":"Feature Not Enabled","detail":"Public networks are not enabled for this team","status":"403"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ServerNotFound":{"value":{"errors":[{"code":"REINSTALL_SERVER_NOT_FOUND","title":"Reinstall Server Not Found","detail":"Sorry, we're unable to reinstall","status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ReinstallUnavailable":{"value":{"errors":[{"code":"REINSTALL_UNAVAILABLE","title":"Reinstall Unavailable","detail":"Your server has outdated hardware information and is unable to reinstall. Please contact support for assistance.","status":"422"}]}},"ServerBeingProvisioned":{"value":{"errors":[{"code":"SERVER_BEING_PROVISIONED","title":"Unable to reinstall","detail":"Server is being provisioned","status":"422"}]}},"ServerInRescueMode":{"value":{"errors":[{"code":"SERVER_IN_RESCUE_MODE","title":"Server in Rescue Mode","detail":"Server is in rescue mode and cannot be reinstalled","status":"422"}]}},"NetworkConfigError":{"value":{"errors":[{"code":"NETWORK_CONFIG_ERROR","title":"Network Config Error","detail":"Failed to reinstall due to invalid network config on the server.","status":"422"}]}},"ReinstallServerFailure":{"value":{"errors":[{"code":"REINSTALL_SERVER_FAILURE","title":"Reinstall Server Failure","detail":"Failed to reinstall server","status":"422"}]}},"PublicNetworkNotSupported":{"value":{"errors":[{"code":"PUBLIC_NETWORK_NOT_SUPPORTED","title":"Public network not supported","detail":"Attaching a public network is not supported for this server","status":"422"}]}},"PublicNetworkHasNoFreeAddresses":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"has no free IP addresses","status":"422","source":{"pointer":"public_network_id"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["reinstalls"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string","description":"The OS selected for the reinstall process","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"]},"hostname":{"type":"string","description":"The server hostname to set upon reinstall"},"ssh_keys":{"type":"array","description":"SSH Key IDs to set upon reinstall","items":{"type":"string"},"nullable":true},"user_data":{"type":"string","description":"User data ID to set upon reinstall","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when operating system iPXE is selected.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to 'true' to attach the server onto the given 'public_network_id', or 'false' to detach an existing public network, during the reinstall. Requires 'public_network_id' when attaching."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach this server to during the reinstall. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. Applies to this reinstall only; omit it to leave any existing public network unchanged."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"reinstalls","attributes":{"operating_system":"ipxe","ipxe":"https://some-host.com/image.ipxe","hostname":"BRC1"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["reinstalls"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string","description":"The OS selected for the reinstall process","enum":["almalinux-10","almalinux-9","centos-9-stream","debian_12","debian_13","fedora-44","ipxe","opensuse-15","oraclelinux-10","oraclelinux-9","proxmox-9","proxmox-backup-server-4","rocky-10","rocky-9","ubuntu24_ml_in_a_box","ubuntu24_ml_in_a_box_sxm","ubuntu26_ml_in_a_box","ubuntu_24_04_x64_lts","ubuntu_26_04_x64_lts"]},"hostname":{"type":"string","description":"The server hostname to set upon reinstall"},"ssh_keys":{"type":"array","description":"SSH Key IDs to set upon reinstall","items":{"type":"string"},"nullable":true},"user_data":{"type":"string","description":"User data ID to set upon reinstall","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when operating system iPXE is selected.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to 'true' to attach the server onto the given 'public_network_id', or 'false' to detach an existing public network, during the reinstall. Requires 'public_network_id' when attaching."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach this server to during the reinstall. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. Applies to this reinstall only; omit it to leave any existing public network unchanged."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"reinstalls","attributes":{"operating_system":"ipxe","ipxe":"https://some-host.com/image.ipxe","hostname":"BRC1"}}}}}}},"required":true}, "x-speakeasy-name-override": "reinstall", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.servers.reinstall(server_id=\"sv_aNmodj6ydbE8W\", data={\n \"type\": latitudesh_python_sdk.CreateServerReinstallServersType.REINSTALLS,\n \"attributes\": {\n \"operating_system\": latitudesh_python_sdk.CreateServerReinstallServersOperatingSystem.IPXE,\n \"hostname\": \"BRC1\",\n \"ipxe\": \"https://some-host.com/image.ipxe\",\n },\n })\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Servers.Reinstall(ctx, \"sv_aNmodj6ydbE8W\", operations.CreateServerReinstallServersRequestBody{\n Data: operations.CreateServerReinstallServersData{\n Type: operations.CreateServerReinstallServersTypeReinstalls,\n Attributes: &operations.CreateServerReinstallServersAttributes{\n OperatingSystem: operations.CreateServerReinstallServersOperatingSystemIpxe.ToPointer(),\n Hostname: latitudeshgosdk.Pointer(\"BRC1\"),\n Ipxe: latitudeshgosdk.Pointer(\"https://some-host.com/image.ipxe\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.servers.reinstall({\n serverId: \"sv_aNmodj6ydbE8W\",\n requestBody: {\n data: {\n type: \"reinstalls\",\n attributes: {\n operatingSystem: \"ipxe\",\n hostname: \"BRC1\",\n ipxe: \"https://some-host.com/image.ipxe\",\n },\n },\n },\n });\n\n\n}\n\nrun();" } ] }}, "/ssh_keys": { "get": { "summary": "List SSH Keys", "operationId": "get-ssh-keys", "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"Project ID or slug","schema":{"type":"string"}}, {"name":"filter[scope]","in":"query","required":false,"description":"Filter by scope: `project` (has projects), `team` (no projects), or empty (all)","schema":{"type":"string"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX"}},"schema":{"type":"string"}}, {"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}}, {"name":"page[number]","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer"}}, {"name":"page[size]","in":"query","required":false,"description":"Number of items per page","schema":{"type":"integer"}}], "description": "List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/get-ssh-keys"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ssh_VE1Wd3L7qXnZJ","type":"ssh_keys","attributes":{"tags":[],"name":"quigley-hudson.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuDo1r0gQTdX/8l4Ko7ZAYJLimzA1+eom99SFnMKwZmGVubhsnvQ8sCJAqjn1gO66+RrDwrWb+iqM7vlQlodiMr9VTOCxDke9MhW5peRP94vKyptquzJW8J+Y3qNcM774bOrQXpQMo92i5d4ffPYmEoifxVYEhmZrM2Yxr3zqLW0cs446RvCDRLTyGAhte6F9i1Qz95U4WqVkJ9Y5A/cSwJ1W17lK+e8ZMpjkrZXUL0gYGylM7BJRf+R6XOnXAdBEW1Dr8QN+s8ai4m5Y0htwPqTfL5/rGiVrES+QnDUJDe5mtpa3v51geAzgXTFtw3JCGpGyUbv0kITvFJBwNMvUz","fingerprint":"a5:3b:97:0c:b5:2a:a1:6d:e4:93:2f:9d:5f:a6:0e:28","created_at":"2026-01-14T15:57:04+00:00","updated_at":"2026-01-14T15:57:04+00:00","project":{},"user":{"id":"user_Xjm6jLAYleIy8YRwoMyLCBbXypG","first_name":"Lashawna","last_name":"Wuckert","email":"shawnee_runolfsdottir@olson-gulgowski.test","created_at":"2025-10-16T00:00:00.000Z","updated_at":"2025-04-04T00:00:00.000Z","role":{"id":"role_5QB3mJAbazs5MbgR5RkLFro6YVY","name":"owner","created_at":"2025-12-23T00:00:00.000Z","updated_at":"2026-11-24T00:00:00.000Z"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ssh_keys"}}}}}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "listAll", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ssh_keys.get_ssh_keys(filter_tags=\"tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.SSHKeys.ListAll(ctx, operations.GetSSHKeysRequest{\n FilterTags: latitudeshgosdk.Pointer(\"tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.SSHKeys != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.sshKeys.listAll({\n filterTags: \"tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create SSH Key", "operationId": "post-ssh-key", "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [], "description": "Allows you create SSH Keys. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/post-ssh-key"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ssh_QraYDPweqpjwW","type":"ssh_keys","attributes":{"tags":[],"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","fingerprint":"0a:00:34:53:51:0e:a5:4e:06:2c:d7:16:88:96:82:f3","created_at":"2026-01-14T15:57:05+00:00","updated_at":"2026-01-14T15:57:05+00:00","project":{"id":"proj_z2A3DV4wdnawP","name":"Ergonomic Cotton Gloves","slug":"ergonomic-cotton-gloves","description":"Small Concrete Bottle","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_RJK9eae5KlTAKQoBReVKFGQRVJ7","first_name":"Meda","last_name":"Schowalter","email":"dana.lind@mayert-kreiger.test","created_at":"2025-04-25T00:00:00.000Z","updated_at":"2025-07-21T00:00:00.000Z","role":{"id":"role_AzG5AagWN1fKg1okmoG9uWWoN5my","name":"owner","created_at":"2025-05-15T00:00:00.000Z","updated_at":"2026-12-02T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"project":{"type":"string","description":"Project ID or slug"},"public_key":{"type":"string","description":"SSH Public Key"}},"required":["name","public_key"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","project":"proj_z2A3DV4wdnawP"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"project":{"type":"string","description":"Project ID or slug"},"public_key":{"type":"string","description":"SSH Public Key"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","project":"proj_z2A3DV4wdnawP"}}}}}}},"required":true}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ssh_keys.post_ssh_key(data={\n \"type\": latitudesh_python_sdk.PostSSHKeySSHKeysType.SSH_KEYS,\n \"attributes\": {\n \"name\": \"SSH Key\",\n \"project\": \"proj_z2A3DV4wdnawP\",\n \"public_key\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.SSHKeys.Create(ctx, operations.PostSSHKeySSHKeysRequestBody{\n Data: operations.PostSSHKeySSHKeysData{\n Type: operations.PostSSHKeySSHKeysTypeSSHKeys,\n Attributes: &operations.PostSSHKeySSHKeysAttributes{\n Name: \"SSH Key\",\n Project: latitudeshgosdk.Pointer(\"proj_z2A3DV4wdnawP\"),\n PublicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.sshKeys.create({\n data: {\n type: \"ssh_keys\",\n attributes: {\n name: \"SSH Key\",\n project: \"proj_z2A3DV4wdnawP\",\n publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/ssh_keys/{ssh_key_id}": { "get": { "summary": "Retrieve SSH Key", "operationId": "get-ssh-key", "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_LYV8DZ12q5QoE"}},"schema":{"type":"string"}}], "description": "List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/get-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_LYV8DZ12q5QoE","type":"ssh_keys","attributes":{"tags":[],"name":"okon.test","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbsRT5a6prybLLxm/7kojvMNCCQ2UIM9/7UaxhOWYM8om+3IwB1EMQEyiNrIJtmJ7OYUz1mb5cd2Ra0nl0GztBFbMiqsXOFj+yiAYXEObciMNg65QxUNIe3goOJBwXdhRp/n3uRk8VePSETMTtjfVMgAiY2/LLqLgpN0eYBaZN+E7/Z3VHjh53krElLex0oJaCfIrHYb4GvtdmbZiwUpqGOlg41/cMxyEV2E/KHHhQOHm1/xCCzPlTNsf26O+oiJCRuzFaYUctrr7XC/kN1H9oH2nYNKZmZHKLKKFOdhXAf7IzI6tagL4CHInysYWaMdJ8lyHGY9+wKeSrtQQmgNoR","fingerprint":"c8:8d:f7:d8:5d:4c:fe:d4:09:85:4f:04:91:e4:0e:9c","created_at":"2026-01-14T15:57:05+00:00","updated_at":"2026-01-14T15:57:05+00:00","project":{},"user":{"id":"user_0A9pmoYAB8Uy5bJ6EmLVI0nKkaa","first_name":"Jonelle","last_name":"Grady","email":"irina.miller@reilly.example","created_at":"2025-04-29T00:00:00.000Z","updated_at":"2025-06-08T00:00:00.000Z","role":{"id":"role_1KvABgXK63IKBM79NjvwU55yXNoW","name":"owner","created_at":"2025-02-28T00:00:00.000Z","updated_at":"2026-12-25T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "retrieve", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ssh_keys.get_ssh_key(ssh_key_id=\"ssh_LYV8DZ12q5QoE\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.SSHKeys.Retrieve(ctx, \"ssh_LYV8DZ12q5QoE\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.sshKeys.retrieve({\n sshKeyId: \"ssh_LYV8DZ12q5QoE\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update SSH Key", "operationId": "put-ssh-key", "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_GnzRD5xAqM5yw"}},"schema":{"type":"string"}}], "description": "Allows you update SSH Key in a project. These keys can be used to access servers after deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/put-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":[{"id":"tag_JLA906BzyKHLyVJbJr8NH3QQbev","name":"Elfstan Fairbairn","description":"Culpa fuga asperiores et.","color":"#3fd53f"}, {"id":"tag_Yy7PJ68y22FoQyBppnW7FjNGX1k","name":"Lindir","description":"Et voluptas sequi rerum.","color":"#172717"}],"name":"bradtke.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZzuE/2myrBWwvs5ayKE/p37nbhUWBpVfKjFA/6meaIFj3pKHv7lK3rZxOz/QnrUPsTS04kXVwvOG1Ms+ZQk7irHNzSWksKIFK8mPZWf9T6Pb2DbUduela1jUnmelVKPoiF6lUVnA8IayHbeRD5kaGS1zr35WzstNhUPXoab6QI9NSakvxUxciGitJ/nMWSJlfV3y48OQ1NE9iuqoSWomWc8/NEjk5x2uJcte2ZA336hjYHQxo9+DYhLq9jRcxw3RrzqkWFDuVT4SW82x5ERIZYUKZmywOwk8gCePNaUkzRU4G6qwADfpBovbicZ4+9WBpZsJ7vj8OqM35TdFS7ZjJ","fingerprint":"52:c8:05:f4:9b:f0:42:17:40:07:64:0d:33:12:9a:47","created_at":"2026-01-14T15:57:06+00:00","updated_at":"2026-01-14T15:57:06+00:00","project":{},"user":{"id":"user_yReEYZlaagFl4YmjMZ6GCpvwJJJb","first_name":"Gale","last_name":"Brown","email":"willa.wunsch@veum.example","created_at":"2025-02-17T00:00:00.000Z","updated_at":"2025-05-31T00:00:00.000Z","role":{"id":"role_bBeWeR8mBLuyLVoQwzNWcng2ekv","name":"owner","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2026-06-05T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":["tag_JLA906BzyKHLyVJbJr8NH3QQbev","tag_Yy7PJ68y22FoQyBppnW7FjNGX1k"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":["tag_JLA906BzyKHLyVJbJr8NH3QQbev","tag_Yy7PJ68y22FoQyBppnW7FjNGX1k"]}}}}}}},"required":true}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.ssh_keys.put_ssh_key(ssh_key_id=\"ssh_GnzRD5xAqM5yw\", data={\n \"id\": \"ssh_GnzRD5xAqM5yw\",\n \"type\": latitudesh_python_sdk.PutSSHKeySSHKeysType.SSH_KEYS,\n \"attributes\": {\n \"tags\": [\n \"tag_JLA906BzyKHLyVJbJr8NH3QQbev\",\n \"tag_Yy7PJ68y22FoQyBppnW7FjNGX1k\",\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.SSHKeys.Update(ctx, \"ssh_GnzRD5xAqM5yw\", operations.PutSSHKeySSHKeysRequestBody{\n Data: operations.PutSSHKeySSHKeysData{\n ID: \"ssh_GnzRD5xAqM5yw\",\n Type: operations.PutSSHKeySSHKeysTypeSSHKeys,\n Attributes: &operations.PutSSHKeySSHKeysAttributes{\n Tags: []string{\n \"tag_JLA906BzyKHLyVJbJr8NH3QQbev\",\n \"tag_Yy7PJ68y22FoQyBppnW7FjNGX1k\",\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.sshKeys.update({\n sshKeyId: \"ssh_GnzRD5xAqM5yw\",\n requestBody: {\n data: {\n id: \"ssh_GnzRD5xAqM5yw\",\n type: \"ssh_keys\",\n attributes: {\n tags: [\n \"tag_JLA906BzyKHLyVJbJr8NH3QQbev\",\n \"tag_Yy7PJ68y22FoQyBppnW7FjNGX1k\",\n ],\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete SSH Key", "operationId": "delete-ssh-key", "tags": ["SSH Keys"], "security": [{"Bearer":[]}], "parameters": [{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_KXgRdRa3Ov9k5"}},"schema":{"type":"string"}}], "description": "Allows you remove SSH Keys in a project. Remove a SSH Key from the project won't revoke the SSH Keys access for previously deploy and reinstall actions.\n", "x-mint": {"href":"/api-reference/delete-ssh-key"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}, "x-speakeasy-group": "sshKeys", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.ssh_keys.delete_ssh_key(ssh_key_id=\"ssh_KXgRdRa3Ov9k5\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.SSHKeys.Delete(ctx, \"ssh_KXgRdRa3Ov9k5\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.sshKeys.delete({\n sshKeyId: \"ssh_KXgRdRa3Ov9k5\",\n });\n\n\n}\n\nrun();" } ] } }, "/storage/filesystems": { "post": { "summary": "Create filesystem", "operationId": "create-filesystem", "tags": ["Filesystem Storage"], "security": [{"Bearer":[]}], "parameters": [], "description": "Allows you to add persistent storage to a project. These filesystems can be used to store data across your servers.", "x-mint": {"href":"/api-reference/create-filesystem"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fs_AW6Q2D9lqKLpr","type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.000Z","project":{"id":"proj_lkg1De6ROvZE5","name":"Small Leather Plate","slug":"small-leather-plate","description":"Awesome Marble Table","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_13ljzVvQY2c2YN4lnMexSm79WgA","name":"592 Team","slug":"592-team","description":"592 Team","address":"247 Russ Station, New Freddy, OK 97400-4162","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/filesystem_data"}}}}}},"503":{"description":"Service Unavailable - Storage creation temporarily frozen","content":{"application/vnd.api+json":{"examples":{"Storage creation frozen":{"value":{"errors":[{"code":"STORAGE_CREATION_FROZEN","status":"503","title":"Storage creation frozen","detail":"New filesystem creation is temporarily unavailable.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Filesystem name. \"block\" is reserved and cannot be used."},"region":{"type":"string","description":"Region (site) slug where the filesystem is provisioned. Required for high performance file storage; an unknown slug is rejected with INVALID_REGION."},"size_in_gb":{"type":"integer","default":1500,"minimum":1,"maximum":20480,"description":"Size in GB (not required, default is 1500)"},"protocols":{"type":"array","items":{"type":"string","enum":["nfs3","nfs4"]},"minItems":1,"description":"NFS protocol version(s) to mount the filesystem with. Case-insensitive. Pass both nfs3 and nfs4 to allow either protocol."}},"required":["project","name","region","protocols"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"region":"NYC","project":"proj_lkg1De6ROvZE5","protocols":["nfs3"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Filesystem name. \"block\" is reserved and cannot be used."},"region":{"type":"string","description":"Region (site) slug where the filesystem is provisioned. Required for high performance file storage; an unknown slug is rejected with INVALID_REGION."},"size_in_gb":{"type":"integer","default":1500,"minimum":1,"maximum":20480,"description":"Size in GB (not required, default is 1500)"},"protocols":{"type":"array","items":{"type":"string","enum":["nfs3","nfs4"]},"minItems":1,"description":"NFS protocol version(s) to mount the filesystem with. Case-insensitive. Pass both nfs3 and nfs4 to allow either protocol."}},"required":["project","name","region","protocols"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"region":"NYC","project":"proj_lkg1De6ROvZE5","protocols":["nfs3"]}}}}}}},"required":true}, "x-speakeasy-name-override": "createFilesystem", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.filesystem_storage.create_filesystem(data={\n \"type\": latitudesh_python_sdk.PostStorageFilesystemsFilesystemStorageType.FILESYSTEMS,\n \"attributes\": {\n \"project\": \"proj_lkg1De6ROvZE5\",\n \"name\": \"my-data\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.FilesystemStorage.CreateFilesystem(ctx, operations.CreateFilesystemFilesystemStorageRequestBody{\n Data: operations.CreateFilesystemFilesystemStorageData{\n Type: operations.CreateFilesystemFilesystemStorageTypeFilesystems,\n Attributes: operations.CreateFilesystemFilesystemStorageAttributes{\n Project: \"proj_lkg1De6ROvZE5\",\n Name: \"my-data\",\n Region: \"NYC\",\n Protocols: []operations.CreateFilesystemProtocols{\n operations.CreateFilesystemProtocolsNfs3,\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.filesystemStorage.createFilesystem({\n data: {\n type: \"filesystems\",\n attributes: {\n project: \"proj_lkg1De6ROvZE5\",\n name: \"my-data\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List filesystems", "operationId": "list-filesystems", "tags": ["Filesystem Storage"], "security": [{"Bearer":[]}], "description": "Lists all the filesystems from a team.", "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","examples":{"Success":{"value":"small-rubber-shirt"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/list-filesystems"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/filesystems"},"examples":{"Success":{"value":{"data":[{"id":"fs_6059EqYkOQj8p","type":"filesystems","attributes":{"name":"Intelligent Bronze Bench","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.743Z","project":{"id":"proj_695BdKNeOevVo","name":"Synergistic Bronze Wallet","slug":"synergistic-bronze-wallet","description":"Mediocre Bronze Computer","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"601 Team","slug":"601-team","description":"601 Team","address":"20590 Deckow Divide, Lake Boris, NC 87947","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}, {"id":"fs_6VE1Wd37dXnZJ","type":"filesystems","attributes":{"name":"Gorgeous Rubber Bench","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.758Z","project":{"id":"proj_yQrJdNm5O30gv","name":"Heavy Duty Copper Clock","slug":"heavy-duty-copper-clock","description":"Small Aluminum Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"601 Team","slug":"601-team","description":"601 Team","address":"20590 Deckow Divide, Lake Boris, NC 87947","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}}}}}}, "x-speakeasy-name-override": "listFilesystems", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.filesystem_storage.list_filesystems(filter_project=\"small-rubber-shirt\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.FilesystemStorage.ListFilesystems(ctx, latitudeshgosdk.Pointer(\"small-rubber-shirt\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.Filesystems != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.filesystemStorage.listFilesystems({\n filterProject: \"small-rubber-shirt\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/filesystems/{filesystem_id}": { "delete": { "summary": "Delete filesystem", "operationId": "delete-filesystem", "tags": ["Filesystem Storage"], "security": [{"Bearer":[]}], "parameters": [{"name":"filesystem_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Allows you to remove a filesystem from a project.", "x-mint": {"href":"/api-reference/delete-filesystem"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "deleteFilesystem", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.filesystem_storage.delete_filesystem(filesystem_id=\"fs_123\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.FilesystemStorage.DeleteFilesystem(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.filesystemStorage.deleteFilesystem({\n filesystemId: \"\",\n });\n\n\n}\n\nrun();" } ] }, "patch": { "summary": "Update filesystem", "operationId": "update-filesystem", "tags": ["Filesystem Storage"], "security": [{"Bearer":[]}], "parameters": [{"name":"filesystem_id","in":"path","required":true,"examples":{"Success":{"value":"fs_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}], "description": "Allow you to upgrade the size of a filesystem.", "x-mint": {"href":"/api-reference/update-filesystem"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"name":"Lightweight Aluminum Computer","size_in_gb":1501,"created_at":"2026-01-14T15:57:08.000Z","project":{"id":"proj_1R3zq2VvqWxyn","name":"Enormous Iron Plate","slug":"enormous-iron-plate","description":"Durable Wooden Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_6RZQo811RrT97mgazl8wf1Ryxxo","name":"606 Team","slug":"606-team","description":"606 Team","address":"Apt. 122 58068 Bibi Prairie, Ardithport, NH 77015-2685","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/filesystem_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Filesystem ID"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":20480,"description":"Size in GB (not required, default is 1500)"}},"required":["size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"size_in_gb":1501}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Filesystem ID"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":20480,"description":"Size in GB (not required, default is 1500)"}},"required":["size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"size_in_gb":1501}}}}}}},"required":true}, "x-speakeasy-name-override": "updateFilesystem", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.filesystem_storage.update_filesystem(filesystem_id=\"fs_7vYAZqGBdMQ94\", data={\n \"id\": \"fs_7vYAZqGBdMQ94\",\n \"type\": latitudesh_python_sdk.PatchStorageFilesystemsFilesystemStorageType.FILESYSTEMS,\n \"attributes\": {\n \"size_in_gb\": 1501,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.FilesystemStorage.UpdateFilesystem(ctx, \"fs_7vYAZqGBdMQ94\", operations.UpdateFilesystemFilesystemStorageRequestBody{\n Data: operations.UpdateFilesystemFilesystemStorageData{\n ID: latitudeshgosdk.Pointer(\"fs_7vYAZqGBdMQ94\"),\n Type: operations.UpdateFilesystemFilesystemStorageTypeFilesystems,\n Attributes: operations.UpdateFilesystemFilesystemStorageAttributes{\n SizeInGb: 1501,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.filesystemStorage.updateFilesystem({\n filesystemId: \"fs_7vYAZqGBdMQ94\",\n requestBody: {\n data: {\n id: \"fs_7vYAZqGBdMQ94\",\n type: \"filesystems\",\n attributes: {\n sizeInGb: 1501,\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/volumes": { "post": { "summary": "Create volume", "operationId": "create-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "parameters": [], "description": "Allows you to add persistent storage to a project. These volumes can be used to store data across your servers.", "x-mint": {"href":"/api-reference/create-volume"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vol_Av9BVDavORm1W","type":"volumes","attributes":{"name":"Rustic Aluminum Shoes","size_in_gb":1500,"created_at":"2026-01-14T15:57:08.000Z","namespace_id":null,"connector_id":null,"initiators":null,"project":{"id":"proj_enPbqoZ6dA2MQ","name":"Mediocre Aluminum Car","slug":"mediocre-aluminum-car","description":"Rustic Linen Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_geEQyBL2bJiVpXJgmw1YTgneKVb","name":"609 Team","slug":"609-team","description":"609 Team","address":"Apt. 590 415 Kirlin Pass, South Trenton, MT 96944","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Volume name"},"region":{"type":"string","description":"Region (site) slug where the volume is provisioned"},"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB"}},"required":["project","name","region","size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"volumes","attributes":{"name":"my-data","size_in_gb":1500,"region":"DAL","project":"proj_enPbqoZ6dA2MQ"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Volume name"},"region":{"type":"string","description":"Region (site) slug where the volume is provisioned"},"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB"}},"required":["project","name","region","size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"volumes","attributes":{"name":"my-data","size_in_gb":1500,"region":"DAL","project":"proj_enPbqoZ6dA2MQ"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.block_storage.create_volume(data={\n \"type\": latitudesh_python_sdk.CreateVolumeBlockStorageType.VOLUMES,\n \"attributes\": {\n \"project\": \"proj_enPbqoZ6dA2MQ\",\n \"name\": \"my-data\",\n \"region\": \"DAL\",\n \"size_in_gb\": 1500,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.CreateVolume(ctx, operations.CreateVolumeBlockStorageRequestBody{\n Data: operations.CreateVolumeBlockStorageData{\n Type: operations.CreateVolumeBlockStorageTypeVolumes,\n Attributes: operations.CreateVolumeBlockStorageAttributes{\n Project: \"proj_enPbqoZ6dA2MQ\",\n Name: \"my-data\",\n Region: \"DAL\",\n SizeInGb: 1500,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.blockStorage.createVolume({\n data: {\n type: \"volumes\",\n attributes: {\n project: \"proj_enPbqoZ6dA2MQ\",\n name: \"my-data\",\n region: \"DAL\",\n sizeInGb: 1500,\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List volumes", "operationId": "list-volumes", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "description": "Lists all the volumes from a team.", "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","examples":{"Success":{"value":"proj_WeGoqA5AqP7nz"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/list-volumes"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vol_RLYV8DZ2D5QoE","type":"volumes","attributes":{"name":"Incredible Paper Computer","size_in_gb":1500,"created_at":"2026-01-14T14:57:08.628Z","namespace_id":"1","connector_id":"nqn.2001-07.com.latitudesh:1757602476548","initiators":[{"nqn":"nqn.2014-08.org.nvmexpress:uuid:ae717767-c0fa-56f7-ab4b-5c426b0c553f"}],"region":{"city":"London 1","country":"United Kingdom 1","site":{"id":"loc_ROlWJ8XlqNkzr","name":"London 1","slug":"LON","facility":"London 1"}},"project":{"id":"proj_WeGoqA5AqP7nz","name":"Gorgeous Concrete Clock","slug":"gorgeous-concrete-clock","description":"Small Wooden Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_nYRYZR4lwzSJpMxzmrnKSe8P79E","name":"614 Team","slug":"614-team","description":"614 Team","address":"Suite 444 21815 Angel Falls, North Jarvis, LA 68902","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/volume_data"}}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.block_storage.list_volumes(filter_project=\"proj_WeGoqA5AqP7nz\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.ListVolumes(ctx, latitudeshgosdk.Pointer(\"proj_WeGoqA5AqP7nz\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.blockStorage.listVolumes({\n filterProject: \"proj_WeGoqA5AqP7nz\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/volumes/{id}": { "delete": { "summary": "Delete volume", "operationId": "delete-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Allows you to remove a volume from a project.", "x-mint": {"href":"/api-reference/delete-volume"}, "responses": {"204":{"description":"No Content"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.block_storage.delete_volume(id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.DeleteVolume(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.blockStorage.deleteVolume({\n id: \"\",\n });\n\n\n}\n\nrun();" } ] }, "get": { "summary": "Retrieve volume", "operationId": "retrieve-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "description": "Shows details of a specific volume.", "parameters": [{"name":"id","in":"path","required":true,"description":"The volume ID","examples":{"Success":{"value":"vol_aKXgRdR3qv9k5"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/retrieve-volume"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vol_aKXgRdR3qv9k5","type":"volumes","attributes":{"name":"Synergistic Concrete Shoes","size_in_gb":1500,"created_at":"2026-01-14T14:57:09.251Z","namespace_id":"1","connector_id":"nqn.2001-07.com.latitudesh:1757602476548","initiators":[{"nqn":"nqn.2014-08.org.nvmexpress:uuid:ae717767-c0fa-56f7-ab4b-5c426b0c553f"}],"region":{"city":"London 1","country":"United Kingdom 1","site":{"id":"loc_ROlWJ8XlqNkzr","name":"London 1","slug":"LON","facility":"London 1"}},"project":{"id":"proj_5AEmq7XyDBkWX","name":"Sleek Wool Computer","slug":"sleek-wool-computer","description":"Awesome Marble Wallet","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_2KyxrrLkeRtKVLNKv5yNhMWXPnyw","name":"623 Team","slug":"623-team","description":"623 Team","address":"Apt. 955 6672 Otto Mountain, Phillipfurt, CA 84225","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.block_storage.retrieve_volume(id=\"vol_aKXgRdR3qv9k5\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.RetrieveVolume(ctx, \"vol_aKXgRdR3qv9k5\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.blockStorage.retrieveVolume({\n id: \"vol_aKXgRdR3qv9k5\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update volume", "operationId": "update-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "description": "Increases the size of a high performance volume. Shrinking is not supported. Billing is prorated to the new size.", "parameters": [{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/update-volume"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"},"meta":{"type":"object"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":20480,"description":"New size in GB. Must be larger than the current size."}},"required":["size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":20480,"description":"New size in GB. Must be larger than the current size."}},"required":["size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]}}},"required":true}, "x-codeSamples": [ { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.UpdateVolume(ctx, \"\", operations.UpdateVolumeBlockStorageRequestBody{\n Data: operations.UpdateVolumeBlockStorageData{\n Type: operations.UpdateVolumeBlockStorageTypeVolumes,\n Attributes: operations.UpdateVolumeBlockStorageAttributes{\n SizeInGb: 873925,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" } ] } }, "/storage/volumes/{id}/mount": {"post":{"summary":"Mount volume (deprecated)","operationId":"mount-volume","tags":["Block Storage"],"deprecated":true,"security":[{"Bearer":[]}],"description":"Mounts a volume by adding the client to an allowed list","parameters":[{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/mount-volume"},"responses":{"204":{"description":"No Content"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"nqn":{"type":"string","description":"NVMe Qualified Name (NQN) of the client/server that will access the volume. Format: nqn.YYYY-MM.domain:identifier (e.g., \"nqn.2024-01.com.example:server01\"). This uniquely identifies the NVMe client and must be configured on the client server.","example":"nqn.2024-01.com.example:server01"}},"required":["nqn"]}},"required":["type","attributes"]}},"required":["data"]}}},"required":true}}}, "/storage/volumes/{id}/map": {"post":{ "summary": "Map volume", "operationId": "map-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "description": "Maps a high performance volume to a server over NVMe-TCP.", "parameters": [{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/map-volume"}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"},"meta":{"type":"object"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"ID of the server that will access the volume. The server must belong to the same project and location as the volume, and must be eligible for bonding.","example":"sv_abcd1234"}},"required":["server_id"]}},"required":["type","attributes"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"ID of the server that will access the volume. The server must belong to the same project and location as the volume, and must be eligible for bonding.","example":"sv_abcd1234"}},"required":["server_id"]}},"required":["type","attributes"]}},"required":["data"]}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.block_storage.map_volume(id=\"\", data={\n \"type\": latitudesh_python_sdk.MapVolumeBlockStorageType.VOLUMES,\n \"attributes\": {\n \"server_id\": \"sv_abcd1234\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.MapVolume(ctx, \"\", operations.MapVolumeBlockStorageRequestBody{\n Data: operations.MapVolumeBlockStorageData{\n Type: operations.MapVolumeBlockStorageTypeVolumes,\n Attributes: operations.MapVolumeBlockStorageAttributes{\n ServerID: \"sv_abcd1234\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.blockStorage.mapVolume({\n id: \"\",\n requestBody: {\n data: {\n type: \"volumes\",\n attributes: {\n serverId: \"sv_abcd1234\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/storage/volumes/{id}/unmap": {"post":{ "summary": "Unmap volume", "operationId": "unmap-volume", "tags": ["Block Storage"], "security": [{"Bearer":[]}], "description": "Unmaps a high performance volume from the server it is currently mapped to.", "parameters": [{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/unmap-volume"}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"},"meta":{"type":"object"}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.block_storage.unmap_volume(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.BlockStorage.UnmapVolume(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.blockStorage.unmapVolume({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/storage/access_keys": { "post": { "summary": "Create access key", "operationId": "post-storage-access-keys", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Creates an object storage IAM access key for a project. The secret is returned only once, in this response, and cannot be retrieved again. The provider is selected by `storage_class`: `standard` provisions the key on Wasabi and `high_performance` provisions it on VAST.", "x-mint": {"href":"/api-reference/post-storage-access-keys"}, "requestBody": {"required":true,"content":{"application/vnd.api+json":{ "schema": {"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["access_keys"]},"attributes":{"type":"object","required":["project","storage_class","name","access_scope","region"],"properties":{ "project": {"type":"string","description":"Project ID or slug the access key belongs to."}, "storage_class": { "type": "string", "enum": ["standard","high_performance"], "description": "Backend storage tier. `standard` provisions the key on Wasabi; `high_performance` provisions it on VAST.", "x-speakeasy-name-override": "AccessKeyStorageClass" }, "name": {"type":"string","description":"Name for the access key. Normalized server-side (lowercased, with special characters replaced by hyphens)."}, "access_scope": {"type":"string","enum":["fullaccess","limited_access"],"description":"`fullaccess` grants access to all of the project's buckets. `limited_access` restricts the key to the buckets listed in `bucket_permissions`."}, "region": {"type":"string","description":"Region slug (e.g., `DAL`, `SAO2`). Selects the VAST cluster for `high_performance` storage. Required for all requests."}, "bucket_permissions": {"type":"array","description":"Per-bucket permissions. Required when `access_scope` is `limited_access`; ignored for `fullaccess`.","items":{"type":"object","required":["bucket_id","permission"],"properties":{"bucket_id":{"type":"string","description":"Bucket (object storage) ID to grant access to."},"permission":{"type":"string","enum":["readonly","rw"],"description":"`readonly` grants read-only access; `rw` grants read and write access."}}}} }}}}}}, "examples": {"FullAccess":{"summary":"Full access key (standard / Wasabi)","value":{"data":{"type":"access_keys","attributes":{"project":"proj_6059EqYkOQj8p","storage_class":"standard","name":"my-access-key","access_scope":"fullaccess","region":"DAL"}}}},"LimitedAccess":{"summary":"Limited access key with per-bucket permissions","value":{"data":{"type":"access_keys","attributes":{"project":"proj_6059EqYkOQj8p","storage_class":"standard","name":"my-limited-key","access_scope":"limited_access","region":"DAL","bucket_permissions":[{"bucket_id":"bkt_6VE1Wd37dXnZJ","permission":"readonly"}, {"bucket_id":"bkt_7WF2Xe48eYoAK","permission":"rw"}]}}}}} }}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"summary":"Standard (Wasabi) access key","value":{"data":{"type":"access_keys","attributes":{"access_key":{"access_key_id":"AKIA123456789","secret_access_key":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY","name":"my-access-key","status":"Active","username":"user+my-access-key@example.com"}}}}}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["access_keys"]},"attributes":{"type":"object","properties":{"access_key":{"type":"object","description":"The newly created access key. The secret is included only in this create response and cannot be retrieved again. Field names depend on the provider: `standard` (Wasabi) returns `access_key_id` and `secret_access_key`; `high_performance` (VAST) returns `access_key` and `secret_key`.","properties":{"access_key_id":{"type":"string","description":"Access key ID (standard / Wasabi)."},"secret_access_key":{"type":"string","description":"Secret access key (standard / Wasabi). Returned only once."},"access_key":{"type":"string","description":"Access key ID (high_performance / VAST)."},"secret_key":{"type":"string","description":"Secret key (high_performance / VAST). Returned only once."},"name":{"type":"string","description":"Access key name."},"status":{"type":"string","description":"Access key status (e.g., `Active`)."},"username":{"type":"string","description":"Underlying IAM user the key belongs to."}}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}},"StorageResourceNotFound":{"value":{"errors":[{"code":"STORAGE_RESOURCE_NOT_FOUND","title":"Storage Resource Not Found","detail":"Storage resource not found.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"bucket_permissions is required when access_scope is limited_access","meta":{},"status":"422"}]}},"InvalidRegion":{"value":{"errors":[{"code":"INVALID_REGION","title":"Invalid region","detail":"We could not find the region you specified.","meta":{},"status":"422"}]}},"MissingWasabiStorage":{"value":{"errors":[{"code":"MISSING_WASABI_STORAGE","title":"Missing Wasabi Storage","detail":"The project does not have a Wasabi object storage configured.","meta":{},"status":"422"}]}},"InvalidBucketId":{"value":{"errors":[{"code":"INVALID_BUCKET_ID","title":"Invalid Bucket ID","detail":"One or more bucket IDs are invalid or do not belong to this project.","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.post_storage_access_keys(data={\n \"type\": latitudesh_python_sdk.PostStorageAccessKeysType.ACCESS_KEYS,\n \"attributes\": {\n \"project\": \"proj_6059EqYkOQj8p\",\n \"storage_class\": latitudesh_python_sdk.PostStorageAccessKeysStorageClass.STANDARD,\n \"name\": \"my-access-key\",\n \"access_scope\": latitudesh_python_sdk.AccessScope.FULLACCESS,\n \"region\": \"DAL\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.PostStorageAccessKeys(ctx, operations.PostStorageAccessKeysRequestBody{\n Data: operations.PostStorageAccessKeysData{\n Type: operations.PostStorageAccessKeysTypeAccessKeys,\n Attributes: operations.PostStorageAccessKeysAttributes{\n Project: \"proj_6059EqYkOQj8p\",\n AccessKeyStorageClass: operations.AccessKeyStorageClassStandard,\n Name: \"my-access-key\",\n AccessScope: operations.AccessScopeFullaccess,\n Region: \"DAL\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.postStorageAccessKeys({\n data: {\n type: \"access_keys\",\n attributes: {\n project: \"proj_6059EqYkOQj8p\",\n accessKeyStorageClass: \"standard\",\n name: \"my-access-key\",\n accessScope: \"fullaccess\",\n region: \"DAL\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List access keys", "operationId": "get-storage-access-keys", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Lists object storage access keys for a project, grouped by storage class. Secrets are never returned by this endpoint.", "parameters": [{"name":"project","in":"query","required":true,"description":"Project ID or slug to list access keys for.","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-access-keys"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"standard":[{"name":"key1","username":"user+key1@example.com","access_key_id":"AKIA123456789","status":"Active","created_at":"2024-01-01T00:00:00Z","region":null}],"high_performance":[{"name":"key2","username":"tenant-2500-key2","access_key_id":"VAST_AKID123","status":"Active","created_at":"2024-01-01T00:00:00Z","region":"DAL"}]}}}},"schema":{"type":"object","properties":{"data":{"type":"object","description":"Access keys grouped by storage class.","properties":{"standard":{"type":"array","description":"Wasabi (standard) access keys.","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"region":{"type":"string","nullable":true}}}},"high_performance":{"type":"array","description":"VAST (high_performance) access keys, across all regions.","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"region":{"type":"string"}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_access_keys(project=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageAccessKeys(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageAccessKeys({\n project: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/access_keys/{username}/{storage_class}": {"delete":{ "summary": "Delete access key", "operationId": "delete-storage-access-keys-username", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Permanently deletes an object storage access key and its associated provider-side credentials. Deletion cannot be undone: it revokes the key's credentials and removes the key from the storage provider. For `standard` (Wasabi) keys, the IAM user is removed from each of the project's bucket policies, all of the user's access keys are revoked, and the IAM user is deleted. For `high_performance` (VAST) keys, the VAST user's S3 keys are revoked, its attached S3 policies are deleted, and the VAST user is removed.", "x-mint": {"href":"/api-reference/delete-storage-access-keys-username"}, "parameters": [{"name":"username","in":"path","required":true,"description":"Name of the access key to delete.","schema":{"type":"string"}}, {"name":"storage_class","in":"path","required":true,"description":"Backend storage tier of the access key. `standard` targets Wasabi; `high_performance` targets VAST.","schema":{"type":"string","enum":["standard","high_performance"]}}, {"name":"project","in":"query","required":true,"description":"Project ID or slug the access key belongs to.","schema":{"type":"string"}}, {"name":"region","in":"query","required":false,"description":"Region slug (e.g., `DAL`, `SAO2`). Required for `high_performance` (VAST) keys to select the VAST cluster; ignored for `standard` (Wasabi) keys.","schema":{"type":"string"}}], "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"AccessKeyNotFound":{"value":{"errors":[{"code":"ACCESS_KEY_NOT_FOUND","title":"Access Key Not Found","detail":"The access key could not be found.","meta":{},"status":"404"}]}},"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.object_storage.delete_storage_access_keys_username(username=\"Earline_Dooley27\", storage_class=latitudesh_python_sdk.PathParamStorageClass.HIGH_PERFORMANCE, project=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.DeleteStorageAccessKeysUsername(ctx, \"Earline_Dooley27\", operations.PathParamStorageClassHighPerformance, \"\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.objectStorage.deleteStorageAccessKeysUsername({\n username: \"Earline_Dooley27\",\n storageClass: \"high_performance\",\n project: \"\",\n });\n\n\n}\n\nrun();" } ] }}, "/storage/buckets/{id}/access_keys": {"get":{ "summary": "List bucket access keys", "operationId": "get-storage-bucket-access-keys", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Lists IAM access keys associated with an object storage bucket. Secrets are never returned by this endpoint.", "parameters": [{"name":"id","in":"path","required":true,"description":"The object storage (bucket) ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-bucket-access-keys"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"name":"key1","username":"testuser+key1@example.com","access_key_id":"AKIA123456789","status":"Active","created_at":"2024-01-01T00:00:00Z","access":"fullaccess"}]}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"access":{"type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_bucket_access_keys(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBucketAccessKeys(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBucketAccessKeys({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/storage/buckets": { "get": { "summary": "List buckets", "operationId": "get-storage-buckets", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Lists all object storages from a team.", "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-buckets"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bkt_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket-storage","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T10:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"source":"default","region":{"id":"SAO2","city":"SAO2","country":"Brazil"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}]}}},"schema":{"$ref":"#/components/schemas/object_storages"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_buckets()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBuckets(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.ObjectStorages != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBuckets();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create bucket", "operationId": "post-storage-buckets", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Creates a new object storage bucket for a project.", "x-mint": {"href":"/api-reference/post-storage-buckets"}, "requestBody": {"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["objects"]},"attributes":{"type":"object","required":["project","name","region"],"properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Object storage name. Cannot contain special characters or spaces."},"region":{"type":"string","description":"Site slug representing the region (e.g., DAL, SAO2)"},"scoped":{"type":"boolean","description":"Whether to create a scoped storage bucket. When true, the bucket is isolated to a specific customer context. Defaults to false.","default":false},"customer":{"type":"string","description":"Customer identifier for scoped storage. Used when `scoped` is true to create customer-specific bucket isolation."},"storage_class":{"type":"string","enum":["standard","high_performance"],"default":"standard","description":"Backend storage tier. `standard` is the default S3-compatible tier. `high_performance` is a lower-latency, higher-throughput tier available in select regions only."},"versioning":{"type":"boolean","default":false,"description":"Enable S3 object versioning. Versioning can be suspended later unless Object Lock is enabled; enabling Object Lock requires versioning and prevents versioning from being suspended."},"locking":{"type":"boolean","default":false,"description":"Enable S3 Object Lock (WORM). Must be enabled at bucket creation; cannot be added to an existing bucket. When `locking` is `true`, `versioning` is automatically enabled."},"retention_mode":{"type":"string","enum":["NONE","COMPLIANCE","GOVERNANCE"],"default":"NONE","description":"Object Lock retention mode applied to new objects. `GOVERNANCE` allows privileged users to override the retention; `COMPLIANCE` cannot be overridden by anyone. Only applies when `locking` is `true`."},"retention_period":{"type":"integer","format":"int64","nullable":true,"description":"Default retention period, in days, applied to new objects when Object Lock is enabled. Only applies when `locking` is `true`."}}}}}}},"examples":{"Create":{"summary":"Create object storage","value":{"data":{"type":"objects","attributes":{"project":"proj_6059EqYkOQj8p","name":"my-bucket","region":"DAL"}}}},"CreateScoped":{"summary":"Create scoped object storage","value":{"data":{"type":"objects","attributes":{"project":"proj_6059EqYkOQj8p","name":"customer-bucket","region":"DAL","scoped":true,"customer":"acme-corp"}}}}}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"bkt_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T15:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"region":{"id":"DAL","city":"DAL","country":"United States"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/object_storage_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create object storage for.","meta":{},"status":"404"}]}},"InvalidRegion":{"value":{"errors":[{"code":"INVALID_REGION","title":"Invalid region","detail":"We could not find the region you specified.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"examples":{"AlreadyExists":{"value":{"errors":[{"code":"STORAGE_CONFLICT","title":"Storage Resource Conflict","detail":"Object storage already exists.","meta":{},"status":"409"}]}},"BucketNameTaken":{"value":{"errors":[{"code":"BUCKET_NAME_TAKEN","title":"Bucket Name Taken","detail":"Bucket name is already in use. Choose a different name.","meta":{},"status":"409"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"name cannot contain special chars or spaces","meta":{},"status":"422"}]}},"LocationUnavailable":{"value":{"errors":[{"code":"LOCATION_UNAVAILABLE","title":"Location not available","detail":"Location 'DAL' is not available for high_performance object storage.","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"SetupError":{"value":{"errors":[{"code":"OBJECT_STORAGE_SETUP_ERROR","title":"Object storage setup error","detail":"Failed to provision object storage infrastructure","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.post_storage_buckets(data={\n \"type\": latitudesh_python_sdk.PostStorageBucketsType.OBJECTS,\n \"attributes\": {\n \"project\": \"proj_6059EqYkOQj8p\",\n \"name\": \"my-bucket\",\n \"region\": \"DAL\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.PostStorageBuckets(ctx, operations.PostStorageBucketsRequestBody{\n Data: operations.PostStorageBucketsData{\n Type: operations.PostStorageBucketsTypeObjects,\n Attributes: operations.PostStorageBucketsAttributes{\n Project: \"proj_6059EqYkOQj8p\",\n Name: \"my-bucket\",\n Region: \"DAL\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.postStorageBuckets({\n data: {\n type: \"objects\",\n attributes: {\n project: \"proj_6059EqYkOQj8p\",\n name: \"my-bucket\",\n region: \"DAL\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/buckets/{id}": { "get": { "summary": "Retrieve bucket", "operationId": "get-storage-bucket", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Shows details of a specific object storage.", "parameters": [{"name":"id","in":"path","required":true,"description":"The object storage ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-bucket"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bkt_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket-storage","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T10:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"source":"default","region":{"id":"SAO2","city":"SAO2","country":"Brazil"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/object_storage_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_bucket(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBucket(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBucket({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete bucket", "operationId": "delete-storage-buckets", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The object storage ID","schema":{"type":"string"}}], "description": "Allows you to remove an object storage from a project.", "x-mint": {"href":"/api-reference/delete-storage-buckets"}, "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"examples":{"BucketNotEmpty":{"value":{"errors":[{"code":"STORAGE_BUCKET_NOT_EMPTY","title":"Bucket Not Empty","detail":"Bucket is not empty. Delete all objects (including all versions and delete markers) before deleting the bucket.","meta":{},"status":"409"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"BucketDeletionError":{"value":{"errors":[{"code":"BUCKET_DELETION_ERROR","title":"Bucket deletion error","detail":"We had a problem cleaning up your bucket.","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.object_storage.delete_storage_buckets(id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.DeleteStorageBuckets(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.objectStorage.deleteStorageBuckets({\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/storage/buckets/{bucket_id}/lifecycle_rules": { "get": { "summary": "List lifecycle rules", "operationId": "get-storage-bucket-lifecycle-rules", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Lists all lifecycle rules for a specific object storage bucket.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-bucket-lifecycle-rules"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}, {"id":"lifecycle_9Pk3Xe49eYoAK","type":"lifecycle_rules","attributes":{"name":"cleanup-temp-files","enabled":true,"prefix":"temp/","expiration_days":7,"noncurrent_days":14,"abort_mpu_days_after_initiation":7}}]}}},"schema":{"$ref":"#/components/schemas/lifecycle_rules"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_bucket_lifecycle_rules(bucket_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBucketLifecycleRules(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.LifecycleRules != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBucketLifecycleRules({\n bucketId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create lifecycle rule", "operationId": "post-storage-bucket-lifecycle-rules", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Creates a new lifecycle rule for an object storage bucket. Lifecycle rules automate object expiration based on age.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/post-storage-bucket-lifecycle-rules"}, "requestBody": {"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","required":["name","expiration_days"],"properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is active. Defaults to true if not specified.","default":true},"prefix":{"type":"string","nullable":true,"description":"Object key prefix to filter which objects the rule applies to. If not specified, the rule applies to all objects in the bucket."},"expiration_days":{"type":"integer","minimum":1,"description":"Number of days after object creation when the object expires and is automatically deleted"},"noncurrent_days":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after which noncurrent object versions expire (for versioned buckets)"},"abort_mpu_days_after_initiation":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}}}},"examples":{"Create":{"summary":"Create a basic lifecycle rule","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30}}}},"CreateWithAllOptions":{"summary":"Create a lifecycle rule with all options","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"full-cleanup-rule","enabled":true,"prefix":"temp/","expiration_days":30,"noncurrent_days":14,"abort_mpu_days_after_initiation":7}}}}}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"expiration_days must be greater than 0","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"CreateError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_CREATE_ERROR","title":"Lifecycle rule creation error","detail":"Failed to create lifecycle rule on storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.post_storage_bucket_lifecycle_rules(bucket_id=\"\", data={\n \"type\": latitudesh_python_sdk.PostStorageBucketLifecycleRulesType.LIFECYCLE_RULES,\n \"attributes\": {\n \"name\": \"delete-old-logs\",\n \"prefix\": \"logs/\",\n \"expiration_days\": 30,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.PostStorageBucketLifecycleRules(ctx, \"\", operations.PostStorageBucketLifecycleRulesRequestBody{\n Data: operations.PostStorageBucketLifecycleRulesData{\n Type: operations.PostStorageBucketLifecycleRulesTypeLifecycleRules,\n Attributes: operations.PostStorageBucketLifecycleRulesAttributes{\n Name: \"delete-old-logs\",\n Prefix: latitudeshgosdk.Pointer(\"logs/\"),\n ExpirationDays: 30,\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.postStorageBucketLifecycleRules({\n bucketId: \"\",\n requestBody: {\n data: {\n type: \"lifecycle_rules\",\n attributes: {\n name: \"delete-old-logs\",\n prefix: \"logs/\",\n expirationDays: 30,\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/storage/buckets/{bucket_id}/lifecycle_rules/{id}": { "get": { "summary": "Retrieve lifecycle rule", "operationId": "get-storage-bucket-lifecycle-rule", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Retrieves details of a specific lifecycle rule.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-bucket-lifecycle-rule"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_bucket_lifecycle_rule(bucket_id=\"\", id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBucketLifecycleRule(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBucketLifecycleRule({\n bucketId: \"\",\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update lifecycle rule", "operationId": "patch-storage-bucket-lifecycle-rule", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Updates an existing lifecycle rule for an object storage bucket.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/patch-storage-bucket-lifecycle-rule"}, "requestBody": {"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is active"},"prefix":{"type":"string","nullable":true,"description":"Object key prefix to filter which objects the rule applies to"},"expiration_days":{"type":"integer","minimum":1,"description":"Number of days after object creation when the object expires"},"noncurrent_days":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after which noncurrent object versions expire"},"abort_mpu_days_after_initiation":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}}}},"examples":{"Update":{"summary":"Update lifecycle rule","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":false,"expiration_days":60}}}}}}}}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":false,"prefix":"logs/","expiration_days":60,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"expiration_days must be greater than 0","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"UpdateError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_UPDATE_ERROR","title":"Lifecycle rule update error","detail":"Failed to update lifecycle rule on storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.patch_storage_bucket_lifecycle_rule(bucket_id=\"\", id=\"\", data={\n \"type\": latitudesh_python_sdk.PatchStorageBucketLifecycleRuleType.LIFECYCLE_RULES,\n \"attributes\": {\n \"name\": \"delete-old-logs\",\n \"enabled\": False,\n \"expiration_days\": 60,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.PatchStorageBucketLifecycleRule(ctx, \"\", \"\", operations.PatchStorageBucketLifecycleRuleRequestBody{\n Data: operations.PatchStorageBucketLifecycleRuleData{\n Type: operations.PatchStorageBucketLifecycleRuleTypeLifecycleRules,\n Attributes: operations.PatchStorageBucketLifecycleRuleAttributes{\n Name: \"delete-old-logs\",\n Enabled: latitudeshgosdk.Pointer(false),\n ExpirationDays: latitudeshgosdk.Pointer[int64](60),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.patchStorageBucketLifecycleRule({\n bucketId: \"\",\n id: \"\",\n requestBody: {\n data: {\n type: \"lifecycle_rules\",\n attributes: {\n name: \"delete-old-logs\",\n enabled: false,\n expirationDays: 60,\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete lifecycle rule", "operationId": "delete-storage-bucket-lifecycle-rule", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Deletes a lifecycle rule from an object storage bucket.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/delete-storage-bucket-lifecycle-rule"}, "responses": {"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"DeleteError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_DESTROY_ERROR","title":"Lifecycle rule deletion error","detail":"Failed to delete lifecycle rule from storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.object_storage.delete_storage_bucket_lifecycle_rule(bucket_id=\"\", id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.DeleteStorageBucketLifecycleRule(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.objectStorage.deleteStorageBucketLifecycleRule({\n bucketId: \"\",\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/storage/buckets/{bucket_id}/metrics": {"get":{ "summary": "Retrieve bucket metrics", "operationId": "get-storage-bucket-metrics", "tags": ["Object Storage"], "security": [{"Bearer":[]}], "description": "Retrieves usage metrics for a specific object storage bucket, including storage consumption and estimated cost for the current billing period.", "parameters": [{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-storage-bucket-metrics"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bkt_6VE1Wd37dXnZJ","type":"object_storage_metrics","attributes":{"period":{"start":"2026-05-01T00:00:00Z","end":"2026-06-01T00:00:00Z"},"storage":{"consumed":4096,"current":3900,"unit":"GB"},"estimated_cost":{"amount":250,"currency":"BRL"}}}}}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The bucket ID"},"type":{"type":"string","enum":["object_storage_metrics"]},"attributes":{"type":"object","properties":{"period":{"type":"object","description":"The current billing period","properties":{"start":{"type":"string","format":"date-time","nullable":true,"description":"Start of the billing period in ISO 8601 format"},"end":{"type":"string","format":"date-time","nullable":true,"description":"End of the billing period in ISO 8601 format"}}},"storage":{"type":"object","description":"Storage consumption metrics","properties":{"consumed":{"type":"integer","description":"Billed storage usage for the current period"},"current":{"type":"integer","description":"Latest recorded storage usage (last datapoint)"},"unit":{"type":"string","enum":["GB"],"description":"Unit of measurement for storage"}}},"estimated_cost":{"type":"object","description":"Estimated cost for the current billing period","properties":{"amount":{"type":"number","description":"Estimated cost amount"},"currency":{"type":"string","description":"Currency code (e.g., USD, BRL)"}}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.object_storage.get_storage_bucket_metrics(bucket_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ObjectStorage.GetStorageBucketMetrics(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.objectStorage.getStorageBucketMetrics({\n bucketId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/tags": { "get": { "summary": "List tags", "operationId": "get-tags", "tags": ["Tags"], "security": [{"Bearer":[]}], "description": "List all Tags in the team.\n", "x-mint": {"href":"/api-reference/get-tags"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"tag_br3pyBM8YeIyBQGR0rbocVrmJnE","type":"tags","attributes":{"name":"Angrod","slug":"angrod","description":"Dolorem vel distinctio et.","color":"#141515","team":{"id":"team_RPp3R8oZyjSAGGP7oeMEsR8yPNgo","name":"627 Team","slug":"627-team","description":"627 Team","address":"977 Julietta Views, West Ocie, KS 10398-1982","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}},"schema":{"$ref":"#/components/schemas/custom_tags"}}}}}, "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.tags.list()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Tags.List(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.CustomTags != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.tags.list();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create tag", "operationId": "create-tag", "tags": ["Tags"], "security": [{"Bearer":[]}], "parameters": [], "description": "Create a Tag in the team.\n", "x-mint": {"href":"/api-reference/create-tag"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"tag_Rz8Ka32gLoUAZJYxkMrxiR8j9Ppa","type":"tags","attributes":{"name":"Tag Name","slug":"tag-name","description":"Tag Description","color":"#bebebe","team":{"id":"team_P5gz2MnmXoT4JXGwobmvf8bVoV3","name":"628 Team","slug":"628-team","description":"628 Team","address":"300 Jacqueline Village, Lake Shaunmouth, NH 56746","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"$ref":"#/components/schemas/custom_tag"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"NameAlreadyTaken":{"value":{"errors":[{"code":"NAME_ALREADY_TAKEN","detail":"is already taken","source":{"pointer":"/data/attributes/name"}}]}},"NameTooSimilar":{"value":{"errors":[{"code":"NAME_TOO_SIMILAR","detail":"is too similar to an existing tag name","source":{"pointer":"/data/attributes/name"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}},"required":["name","color"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"tags","attributes":{"name":"Tag Name","description":"Tag Description","color":"#bebebe"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"tags","attributes":{"name":"Tag Name","description":"Tag Description","color":"#bebebe"}}}}}}},"required":true}, "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.tags.create(data={\n \"type\": latitudesh_python_sdk.CreateTagTagsType.TAGS,\n \"attributes\": {\n \"name\": \"Tag Name\",\n \"description\": \"Tag Description\",\n \"color\": \"#bebebe\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Tags.Create(ctx, operations.CreateTagTagsRequestBody{\n Data: &operations.CreateTagTagsData{\n Type: operations.CreateTagTagsTypeTags.ToPointer(),\n Attributes: &operations.CreateTagTagsAttributes{\n Name: \"Tag Name\",\n Description: latitudeshgosdk.Pointer(\"Tag Description\"),\n Color: \"#bebebe\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.CustomTag != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.tags.create({\n data: {\n type: \"tags\",\n attributes: {\n name: \"Tag Name\",\n description: \"Tag Description\",\n color: \"#bebebe\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/tags/{tag_id}": { "patch": { "summary": "Update tag", "operationId": "update-tag", "tags": ["Tags"], "security": [{"Bearer":[]}], "parameters": [{"name":"tag_id","in":"path","required":true,"examples":{"Success":{"value":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL"}},"schema":{"type":"string"}}], "description": "Update a Tag in the team.\n", "x-mint": {"href":"/api-reference/update-tag"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name","slug":"tag-name","description":"Aliquam ducimus atque et.","color":"#73ba73","team":{"id":"team_GplL3jvZnNS2BXLAmWQpf8z354ll","name":"633 Team","slug":"633-team","description":"633 Team","address":"2092 Loreta Summit, West Hershelmouth, WY 97161-6201","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"$ref":"#/components/schemas/custom_tag"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"NameAlreadyTaken":{"value":{"errors":[{"code":"NAME_ALREADY_TAKEN","detail":"is already taken","source":{"pointer":"/data/attributes/name"}}]}},"NameTooSimilar":{"value":{"errors":[{"code":"NAME_TOO_SIMILAR","detail":"is too similar to an existing tag name","source":{"pointer":"/data/attributes/name"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name"}}}}}}},"required":true}, "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.tags.update(tag_id=\"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\", data={\n \"id\": \"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\",\n \"type\": latitudesh_python_sdk.UpdateTagTagsType.TAGS,\n \"attributes\": {\n \"name\": \"Tag Name\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Tags.Update(ctx, \"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\", operations.UpdateTagTagsRequestBody{\n Data: &operations.UpdateTagTagsData{\n ID: latitudeshgosdk.Pointer(\"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\"),\n Type: operations.UpdateTagTagsTypeTags.ToPointer(),\n Attributes: &operations.UpdateTagTagsAttributes{\n Name: latitudeshgosdk.Pointer(\"Tag Name\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.CustomTag != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.tags.update({\n tagId: \"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\",\n requestBody: {\n data: {\n id: \"tag_XBlke2r5RyiyVpG9LPK8tWjalLL\",\n type: \"tags\",\n attributes: {\n name: \"Tag Name\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete tag", "operationId": "destroy-tag", "tags": ["Tags"], "security": [{"Bearer":[]}], "parameters": [{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Update a Tag in the team.\n", "x-mint": {"href":"/api-reference/destroy-tag"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.tags.delete(tag_id=\"invalid-id\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Tags.Delete(ctx, \"invalid-id\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.tags.delete({\n tagId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/team": { "get": { "summary": "Retrieve team", "operationId": "get-team", "tags": ["Teams"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/get-team"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"when bare metal limit is set":{"value":{"data":[{"id":"team_BbQ0gXk6P1uxW7rNvg5VCM2znK2R","type":"teams","attributes":{"name":"641 Team","slug":"641-team","address":"8998 Murphy Fork, North Danahaven, CT 98631","currency":"1f7","created_at":"2026-01-09T15:57:10+00:00","updated_at":"2025-02-09T00:00:00+00:00","status":null,"enforce_mfa":false,"users":[{"id":"user_yxLxQ7mmJehljn3RK18aILyGP17","first_name":"Russell","last_name":"Wunsch","email":"hoyt@brakus.example","created_at":"2025-03-25T00:00:00.000Z","updated_at":"2025-03-30T00:00:00.000Z","role":{"id":"role_332j3k5oxYIKGZGPpxZKCl7nrXP","name":"Steve","created_at":"2025-04-13T00:00:00.000Z","updated_at":"2026-01-23T00:00:00.000Z"}}],"projects":[],"owner":{},"billing":{},"feature_flags":["feature_flag_1","feature_flag_2"],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}},"when bare metal limit is not set":{"value":{"data":[{"id":"team_QzAj9782bVuWjQwwwv4guRw0lL5","type":"teams","attributes":{"name":"642 Team","slug":"642-team","address":"Suite 873 7622 Neal Plaza, Almetaburgh, UT 19776","currency":"7qq","created_at":"2025-11-14T15:57:10+00:00","updated_at":"2025-04-05T00:00:00+00:00","status":null,"enforce_mfa":false,"users":[{"id":"user_kEXBoLzrG4tNZzJYBrV8fN6Jzvy7","first_name":"Marin","last_name":"Pollich","email":"winter.hodkiewicz@huel.test","created_at":"2025-05-19T00:00:00.000Z","updated_at":"2025-06-03T00:00:00.000Z","role":{"id":"role_gpGwBll1EzsZ5GGZ7L6aCnGWbYE","name":"Lincoln","created_at":"2025-03-26T00:00:00.000Z","updated_at":"2026-08-24T00:00:00.000Z"}}],"projects":[],"owner":{},"billing":{},"feature_flags":["feature_flag_1","feature_flag_2"],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/teams"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.teams.get()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Teams.Get(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.Teams != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.teams.get();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create team", "operationId": "post-team", "tags": ["Teams"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/post-team"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"team_aEjv7ZKeWzCrjA5ANeMvImmKEoV","type":"teams","attributes":{"name":"Name","slug":"name","address":"Address","currency":"USD","enforce_mfa":false,"customer_billing_id":"cus_hp2b02do","referred_code":null}},"meta":{"session_token":"token-for-team"}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/team"},"meta":{"type":"object","properties":{"session_token":{"type":"string","description":"Create-only session token to authenticate follow-up requests against the new team"}}}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"currency":{"type":"string","enum":["USD","BRL"]},"address":{"type":"string"},"enforce_mfa":{"type":"boolean"},"referred_code":{"type":"string","description":"Supported only for first team creation"}},"required":["name","currency"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"name":"Name","address":"Address","currency":"USD"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"currency":{"type":"string","enum":["USD","BRL"]},"address":{"type":"string"},"enforce_mfa":{"type":"boolean"},"referred_code":{"type":"string","description":"Supported only for first team creation"}},"required":["name","currency"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"name":"Name","address":"Address","currency":"USD"}}}}}}},"required":true}, "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.teams.create(data={\n \"type\": latitudesh_python_sdk.PostTeamTeamsType.TEAMS,\n \"attributes\": {\n \"name\": \"Name\",\n \"currency\": latitudesh_python_sdk.PostTeamTeamsCurrency.USD,\n \"address\": \"Address\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Teams.Create(ctx, operations.PostTeamTeamsRequestBody{\n Data: operations.PostTeamTeamsData{\n Type: operations.PostTeamTeamsTypeTeams,\n Attributes: &operations.PostTeamTeamsAttributes{\n Name: \"Name\",\n Currency: operations.PostTeamCurrencyUsd,\n Address: latitudeshgosdk.Pointer(\"Address\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.teams.create({\n data: {\n type: \"teams\",\n attributes: {\n name: \"Name\",\n currency: \"USD\",\n address: \"Address\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/team/{team_id}": {"patch":{ "summary": "Update team", "operationId": "patch-current-team", "tags": ["Teams"], "security": [{"Bearer":[]}], "parameters": [{"name":"team_id","in":"path","required":true,"examples":{"Success":{"value":"team_bVJM4y6m4VCyy101JzA3szlVGRb"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/patch-current-team"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Langworth-Langosh","slug":"langworth-langosh","address":"2746 Joe Stream","currency":"WST","enforce_mfa":false,"referred_code":null}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/team"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"enforce_mfa":{"type":"boolean"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Name","address":"Address"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"enforce_mfa":{"type":"boolean"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Name","address":"Address"}}}}}}},"required":true}, "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.teams.update(team_id=\"team_bVJM4y6m4VCyy101JzA3szlVGRb\", data={\n \"id\": \"team_bVJM4y6m4VCyy101JzA3szlVGRb\",\n \"type\": latitudesh_python_sdk.PatchCurrentTeamTeamsType.TEAMS,\n \"attributes\": {\n \"address\": \"Address\",\n \"name\": \"Name\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Teams.Update(ctx, \"team_bVJM4y6m4VCyy101JzA3szlVGRb\", operations.PatchCurrentTeamTeamsRequestBody{\n Data: operations.PatchCurrentTeamTeamsData{\n ID: \"team_bVJM4y6m4VCyy101JzA3szlVGRb\",\n Type: operations.PatchCurrentTeamTeamsTypeTeams,\n Attributes: &operations.PatchCurrentTeamTeamsAttributes{\n Address: latitudeshgosdk.Pointer(\"Address\"),\n Name: latitudeshgosdk.Pointer(\"Name\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.teams.update({\n teamId: \"team_bVJM4y6m4VCyy101JzA3szlVGRb\",\n requestBody: {\n data: {\n id: \"team_bVJM4y6m4VCyy101JzA3szlVGRb\",\n type: \"teams\",\n attributes: {\n address: \"Address\",\n name: \"Name\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/traffic": {"get":{ "summary": "Retrieve traffic", "operationId": "get-traffic-consumption", "tags": ["Traffic"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[server]","in":"query","required":false,"description":"The server id to filter by","examples":{"Success":{"value":"sv_A05EdQ50dvKYQ"}},"schema":{"type":"string"}}, {"name":"filter[project]","in":"query","required":false,"description":"The project id to filter by","schema":{"type":"string"}}, {"name":"filter[date][gte]","in":"query","required":true,"description":"The start timestamp to retrieve the traffic. You must provide in ISO8601 format. Example: filter[date][gte]=2024-04-01T00:00:00Z","examples":{"Success":{"value":"2025-12-14T15:57:10Z"}},"schema":{"type":"string"}}, {"name":"filter[date][lte]","in":"query","required":true,"description":"The end timestamp to retrieve the traffic. You must provide in ISO8601 format. The period must not exceed 366 days. Example: filter[date][gte]=2024-04-31T23:59:59Z","examples":{"Success":{"value":"2026-01-14T15:57:10Z"}},"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-traffic-consumption"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"","type":"traffic","attributes":{"from_date":1765727830,"to_date":1768406230,"total_inbound_gb":102,"total_outbound_gb":241,"total_inbound_95th_percentile_mbps":1832.91,"total_outbound_95th_percentile_mbps":1819.99,"regions":[{"region_slug":"brazil","total_inbound_gb":102,"total_outbound_gb":241,"total_inbound_95th_percentile_mbps":1832.91,"total_outbound_95th_percentile_mbps":1819.99,"data":[{"date":"2021-07-01T00:00:00.000+00:00","inbound_gb":10,"outbound_gb":102,"avg_outbound_speed_mbps":1.19,"avg_inbound_speed_mbps":0.13}, {"date":"2021-07-02T00:00:00.000+00:00","inbound_gb":2,"outbound_gb":6,"avg_outbound_speed_mbps":0.08,"avg_inbound_speed_mbps":0.02}, {"date":"2021-07-03T00:00:00.000+00:00","inbound_gb":5,"outbound_gb":15,"avg_outbound_speed_mbps":0.18,"avg_inbound_speed_mbps":0.06}, {"date":"2021-07-04T00:00:00.000+00:00","inbound_gb":57,"outbound_gb":32,"avg_outbound_speed_mbps":0.38,"avg_inbound_speed_mbps":0.66}, {"date":"2021-07-05T00:00:00.000+00:00","inbound_gb":11,"outbound_gb":59,"avg_outbound_speed_mbps":0.69,"avg_inbound_speed_mbps":0.13}, {"date":"2021-07-06T00:00:00.000+00:00","inbound_gb":17,"outbound_gb":27,"avg_outbound_speed_mbps":0.32,"avg_inbound_speed_mbps":0.2}]}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/traffic"}}}}}, "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.traffic.get(filter_date_gte=\"2025-12-14T15:57:10Z\", filter_date_lte=\"2026-01-14T15:57:10Z\", filter_server=\"sv_A05EdQ50dvKYQ\", filter_project=\"proj_AW6Q2D9lqKLpr\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Traffic.Get(ctx, \"2025-12-14T15:57:10Z\", \"2026-01-14T15:57:10Z\", latitudeshgosdk.Pointer(\"sv_A05EdQ50dvKYQ\"), latitudeshgosdk.Pointer(\"proj_AW6Q2D9lqKLpr\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.Traffic != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.traffic.get({\n filterServer: \"sv_A05EdQ50dvKYQ\",\n filterDateGte: \"2025-12-14T15:57:10Z\",\n filterDateLte: \"2026-01-14T15:57:10Z\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/traffic/quota": {"get":{ "summary": "Retrieve traffic quota", "operationId": "get-traffic-quota", "tags": ["Traffic"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/get-traffic-quota"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"traffic_quota","type":"traffic_quota","attributes":{"quota_per_project":[{"project_id":"proj_lkg1DekRdvZE5","project_slug":"incredible-bronze-knife","billing_method":"Normal","quota_per_region":[{"region_id":"reg_9QDB5qag","price":500,"region_slug":"brazil","quota_in_tb":{"granted":20,"additional":0,"total":20},"quota_in_mbps":{"granted":0,"additional":0,"total":0}}]}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/traffic_quota"}}}}}, "x-speakeasy-name-override": "getQuota", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.traffic.get_quota()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.Traffic.GetQuota(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.TrafficQuota != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.traffic.getQuota();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/user_data": { "get": { "summary": "List user data", "operationId": "get-users-data", "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"Project ID or slug","schema":{"type":"string"}}, {"name":"filter[scope]","in":"query","required":false,"description":"Filter by scope: `project` (has project), `team` (no project), or empty (all)","schema":{"type":"string"}}, {"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}}, {"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}], "description": "List all Users Data in the project. These scripts can be used to configure servers with user data.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-users-data"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ud_1Qkm7dXzD8nZV","type":"user_data","attributes":{"description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","content":"VHdvIGJ1dHRlcm1pbGsgd2FmZmxlcywgdG9wcGVkIHdpdGggd2hpcHBlZCBjcmVhbSBhbmQgbWFwbGUgc3lydXAsIGEgc2lkZSBvZiB0d28gZWdncyBzZXJ2ZWQgYW55IHN0eWxlLCBhbmQgeW91ciBjaG9pY2Ugb2Ygc21va2VkIGJhY29uIG9yIHNtb2tlZCBoYW0u","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham.","project":{"id":"proj_1ZJrdxoyOg4LV","name":"Heavy Duty Aluminum Coat","slug":"heavy-duty-aluminum-coat","description":"Enormous Bronze Bag","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data"}}}}}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_data.get_users_data(extra_fields_user_data=\"decoded_content\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserData.List(ctx, operations.GetUsersDataRequest{})\n if err != nil {\n log.Fatal(err)\n }\n if res.UserData != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userData.list({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create user data", "operationId": "post-user-data", "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [], "description": "Allows you to create User Data in a team, which can be used to perform custom setup on your servers after deploy and reinstall.\n", "x-mint": {"href":"/api-reference/post-user-data"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ud_w49QDB55qagKb","type":"user_data","attributes":{"description":"User Data description","content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"#cloud-config\nruncmd:\n - [ touch, /home/ubuntu/test ]","project":{"id":"proj_QraYDPW3qpjwW","name":"Rustic Granite Gloves","slug":"rustic-granite-gloves","description":"Heavy Duty Leather Wallet","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"project":{"type":"string","description":"Project ID or slug"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description","project":"proj_QraYDPW3qpjwW"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"project":{"type":"string","description":"Project ID or slug"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description","project":"proj_QraYDPW3qpjwW"}}}}}}},"required":true}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "createNew", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_data.post_user_data(data={\n \"type\": latitudesh_python_sdk.PostUserDataUserDataType.USER_DATA,\n \"attributes\": {\n \"description\": \"User Data description\",\n \"project\": \"proj_QraYDPW3qpjwW\",\n \"content\": \"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserData.CreateNew(ctx, operations.PostUserDataUserDataRequestBody{\n Data: operations.PostUserDataUserDataData{\n Type: operations.PostUserDataUserDataTypeUserData,\n Attributes: &operations.PostUserDataUserDataAttributes{\n Description: \"User Data description\",\n Project: latitudeshgosdk.Pointer(\"proj_QraYDPW3qpjwW\"),\n Content: \"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.UserDataObject != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userData.createNew({\n data: {\n type: \"user_data\",\n attributes: {\n description: \"User Data description\",\n project: \"proj_QraYDPW3qpjwW\",\n content: \"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/user_data/{user_data_id}": { "get": { "summary": "Retrieve user data", "operationId": "get-user-data", "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [{"name":"user_data_id","in":"path","required":true,"examples":{"Success":{"value":"ud_MLGXPdWgdnNWk"}},"schema":{"type":"string"}}, {"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}], "description": "Get User Data in the project. These scripts can be used to configure servers with user data.\n", "x-mint": {"href":"/api-reference/get-user-data"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ud_MLGXPdWgdnNWk","type":"user_data","attributes":{"description":"Three egg whites with spinach, mushrooms, caramelized onions, tomatoes and low-fat feta cheese. With herbed quinoa, and your choice of rye or whole-grain toast.","content":"VHdvIGJ1dHRlcm1pbGsgd2FmZmxlcywgdG9wcGVkIHdpdGggd2hpcHBlZCBjcmVhbSBhbmQgbWFwbGUgc3lydXAsIGEgc2lkZSBvZiB0d28gZWdncyBzZXJ2ZWQgYW55IHN0eWxlLCBhbmQgeW91ciBjaG9pY2Ugb2Ygc21va2VkIGJhY29uIG9yIHNtb2tlZCBoYW0u","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham.","project":{"id":"proj_pbV0DgkzD4AWz","name":"Sleek Iron Wallet","slug":"sleek-iron-wallet","description":"Small Silk Shoes","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "retrieve", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_data.get_user_data(user_data_id=\"ud_MLGXPdWgdnNWk\", extra_fields_user_data=\"decoded_content\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserData.Retrieve(ctx, \"ud_MLGXPdWgdnNWk\", latitudeshgosdk.Pointer(\"decoded_content\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.UserDataObject != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userData.retrieve({\n userDataId: \"ud_MLGXPdWgdnNWk\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update user data", "operationId": "patch-user-data", "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Allow you update User Data in a team.\n", "x-mint": {"href":"/api-reference/patch-user-data"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}}}}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_data.patch_user_data(user_data_id=\"ud_Av9BVDavORm1W\", data={\n \"id\": \"ud_Av9BVDavORm1W\",\n \"type\": latitudesh_python_sdk.PatchUserDataUserDataType.USER_DATA,\n \"attributes\": {\n \"content\": \"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserData.Update(ctx, \"ud_Av9BVDavORm1W\", &operations.PatchUserDataUserDataRequestBody{\n Data: operations.PatchUserDataUserDataData{\n ID: \"ud_Av9BVDavORm1W\",\n Type: operations.PatchUserDataUserDataTypeUserData,\n Attributes: &operations.PatchUserDataUserDataAttributes{\n Content: latitudeshgosdk.Pointer(\"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.UserDataObject != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userData.update({\n userDataId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete user data", "operationId": "delete-user-data", "tags": ["User data"], "security": [{"Bearer":[]}], "parameters": [{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}], "x-mint": {"href":"/api-reference/delete-user-data"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-group": "userData", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.user_data.delete_user_data(user_data_id=\"123\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserData.Delete(ctx, \"123\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.userData.delete({\n userDataId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/user/profile": {"get":{ "summary": "Retrieve profile", "operationId": "get-user-profile", "tags": ["User profile"], "security": [{"Bearer":[]}], "description": "Retrieve the current user profile\n", "x-mint": {"href":"/api-reference/get-user-profile"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"user_L9B4LNaW0xiLXYQoaoPyt5oL9EN0","type":"users","attributes":{"first_name":"Jefferey","last_name":"Boyer","email":"lea@crona-hahn.test","created_at":"2025-06-06T00:00:00+00:00","updated_at":"2025-08-26T00:00:00+00:00","role":{"id":"role_B48kwVxyWkuxNJ2ZjpoJcx1Bnlo","name":"owner","created_at":"2025-05-05T00:00:00.000Z","updated_at":"2026-11-10T00:00:00.000Z"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/user"}}}}}}}, "x-speakeasy-group": "userProfile", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_profile.get()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserProfile.Get(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userProfile.get();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/user/profile/{id}": {"patch":{ "summary": "Update profile", "operationId": "patch-user-profile", "tags": ["User profile"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"examples":{"Success":{"value":"user_8PMvy2GL72uKKyXyANEnsjMQYMP"}},"schema":{"type":"string"}}], "description": "Update the current user profile\n", "x-mint": {"href":"/api-reference/patch-user-profile"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"first_name":"Sherwood","last_name":"Ward","email":"deeann_kuhlman@leffler.test","role":"collaborator","created_at":"2026-07-14T16:00:00+00:00","updated_at":"2026-07-14T16:00:00+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/user_update"},"meta":{"type":"object"}}}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"role":{"type":"string","enum":["administrator","billing","collaborator","owner"]}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"role":"collaborator"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"role":{"type":"string","enum":["administrator","billing","collaborator","owner"]}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"role":"collaborator"}}}}}}},"required":true}, "x-speakeasy-group": "userProfile", "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_profile.update(id=\"user_8PMvy2GL72uKKyXyANEnsjMQYMP\", data={\n \"id\": \"user_8PMvy2GL72uKKyXyANEnsjMQYMP\",\n \"type\": latitudesh_python_sdk.PatchUserProfileUserProfileType.USERS,\n \"attributes\": {\n \"role\": latitudesh_python_sdk.PatchUserProfileUserProfileRole.COLLABORATOR,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserProfile.Update(ctx, \"user_8PMvy2GL72uKKyXyANEnsjMQYMP\", operations.PatchUserProfileUserProfileRequestBody{\n Data: operations.PatchUserProfileUserProfileData{\n ID: \"user_8PMvy2GL72uKKyXyANEnsjMQYMP\",\n Type: operations.PatchUserProfileUserProfileTypeUsers,\n Attributes: &operations.PatchUserProfileUserProfileAttributes{\n Role: operations.PatchUserProfileUserProfileRoleCollaborator.ToPointer(),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userProfile.update({\n id: \"user_8PMvy2GL72uKKyXyANEnsjMQYMP\",\n requestBody: {\n data: {\n id: \"user_8PMvy2GL72uKKyXyANEnsjMQYMP\",\n type: \"users\",\n attributes: {\n role: \"collaborator\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/user/teams": {"get":{ "summary": "List user teams", "operationId": "get-user-teams", "tags": ["User profile"], "security": [{"Bearer":[]}], "description": "Returns a list of all teams the user belongs to\n", "x-mint": {"href":"/api-reference/get-user-teams"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"when bare metal limit is set":{"value":{"data":[{"id":"team_NYGwel1RnbC44GX83lamhRe8Jjw","type":"teams","attributes":{"name":"687 Team","slug":"687-team","address":"595 Schmitt Mountains, West Frances, NJ 39049-3937","currency":"BRL","created_at":"2026-01-09T15:57:13+00:00","updated_at":"2026-01-14T15:57:13+00:00","status":"verified","enforce_mfa":false,"users":[{"id":"user_Mzw8rQR7yyS9p5pyWrzBfyxrMV4","first_name":"Jaime","last_name":"Ziemann","email":"codi_hand@miller.test","created_at":"2026-01-08T00:00:00.000Z","updated_at":"2025-01-27T00:00:00.000Z","role":{"id":"role_V1aYWNZmvlhrk9eoK58JSrY0MX4","name":"owner","created_at":"2025-05-01T00:00:00.000Z","updated_at":"2026-11-05T00:00:00.000Z"}}],"projects":[],"owner":{"id":"user_Mzw8rQR7yyS9p5pyWrzBfyxrMV4","first_name":"Jaime","last_name":"Ziemann","email":"codi_hand@miller.test","created_at":"2026-01-08T00:00:00.000Z","updated_at":"2025-01-27T00:00:00.000Z","role":{"id":"role_V1aYWNZmvlhrk9eoK58JSrY0MX4","name":"owner","created_at":"2025-05-01T00:00:00.000Z","updated_at":"2026-11-05T00:00:00.000Z"}},"billing":{"id":"bill_mw49QDB5qagKb","customer_billing_id":"cus_dluxyhyhjii4qk"},"feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}},"when bare metal limit is not set":{"value":{"data":[{"id":"team_NXK2MpJXgzU8AGjryZ09Hper7l5","type":"teams","attributes":{"name":"688 Team","slug":"688-team","address":"Apt. 492 6439 Salvatore Lodge, Denatown, MD 56634-2611","currency":"BRL","created_at":"2025-11-14T15:57:13+00:00","updated_at":"2026-01-14T15:57:13+00:00","status":"verified","enforce_mfa":false,"users":[{"id":"user_MbwWpJ37LMt9rBj1E47PFVomyzB7","first_name":"Nieves","last_name":"Huel","email":"nickolas@weimann.example","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2025-04-20T00:00:00.000Z","role":{"id":"role_97mkkRl14RCEzQbYeXJ0t905XMN","name":"owner","created_at":"2025-08-08T00:00:00.000Z","updated_at":"2026-10-14T00:00:00.000Z"}}],"projects":[],"owner":{"id":"user_MbwWpJ37LMt9rBj1E47PFVomyzB7","first_name":"Nieves","last_name":"Huel","email":"nickolas@weimann.example","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2025-04-20T00:00:00.000Z","role":{"id":"role_97mkkRl14RCEzQbYeXJ0t905XMN","name":"owner","created_at":"2025-08-08T00:00:00.000Z","updated_at":"2026-10-14T00:00:00.000Z"}},"billing":{"id":"bill_AW6Q2D9lqKLpr","customer_billing_id":"cus_nnflz4ow2j6zv9"},"feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_teams"}}}}}, "x-speakeasy-group": "userProfile", "x-speakeasy-name-override": "listTeams", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.user_profile.list_teams()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.UserProfile.ListTeams(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.UserTeams != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.userProfile.listTeams();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/marketplace_apps": {"get":{ "summary": "List marketplace apps", "operationId": "list-marketplace-apps", "tags": ["Marketplace apps"], "security": [{"Bearer":[]}], "description": "Lists the marketplace apps available to deploy on Virtual Machines. Only published apps are returned.", "x-mint": {"href":"/api-reference/list-marketplace-apps"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"mkapp_x1kg1DegdvZE5","type":"marketplace_apps","attributes":{"name":"OpenClaw","slug":"openclaw","description":"Personal AI agent gateway with messaging integrations","short_description":"Personal AI agent gateway","category":"ai_agents","version":"2026.7.20","system_requirements":{"vcpus":1,"memory_in_gb":2,"storage_in_gb":10,"gpu":false},"deployment_strategy":"user_data","default_operating_system":"ubuntu_24_04_x64_lts","compatible_plans":["vm.small","vm.medium"],"access_instructions":"Connect with: ssh -L 18789:localhost:18789 ubuntu@{{PUBLIC_IPV4}}","upstream_url":"https://github.com/openclaw/openclaw","documentation_url":null,"logo_url":null,"created_at":"2026-07-20T12:00:00+00:00"}}]}}},"schema":{"$ref":"#/components/schemas/marketplace_apps"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.marketplace_apps.list_marketplace_apps()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.MarketplaceApps.ListMarketplaceApps(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.MarketplaceApps != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.marketplaceApps.listMarketplaceApps();\n\n console.log(result);\n}\n\nrun();" } ] }}, "/marketplace_apps/{id}": {"get":{ "summary": "Retrieve a marketplace app", "operationId": "get-marketplace-app", "tags": ["Marketplace apps"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"description":"The marketplace app ID or slug","examples":{"Success":{"value":"openclaw"}},"schema":{"type":"string"}}], "description": "Retrieve a single marketplace app by ID or slug. Only published apps are visible.", "x-mint": {"href":"/api-reference/get-marketplace-app"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"mkapp_x1kg1DegdvZE5","type":"marketplace_apps","attributes":{"name":"OpenClaw","slug":"openclaw","description":"Personal AI agent gateway with messaging integrations","short_description":"Personal AI agent gateway","category":"ai_agents","version":"2026.7.20","system_requirements":{"vcpus":1,"memory_in_gb":2,"storage_in_gb":10,"gpu":false},"deployment_strategy":"user_data","default_operating_system":"ubuntu_24_04_x64_lts","compatible_plans":["vm.small","vm.medium"],"access_instructions":"Connect with: ssh -L 18789:localhost:18789 ubuntu@{{PUBLIC_IPV4}}","upstream_url":"https://github.com/openclaw/openclaw","documentation_url":null,"logo_url":null,"created_at":"2026-07-20T12:00:00+00:00"}}}}},"schema":{"$ref":"#/components/schemas/marketplace_app"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.marketplace_apps.get_marketplace_app(id=\"openclaw\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.MarketplaceApps.GetMarketplaceApp(ctx, \"openclaw\")\n if err != nil {\n log.Fatal(err)\n }\n if res.MarketplaceApp != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.marketplaceApps.getMarketplaceApp({\n id: \"openclaw\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/virtual_machines": { "post": { "summary": "Create VM", "operationId": "create-virtual-machine", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [], "description": "Creates a new Virtual Machine.\n", "x-mint": {"href":"/api-reference/create-virtual-machine"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vm_mw49QDB5qagKb","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Starting","created_at":"2026-01-14T15:57:13+00:00","primary_ipv4":"192.168.1.50","operating_system":{"name":"Ubuntu 24.04 LTS","slug":"ubuntu_24_04_x64_lts","version":"24.04 x64 LTS","features":{"raid":true,"ssh_keys":true,"user_data":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"noble"}},"site":"FRA181","billing":"monthly","plan":{"id":"plan_VE1Wd3VXOXnZJ","name":"g3.h100.large-131"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_zAbb72Zm3VS3N0o89Y48sGXv3mZ","name":"690 Team","slug":"690-team","description":"690 Team","address":"Apt. 922 405 Ondricka Lights, Lake Jennineview, SC 58925-4625","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_GMy1Dbk1ON50m","name":"Lightweight Leather Lamp","slug":"lightweight-leather-lamp","description":"Sleek Wool Plate","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_payload"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly"}}}},"CreatedWithOS":{"summary":"Created with operating system","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","operating_system":"ubuntu_24_04_x64_lts"}}}},"CreatedWithUserData":{"summary":"Created with user data","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","user_data":"ud_abc123"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_payload"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly"}}}},"CreatedWithOS":{"summary":"Created with operating system","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","operating_system":"ubuntu_24_04_x64_lts"}}}},"CreatedWithUserData":{"summary":"Created with user data","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","user_data":"ud_abc123"}}}}}}},"required":true}, "x-speakeasy-group": "virtualMachines", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.create(data={\n \"type\": latitudesh_python_sdk.VirtualMachinePayloadType.VIRTUAL_MACHINES,\n \"attributes\": {\n \"name\": \"my-new-vm\",\n \"billing\": latitudesh_python_sdk.VirtualMachinePayloadBilling.MONTHLY,\n \"project\": \"lightweight-leather-lamp\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.Create(ctx, components.VirtualMachinePayload{\n Data: &components.VirtualMachinePayloadData{\n Type: components.VirtualMachinePayloadTypeVirtualMachines.ToPointer(),\n Attributes: &components.VirtualMachinePayloadAttributes{\n Name: latitudeshgosdk.Pointer(\"my-new-vm\"),\n Billing: components.VirtualMachinePayloadBillingMonthly.ToPointer(),\n Project: latitudeshgosdk.Pointer(\"lightweight-leather-lamp\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachine != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.create({\n data: {\n type: \"virtual_machines\",\n attributes: {\n name: \"my-new-vm\",\n billing: \"monthly\",\n project: \"lightweight-leather-lamp\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "get": { "summary": "List VMs", "operationId": "index-virtual-machine", "tags": ["Virtual machines"], "parameters": [{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tag IDs to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2` will return VMs with `tag_1` AND `tag_2`.","schema":{"type":"string"}}, {"name":"extra_fields[virtual_machines]","in":"query","required":false,"description":"Comma-separated extra attributes that are lazy-loaded. Supported values: `credentials`, `pending_restart`. Example: `extra_fields[virtual_machines]=credentials,pending_restart`.","examples":{"Success":{"value":"credentials"}},"schema":{"type":"string"}}, {"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: created_at, name, hostname, status. Example: `sort=status,-created_at` sorts by status ascending, then by creation date descending.","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "security": [{"Bearer":[]}], "description": "Show all Team's Virtual Machines.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/index-virtual-machine"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vm_zlkg1DegdvZE5","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Running","created_at":"2026-01-14T15:57:14+00:00","primary_ipv4":"192.168.1.100","credentials":{"username":"ubuntu","host":"192.168.1.100","password":"secure_password","ssh_keys":[]},"operating_system":null,"site":"MEX192","billing":"hourly","plan":{"id":"plan_059EqYVjDQj8p","name":"g3.l40s.medium-142"},"specs":{"vcpu":null,"ram":null,"storage":null,"nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_1ejNe2b5gQiKpxYNxz0bFm2yY38","name":"701 Team","slug":"701-team","description":"701 Team","address":"29825 Klocko Trafficway, Wunschhaven, KS 74888","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_w49QDB2WDagKb","name":"Intelligent Granite Pants","slug":"intelligent-granite-pants","description":"Aerodynamic Copper Bottle","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}]}}},"schema":{"$ref":"#/components/schemas/virtual_machines"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"UnsupportedSortField":{"value":{"errors":[{"code":"VALIDATION_ERROR","status":"400","title":"Validation Error","detail":"contains unsupported field: region","source":{"parameter":"sort"},"meta":{"attribute":"sort","message":"contains unsupported field: region"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-speakeasy-group": "virtualMachines", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.list(extra_fields_virtual_machines=\"credentials\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.List(ctx, operations.IndexVirtualMachineRequest{\n ExtraFieldsVirtualMachines: latitudeshgosdk.Pointer(\"credentials\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachines != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.list({\n extraFieldsVirtualMachines: \"credentials\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] } }, "/virtual_machines/{virtual_machine_id}": { "get": { "summary": "Retrieve VM", "operationId": "show-virtual-machine", "tags": ["Virtual machines"], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Success":{"value":"vm_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}, {"name":"extra_fields[virtual_machines]","in":"query","required":false,"description":"Comma-separated extra attributes that are lazy-loaded. Supported values: `credentials`, `pending_restart`. Example: `extra_fields[virtual_machines]=credentials,pending_restart`.","examples":{"Success":{"value":"credentials"}},"schema":{"type":"string"}}], "security": [{"Bearer":[]}], "description": "Show a Virtual Machine.\n", "x-mint": {"href":"/api-reference/show-virtual-machine"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vm_7vYAZqGBdMQ94","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Starting","created_at":"2026-01-14T15:57:15+00:00","primary_ipv4":"10.0.0.25","operating_system":null,"site":"london-2193","billing":"hourly","plan":{"id":"plan_VE1Wd3VQOXnZJ","name":"c3.small.x86-143"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_GpZboxNev1U2pxpmKwWAc8e01vpp","name":"702 Team","slug":"702-team","description":"702 Team","address":"Suite 729 8171 Albina Forges, Eldridgeberg, CA 26345-3293","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_W6Q2D9ZQOKLpr","name":"Aerodynamic Wool Watch","slug":"aerodynamic-wool-watch","description":"Intelligent Paper Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}}}, "x-speakeasy-group": "virtualMachines", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.get(virtual_machine_id=\"vm_7vYAZqGBdMQ94\", extra_fields_virtual_machines=\"credentials\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.Get(ctx, \"vm_7vYAZqGBdMQ94\", latitudeshgosdk.Pointer(\"credentials\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachine != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.get({\n virtualMachineId: \"vm_7vYAZqGBdMQ94\",\n extraFieldsVirtualMachines: \"credentials\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update VM", "operationId": "update-virtual-machine", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Success":{"value":"vm_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}], "description": "Updates a Virtual Machine's display name (hostname).\n", "x-mint": {"href":"/api-reference/update-virtual-machine"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vm_7vYAZqGBdMQ94","type":"virtual_machines","attributes":{"name":"my-updated-vm","status":"Running","created_at":"2026-01-14T15:57:15+00:00","primary_ipv4":"10.0.0.25","operating_system":null,"site":"london-2193","billing":"hourly","plan":{"id":"plan_VE1Wd3VQOXnZJ","name":"c3.small.x86-143"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_GpZboxNev1U2pxpmKwWAc8e01vpp","name":"702 Team","slug":"702-team","description":"702 Team","address":"Suite 729 8171 Albina Forges, Eldridgeberg, CA 26345-3293","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_W6Q2D9ZQOKLpr","name":"Aerodynamic Wool Watch","slug":"aerodynamic-wool-watch","description":"Intelligent Paper Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}},"202":{"description":"Accepted. Returned for a vertical upgrade (`plan` change). The resize runs asynchronously: the VM is powered off, resized, and powered back on. The response body reflects the VM at the start of the resize.","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict. Returned when a resize is already in progress for the VM."},"422":{"description":"Unprocessable Entity"}}, "requestBody": {"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_update_payload"},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"virtual_machines","id":"vm_7vYAZqGBdMQ94","attributes":{"name":"my-updated-vm"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_update_payload"},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"virtual_machines","id":"vm_7vYAZqGBdMQ94","attributes":{"name":"my-updated-vm"}}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.update_virtual_machine(virtual_machine_id=\"vm_7vYAZqGBdMQ94\", data={\n \"type\": latitudesh_python_sdk.VirtualMachineUpdatePayloadType.VIRTUAL_MACHINES,\n \"id\": \"vm_7vYAZqGBdMQ94\",\n \"attributes\": {\n \"name\": \"my-updated-vm\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.UpdateVirtualMachine(ctx, \"vm_7vYAZqGBdMQ94\", components.VirtualMachineUpdatePayload{\n Data: components.VirtualMachineUpdatePayloadData{\n Type: components.VirtualMachineUpdatePayloadTypeVirtualMachines,\n ID: latitudeshgosdk.Pointer(\"vm_7vYAZqGBdMQ94\"),\n Attributes: components.VirtualMachineUpdatePayloadAttributes{\n Name: latitudeshgosdk.Pointer(\"my-updated-vm\"),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachine != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.updateVirtualMachine({\n virtualMachineId: \"vm_7vYAZqGBdMQ94\",\n virtualMachineUpdatePayload: {\n data: {\n type: \"virtual_machines\",\n id: \"vm_7vYAZqGBdMQ94\",\n attributes: {\n name: \"my-updated-vm\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Destroy VM", "operationId": "destroy-virtual-machine", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Destroys a Virtual Machine.\n", "x-mint": {"href":"/api-reference/destroy-virtual-machine"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-group": "virtualMachines", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.virtual_machines.delete(virtual_machine_id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.Delete(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.virtualMachines.delete({\n virtualMachineId: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/virtual_machines/{virtual_machine_id}/actions": {"post":{ "summary": "Run VM power action", "operationId": "create-virtual-machine-action", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Created":{"value":"vm_5LA73qkjdaJ2o"}},"schema":{"type":"string"}}], "description": "Performs a power action on a given virtual machine:\n- `power_on` - Starts the virtual machine\n- `power_off` - Stops the virtual machine\n- `reboot` - Restarts the virtual machine\n\n`power_on` is never blocked. A `power_off` or `reboot` returns `409 Conflict` when a backup is in progress for the virtual machine.\n", "x-mint": {"href":"/api-reference/create-virtual-machine-action"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"act_5LA73qkjdaJ2o","type":"actions","attributes":{"status":"Rebooting virtual machine"}}}}}}}},"409":{"description":"Conflict. Returned when a backup is in progress for the virtual machine and a `power_off` or `reboot` is attempted.","content":{"application/vnd.api+json":{"examples":{"BackupInProgress":{"value":{"errors":[{"code":"BACKUP_IN_PROGRESS","title":"Backup In Progress","status":"409","detail":"A backup is in progress for this virtual machine. Wait for it to finish or delete it before powering off or restarting."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"VmActionRejected":{"value":{"errors":[{"code":"VM_ACTION_REJECTED","title":"Action Rejected","status":"422","detail":"This operation was rejected because of the virtual machine's current state. Please try again later or contact support."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the virtual machine","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["id","type","attributes"]},"examples":{"Created":{"summary":"Created","value":{"id":"vm_5LA73qkjdaJ2o","type":"virtual_machines","attributes":{"action":"reboot"}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the virtual machine","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["id","type","attributes"]},"examples":{"Created":{"summary":"Created","value":{"id":"vm_5LA73qkjdaJ2o","type":"virtual_machines","attributes":{"action":"reboot"}}}}}},"required":true}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.virtual_machines.create_virtual_machine_action(virtual_machine_id=\"vm_5LA73qkjdaJ2o\", id=\"vm_5LA73qkjdaJ2o\", type_=latitudesh_python_sdk.CreateVirtualMachineActionVirtualMachinesType.VIRTUAL_MACHINES, attributes={\n \"action\": latitudesh_python_sdk.CreateVirtualMachineActionVirtualMachinesAction.REBOOT,\n })\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.CreateVirtualMachineAction(ctx, \"vm_5LA73qkjdaJ2o\", operations.CreateVirtualMachineActionVirtualMachinesRequestBody{\n ID: \"vm_5LA73qkjdaJ2o\",\n Type: operations.CreateVirtualMachineActionVirtualMachinesTypeVirtualMachines,\n Attributes: operations.CreateVirtualMachineActionVirtualMachinesAttributes{\n Action: operations.CreateVirtualMachineActionVirtualMachinesActionReboot,\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.virtualMachines.createVirtualMachineAction({\n virtualMachineId: \"vm_5LA73qkjdaJ2o\",\n requestBody: {\n id: \"vm_5LA73qkjdaJ2o\",\n type: \"virtual_machines\",\n attributes: {\n action: \"reboot\",\n },\n },\n });\n\n\n}\n\nrun();" } ] }}, "/virtual_machines/{virtual_machine_id}/metrics": {"get":{ "summary": "Retrieve VM metrics", "operationId": "show-virtual-machine-metrics", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"metric","in":"query","required":true,"schema":{"type":"string","enum":["cpu","memory","network","disk"]}}, {"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["5m","15m","1h","24h"]}}, {"name":"force_refresh","in":"query","required":false,"schema":{"type":"boolean"}}], "description": "Retrieve a time series for a single metric of a Virtual Machine.", "x-mint": {"href":"/api-reference/show-virtual-machine-metrics"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_metrics"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.show_virtual_machine_metrics(virtual_machine_id=\"\", metric=latitudesh_python_sdk.QueryParamMetric.MEMORY)\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.ShowVirtualMachineMetrics(ctx, \"\", operations.MetricMemory, nil, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineMetrics != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.showVirtualMachineMetrics({\n virtualMachineId: \"\",\n metric: \"memory\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/virtual_machines/{virtual_machine_id}/network_attachments": { "get": { "summary": "List VM network attachments", "operationId": "list-virtual-machine-network-attachments", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Lists the secondary network attachments currently configured for a Virtual Machine.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachments"}}}},"404":{"description":"Not Found"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.list_virtual_machine_network_attachments(virtual_machine_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.ListVirtualMachineNetworkAttachments(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineNetworkAttachments != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.listVirtualMachineNetworkAttachments({\n virtualMachineId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Attach a network to a VM", "operationId": "create-virtual-machine-network-attachment", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Attaches a virtual network (VLAN) to a Virtual Machine. Work runs asynchronously and returns 202 Accepted.\n", "requestBody": {"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachment_create_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachment_create_payload"}}}}, "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","example":"accepted"}}}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.create_virtual_machine_network_attachment(virtual_machine_id=\"\", data={\n \"type\": latitudesh_python_sdk.VirtualMachineNetworkAttachmentCreatePayloadType.VIRTUAL_MACHINE_NETWORK_ATTACHMENTS,\n \"attributes\": {\n \"virtual_network_id\": \"\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.CreateVirtualMachineNetworkAttachment(ctx, \"\", components.VirtualMachineNetworkAttachmentCreatePayload{\n Data: components.VirtualMachineNetworkAttachmentCreatePayloadData{\n Type: components.VirtualMachineNetworkAttachmentCreatePayloadTypeVirtualMachineNetworkAttachments,\n Attributes: components.VirtualMachineNetworkAttachmentCreatePayloadAttributes{\n VirtualNetworkID: \"\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.createVirtualMachineNetworkAttachment({\n virtualMachineId: \"\",\n virtualMachineNetworkAttachmentCreatePayload: {\n data: {\n type: \"virtual_machine_network_attachments\",\n attributes: {\n virtualNetworkId: \"\",\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machines/{virtual_machine_id}/network_attachments/{id}": {"delete":{ "summary": "Detach a network from a VM", "operationId": "destroy-virtual-machine-network-attachment", "tags": ["Virtual machines"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"id","in":"path","required":true,"description":"The VLAN id_hash to detach","schema":{"type":"string"}}], "description": "Detaches a virtual network (VLAN) from a Virtual Machine. Work runs asynchronously and returns 202 Accepted.\n", "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","example":"accepted"}}}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machines.destroy_virtual_machine_network_attachment(virtual_machine_id=\"\", id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachines.DestroyVirtualMachineNetworkAttachment(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachines.destroyVirtualMachineNetworkAttachment({\n virtualMachineId: \"\",\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/virtual_machines/{virtual_machine_id}/backups": { "get": { "summary": "List a VM's backups", "operationId": "list-virtual-machine-scoped-backups", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Lists the backups of the given Virtual Machine.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backups"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "listForVirtualMachine", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.list_virtual_machine_scoped_backups(virtual_machine_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.ListForVirtualMachine(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackups != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.listForVirtualMachine({\n virtualMachineId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create VM backup", "operationId": "create-virtual-machine-backup", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Triggers a backup of the given Virtual Machine.\n", "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "createForVirtualMachine", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.create_virtual_machine_backup(virtual_machine_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.CreateForVirtualMachine(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackup != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.createForVirtualMachine({\n virtualMachineId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machine_backups": { "get": { "summary": "List all VM backups", "operationId": "list-virtual-machine-backups", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "description": "Lists every backup that belongs to the authenticated team.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backups"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.list_virtual_machine_backups()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.List(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackups != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.list();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create VM backup (top-level)", "operationId": "create-virtual-machine-backup-top-level", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "description": "Triggers a backup of the Virtual Machine referenced in the body.\n", "requestBody": {"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup_payload"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.create_virtual_machine_backup_top_level()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.Create(ctx, components.VirtualMachineBackupPayload{})\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackup != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.create({});\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machine_backups/{id}": { "get": { "summary": "Get VM backup", "operationId": "get-virtual-machine-backup", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.get_virtual_machine_backup(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.Get(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackup != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.get({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete VM backup", "operationId": "delete-virtual-machine-backup", "tags": ["Virtual machine backups"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Archives and deletes a Virtual Machine backup. Work runs asynchronously and returns 202 Accepted. Only `Ready` or `Failed` backups can be deleted, and not while a restore from the backup is in progress.\n", "responses": {"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the backup is not deletable (`BACKUP_NOT_DELETABLE`) or a restore is in progress (`RESTORE_IN_PROGRESS`)"}}, "x-speakeasy-group": "virtualMachineBackups", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_backups.delete_virtual_machine_backup(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineBackups.Delete(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineBackup != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineBackups.delete({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machines/{virtual_machine_id}/backups/{backup_id}/restores": { "get": { "summary": "List a backup's restores", "operationId": "list-virtual-machine-scoped-restores", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Lists the restores created from the given backup.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "listForVirtualMachineBackup", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.list_virtual_machine_scoped_restores(virtual_machine_id=\"\", backup_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.ListForVirtualMachineBackup(ctx, \"\", \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestores != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.listForVirtualMachineBackup({\n virtualMachineId: \"\",\n backupId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create VM restore", "operationId": "create-virtual-machine-restore", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "parameters": [{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}, {"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Restores a backup into a new Virtual Machine. Optionally accepts a `name` for the restored VM and a target `site` slug to restore into another region.\n", "requestBody": {"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the source backup is not ready (`SOURCE_BACKUP_NOT_READY`), no cluster in the requested site can host the restore (`NO_ELIGIBLE_CLUSTER`), or the virtual machine's plan requires GPU passthrough and cannot be restored (`GPU_RESTORE_UNSUPPORTED`)"}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "createForVirtualMachineBackup", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.create_virtual_machine_restore(virtual_machine_id=\"\", backup_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.CreateForVirtualMachineBackup(ctx, \"\", \"\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestore != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.createForVirtualMachineBackup({\n virtualMachineId: \"\",\n backupId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machine_backups/{backup_id}/restores": {"get":{ "summary": "List a backup's restores (top-level backup path)", "operationId": "list-backup-restores", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "parameters": [{"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Lists the restores created from the given backup, reached via the top-level backup path.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "listForBackup", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.list_backup_restores(backup_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.ListForBackup(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestores != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.listForBackup({\n backupId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/virtual_machine_restores": { "get": { "summary": "List all VM restores", "operationId": "list-virtual-machine-restores", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "description": "Lists every restore that belongs to the authenticated team.\n", "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.list_virtual_machine_restores()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.List(ctx)\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestores != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.list();\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create VM restore (flat)", "operationId": "create-virtual-machine-restore-flat", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "description": "Restores the backup referenced in the body into a new Virtual Machine. Optionally accepts a `name` for the restored VM and a target `site` slug to restore into another region.\n", "requestBody": {"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the source backup is not ready (`SOURCE_BACKUP_NOT_READY`), no cluster in the requested site can host the restore (`NO_ELIGIBLE_CLUSTER`), or the virtual machine's plan requires GPU passthrough and cannot be restored (`GPU_RESTORE_UNSUPPORTED`)"}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.create_virtual_machine_restore_flat()\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.Create(ctx, components.VirtualMachineRestorePayload{})\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestore != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.create({});\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_machine_restores/{id}": {"get":{ "summary": "Get VM restore", "operationId": "get-virtual-machine-restore", "tags": ["Virtual machine restores"], "security": [{"Bearer":[]}], "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"}}], "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}, "x-speakeasy-group": "virtualMachineRestores", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.virtual_machine_restores.get_virtual_machine_restore(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualMachineRestores.Get(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualMachineRestore != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.virtualMachineRestores.get({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/virtual_networks": { "get": { "summary": "List VLANs", "operationId": "get-virtual-networks", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[location]","in":"query","required":false,"description":"The location slug to filter by","schema":{"type":"string"}}, {"name":"filter[project]","in":"query","required":false,"description":"The project id or slug to filter by","schema":{"type":"string"}}, {"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","schema":{"type":"string"},"examples":{"Success":{"value":"tag_BZWAJKePr2Fx9kRyyaARImQlXmW,tag_X8yMgb8AZPFrX72lQgrwhBVnPN2"}}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "description": "Lists virtual networks assigned to a project\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-virtual-networks"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_networks"},"examples":{"Success":{"value":{"data":[{"id":"vlan_AW6Q2D9lqKLpr","type":"virtual_networks","attributes":{"tags":[{"id":"tag_rNk62XV5ewSV52K5oAv5FbENl1R","name":"tag1","description":"Quia quia natus numquam.","color":"#ead6ea"}],"vid":2040,"description":"Consequatur quo aut quia.","created_at":null,"region":{"city":"Sydney 243","country":"Australia 253","site":{"id":"loc_1ZJrdxnWDg4LV","name":"Sydney 243","slug":"SYD204","facility":"Sydney 243"}},"project":{"id":"proj_W6Q2D9ordKLpr","name":"Sleek Leather Hat","slug":"sleek-leather-hat","description":"Enormous Copper Lamp","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":2}},"assignments_count":1}}],"meta":{}}}}}}}}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.list(filter_location=\"SAO\", filter_project=\"awesome-copper-clock\", filter_tags=\"tag_BZWAJKePr2Fx9kRyyaARImQlXmW,tag_X8yMgb8AZPFrX72lQgrwhBVnPN2\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.List(ctx, operations.GetVirtualNetworksRequest{\n FilterLocation: latitudeshgosdk.Pointer(\"SAO\"),\n FilterProject: latitudeshgosdk.Pointer(\"awesome-copper-clock\"),\n FilterTags: latitudeshgosdk.Pointer(\"tag_BZWAJKePr2Fx9kRyyaARImQlXmW,tag_X8yMgb8AZPFrX72lQgrwhBVnPN2\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetworks != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.list({\n filterTags: \"tag_BZWAJKePr2Fx9kRyyaARImQlXmW,tag_X8yMgb8AZPFrX72lQgrwhBVnPN2\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Create VLAN", "operationId": "create-virtual-network", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [], "description": "Creates a new Virtual Network.\n", "x-mint": {"href":"/api-reference/create-virtual-network"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vlan_3YjJOLQjdvZ87","type":"virtual_networks","attributes":{"tags":[],"vid":2000,"name":"MIA-2000","description":"São Paulo VLAN","site":"MIA","created_at":"2026-01-14T15:57:17+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network"]},"attributes":{"type":"object","properties":{"description":{"type":"string"},"site":{"type":"string","description":"Site slug","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"project":{"type":"string","description":"Project ID or slug"}},"required":["description","location","project"]}},"required":["id","type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_networks","attributes":{"description":"São Paulo VLAN","site":"MIA","project":"ergonomic-steel-bag"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network"]},"attributes":{"type":"object","properties":{"description":{"type":"string"},"site":{"type":"string","description":"Site slug","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"project":{"type":"string","description":"Project ID or slug"}},"required":["description","location","project"]}},"required":["id","type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_networks","attributes":{"description":"São Paulo VLAN","site":"MIA","project":"ergonomic-steel-bag"}}}}}}},"required":true}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.create(data={\n \"type\": latitudesh_python_sdk.CreateVirtualNetworkPrivateNetworksType.VIRTUAL_NETWORK,\n \"attributes\": {\n \"description\": \"São Paulo VLAN\",\n \"site\": latitudesh_python_sdk.CreateVirtualNetworkPrivateNetworksSite.LAX2,\n \"project\": \"ergonomic-steel-bag\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.Create(ctx, operations.CreateVirtualNetworkPrivateNetworksRequestBody{\n Data: operations.CreateVirtualNetworkPrivateNetworksData{\n Type: operations.CreateVirtualNetworkPrivateNetworksTypeVirtualNetwork,\n Attributes: operations.CreateVirtualNetworkPrivateNetworksAttributes{\n Description: \"São Paulo VLAN\",\n Site: operations.CreateVirtualNetworkPrivateNetworksSiteLax2.ToPointer(),\n Project: \"ergonomic-steel-bag\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetwork != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.create({\n data: {\n type: \"virtual_network\",\n attributes: {\n description: \"São Paulo VLAN\",\n site: \"LAX2\",\n project: \"ergonomic-steel-bag\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_networks/{vlan_id}": { "patch": { "summary": "Update VLAN", "operationId": "update-virtual-network", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"vlan_id","in":"path","description":"The Virtual Network ID","required":true,"examples":{"Success":{"value":"vlan_VaNmodjeObE8W"}},"schema":{"type":"string"}}], "description": "Update a Virtual Network.\n", "x-mint": {"href":"/api-reference/update-virtual-network"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":[{"id":"tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","name":"Tal-Elmar","description":"Placeat non sit velit.","color":"#e5e53e"}, {"id":"tag_lpPQ21kXEYfb9az3jRoVIVw4RBk","name":"Great Eagle","description":"Voluptatem aut in corrupti.","color":"#502f50"}],"vid":2040,"name":"cupiditate","description":"Perspiciatis molestiae laborum quae.","site":"SAO","created_at":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":["tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","tag_lpPQ21kXEYfb9az3jRoVIVw4RBk"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":["tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","tag_lpPQ21kXEYfb9az3jRoVIVw4RBk"]}}}}}}},"required":true}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "update", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.update(vlan_id=\"vlan_VaNmodjeObE8W\", data={\n \"id\": \"vlan_VaNmodjeObE8W\",\n \"type\": latitudesh_python_sdk.UpdateVirtualNetworkPrivateNetworksType.VIRTUAL_NETWORKS,\n \"attributes\": {\n \"tags\": [\n \"tag_RjLvG6oe84IAw7BxxEGaFAXK4l4\",\n \"tag_lpPQ21kXEYfb9az3jRoVIVw4RBk\",\n ],\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.Update(ctx, \"vlan_VaNmodjeObE8W\", operations.UpdateVirtualNetworkPrivateNetworksRequestBody{\n Data: operations.UpdateVirtualNetworkPrivateNetworksData{\n ID: \"vlan_VaNmodjeObE8W\",\n Type: operations.UpdateVirtualNetworkPrivateNetworksTypeVirtualNetworks,\n Attributes: &operations.UpdateVirtualNetworkPrivateNetworksAttributes{\n Tags: []string{\n \"tag_RjLvG6oe84IAw7BxxEGaFAXK4l4\",\n \"tag_lpPQ21kXEYfb9az3jRoVIVw4RBk\",\n },\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetwork != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.update({\n vlanId: \"vlan_VaNmodjeObE8W\",\n requestBody: {\n data: {\n id: \"vlan_VaNmodjeObE8W\",\n type: \"virtual_networks\",\n attributes: {\n tags: [\n \"tag_RjLvG6oe84IAw7BxxEGaFAXK4l4\",\n \"tag_lpPQ21kXEYfb9az3jRoVIVw4RBk\",\n ],\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Delete VLAN", "operationId": "destroy-virtual-network", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"vlan_id","in":"path","description":"The virtual network ID","required":true,"schema":{"type":"string"}}], "description": "Delete virtual network\n", "x-mint": {"href":"/api-reference/destroy-virtual-network"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-group": "virtualNetworks", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.private_networks.delete_virtual_network(vlan_id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VirtualNetworks.Delete(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.virtualNetworks.delete({\n vlanId: \"\",\n });\n\n\n}\n\nrun();" } ] }, "get": { "summary": "Retrieve VLAN", "operationId": "get-virtual-network", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [{"name":"vlan_id","in":"path","required":true,"description":"Virtual Network ID","examples":{"Success":{"value":"vlan_W6Q2D9ordKLpr"}},"schema":{"type":"string"}}], "description": "Retrieve a Virtual Network.\n", "x-mint": {"href":"/api-reference/get-virtual-network"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vlan_W6Q2D9ordKLpr","type":"virtual_networks","attributes":{"tags":[],"vid":2040,"description":"Testing vlans","created_at":null,"region":{"city":"São Paulo 255","country":"Mexico 268","site":{"id":"loc_1R3zq28EOWxyn","name":"São Paulo 255","slug":"SAO","facility":"São Paulo 255"}},"project":{"id":"proj_LA73qkknqaJ2o","name":"Incredible Wool Plate","slug":"incredible-wool-plate","description":"Heavy Duty Wooden Coat","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"assignments_count":1}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "get", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.get(vlan_id=\"vlan_W6Q2D9ordKLpr\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.Get(ctx, \"vlan_W6Q2D9ordKLpr\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetwork != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.get({\n vlanId: \"vlan_W6Q2D9ordKLpr\",\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_networks/assignments": { "get": { "summary": "List VLAN assignments", "operationId": "get-virtual-networks-assignments", "tags": ["Private Networks"], "parameters": [{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}}, {"name":"filter[vid]","in":"query","required":false,"description":"The vlan ID to filter by","schema":{"type":"string"}}, {"name":"filter[virtual_network_id]","in":"query","required":false,"description":"The virtual network ID to filter by","schema":{"type":"string"}}, {"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"}, {"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}, {"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}], "security": [{"Bearer":[]}], "description": "Returns a list of all servers assigned to virtual networks.\n", "x-speakeasy-pagination": {"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"}, {"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}}, "x-mint": {"href":"/api-reference/get-virtual-networks-assignments"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vnasg_6VE1Wd37dXnZJ","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_7vYAZqGBdMQ94","vid":1,"description":"West Inc","status":"connected","server":{"id":"sv_GnzRD5BYOM5yw","hostname":"db","label":"BRC01","locked":false,"status":"unknown"}}}, {"id":"vnasg_VaNmodjeObE8W","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_r0MK4O4kDa95w","vid":2,"description":"Reynolds-Steuber","status":"connecting","server":{"id":"sv_KXgRdRLKDv9k5","hostname":"api","label":"BRC02","locked":false,"status":"unknown"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network_assignments"}}}}}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "listAssignments", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.list_assignments(filter_server=\"217\", filter_vid=\"8\", page_size=20, page_number=1)\n\n while res is not None:\n # Handle items\n\n res = res.next()" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.ListAssignments(ctx, operations.GetVirtualNetworksAssignmentsRequest{\n FilterServer: latitudeshgosdk.Pointer(\"217\"),\n FilterVid: latitudeshgosdk.Pointer(\"8\"),\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetworkAssignments != nil {\n for {\n // handle items\n\n res, err = res.Next()\n\n if err != nil {\n // handle error\n }\n\n if res == nil {\n break\n }\n }\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.listAssignments({});\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();" } ] }, "post": { "summary": "Assign VLAN", "operationId": "assign-server-virtual-network", "tags": ["Private Networks"], "security": [{"Bearer":[]}], "parameters": [], "x-mint": {"href":"/api-reference/assign-server-virtual-network"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vnasg_LGXPdWQ8DnNWk","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_Z8rodmpGO1jLB","vid":3,"server_id":"sv_5xyZOn5vDWM0l","description":"my vlan","status":"connecting"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network_assignment"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"StorageVlanNotAssignable":{"value":{"errors":[{"code":"STORAGE_VLAN_NOT_ASSIGNABLE","title":"Storage VLAN not assignable","status":"422","detail":"This VLAN is managed by storage and cannot be assigned here."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"virtual_network_id":{"type":"string"}},"required":["server_id","virtual_network_id"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_network_assignment","attributes":{"server_id":"sv_5xyZOn5vDWM0l","virtual_network_id":"vlan_Z8rodmpGO1jLB"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"virtual_network_id":{"type":"string"}},"required":["server_id","virtual_network_id"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_network_assignment","attributes":{"server_id":"sv_5xyZOn5vDWM0l","virtual_network_id":"vlan_Z8rodmpGO1jLB"}}}}}}},"required":true}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "assign", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.private_networks.assign(data={\n \"type\": latitudesh_python_sdk.AssignServerVirtualNetworkPrivateNetworksType.VIRTUAL_NETWORK_ASSIGNMENT,\n \"attributes\": {\n \"server_id\": \"sv_5xyZOn5vDWM0l\",\n \"virtual_network_id\": \"vlan_Z8rodmpGO1jLB\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.Assign(ctx, operations.AssignServerVirtualNetworkPrivateNetworksRequestBody{\n Data: &operations.AssignServerVirtualNetworkPrivateNetworksData{\n Type: operations.AssignServerVirtualNetworkPrivateNetworksTypeVirtualNetworkAssignment,\n Attributes: &operations.AssignServerVirtualNetworkPrivateNetworksAttributes{\n ServerID: \"sv_5xyZOn5vDWM0l\",\n VirtualNetworkID: \"vlan_Z8rodmpGO1jLB\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VirtualNetworkAssignment != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.privateNetworks.assign({\n data: {\n type: \"virtual_network_assignment\",\n attributes: {\n serverId: \"sv_5xyZOn5vDWM0l\",\n virtualNetworkId: \"vlan_Z8rodmpGO1jLB\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/virtual_networks/assignments/{assignment_id}": {"delete":{ "summary": "Delete VLAN assignment", "operationId": "delete-virtual-networks-assignments", "tags": ["Private Networks"], "parameters": [{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string"}}], "security": [{"Bearer":[]}], "description": "Allow you to remove a Virtual Network assignment.\n", "x-mint": {"href":"/api-reference/delete-virtual-networks-assignments"}, "responses": {"204":{"description":"No Content"},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"StorageVlanNotAssignable":{"value":{"errors":[{"code":"STORAGE_VLAN_NOT_ASSIGNABLE","title":"Storage VLAN not assignable","status":"422","detail":"This VLAN is managed by storage and cannot be assigned here."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}, "x-speakeasy-group": "privateNetworks", "x-speakeasy-name-override": "deleteAssignment", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.private_networks.remove_assignment(assignment_id=\"vnasg_LA73qk8WDaJ2o\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.PrivateNetworks.DeleteAssignment(ctx, \"vnasg_LA73qk8WDaJ2o\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.privateNetworks.deleteAssignment({\n assignmentId: \"\",\n });\n\n\n}\n\nrun();" } ] }}, "/vpn_sessions": { "get": { "summary": "List VPN sessions", "operationId": "get-vpn-sessions", "tags": ["VPN Sessions"], "security": [{"Bearer":[]}], "parameters": [{"name":"filter[location]","in":"query","schema":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"required":false,"examples":{"Success":{"value":"SAO"}}}], "x-mint": {"href":"/api-reference/get-vpn-sessions"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vpn_mw49QDB5qagKb","type":"vpn_sessions","attributes":{"user_name":"Alvaro","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 275","country":"United States 288","site":{"id":"loc_kjQwdE2bqYNVP","name":"São Paulo 275","slug":"SAO","facility":"São Paulo 275"}},"expires_at":"2026-01-14T15:58:19+00:00","created_at":"2026-01-14T15:57:19+00:00","updated_at":"2026-01-14T15:57:19+00:00"}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/vpn_session_data_with_password"}},"meta":{"type":"object"}}}}}}}, "x-speakeasy-group": "vpnSessions", "x-speakeasy-name-override": "list", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.vpn_sessions.list(filter_location=latitudesh_python_sdk.FilterLocation.SAO)\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VpnSessions.List(ctx, operations.FilterLocationSao.ToPointer())\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.vpnSessions.list({\n filterLocation: \"SAO\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create VPN session", "operationId": "post-vpn-session", "tags": ["VPN Sessions"], "security": [{"Bearer":[]}], "parameters": [], "description": "Creates a new VPN Session.\n`NOTE:` The VPN credentials are only listed ONCE upon creation. They can however be refreshed or deleted.\n", "x-mint": {"href":"/api-reference/post-vpn-session"}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vpn_VLMmAD8EOwop2","type":"vpn_sessions","attributes":{"user_name":"Cameron","password":"8EqcGL2tsQngWe","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 277","country":"Brazil 290","site":{"id":"loc_VE1Wd3wQdXnZJ","name":"São Paulo 277","slug":"SAO","facility":"São Paulo 277"}},"expires_at":"2026-01-14T15:58:20+00:00","created_at":"2026-01-14T15:57:20+00:00","updated_at":"2026-01-14T15:57:20+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/vpn_session_with_password"}}}}}, "requestBody": {"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"properties":{"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"site":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"server_id":{"type":"string"}},"required":["site","server_id"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"attributes":{"site":"SAO","server_id":"sv_LMmAD8wyqwop2"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"properties":{"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"site":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["AMS","ASH","ASH2","BGT","BUE","CHI","DAL","FRA","FRA2","LAX","LAX2","LON","LON2","MEX2","MIA2","NYC","SAN3","SAO","SAO2","SGP","SJC2","SYD","SYD2","TOR","TYO3","TYO4"]},"server_id":{"type":"string"}}}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"attributes":{"site":"SAO","server_id":"sv_LMmAD8wyqwop2"}}}}}}},"required":true}, "x-speakeasy-group": "vpnSessions", "x-speakeasy-name-override": "create", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.vpn_sessions.create(data={\n \"attributes\": {\n \"site\": latitudesh_python_sdk.PostVpnSessionVpnSessionsSite.SAO,\n \"server_id\": \"sv_LMmAD8wyqwop2\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VpnSessions.Create(ctx, operations.PostVpnSessionVpnSessionsRequestBody{\n Data: &operations.PostVpnSessionVpnSessionsData{\n Attributes: &operations.PostVpnSessionVpnSessionsAttributes{\n Site: operations.PostVpnSessionVpnSessionsSiteSao,\n ServerID: \"sv_LMmAD8wyqwop2\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.VpnSessionWithPassword != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.vpnSessions.create({\n data: {\n attributes: {\n site: \"SAO\",\n serverId: \"sv_LMmAD8wyqwop2\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/vpn_sessions/{vpn_session_id}/refresh_password": {"patch":{ "summary": "Refresh VPN session", "operationId": "put-vpn-session", "tags": ["VPN Sessions"], "security": [{"Bearer":[]}], "parameters": [{"name":"vpn_session_id","in":"path","required":true,"examples":{"Success":{"value":"vpn_pRMLydp0dQKr1"}},"schema":{"type":"string"}}], "description": "Refreshing an existing VPN Session will create new credentials for that session\n", "x-mint": {"href":"/api-reference/put-vpn-session"}, "responses": {"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vpn_pRMLydp0dQKr1","type":"vpn_sessions","attributes":{"user_name":"Alexis","password":"34xr0yTqaTrNyJFI","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 279","country":"Germany 292","site":{"id":"loc_3YjJOLexdvZ87","name":"São Paulo 279","slug":"SAO","facility":"São Paulo 279"}},"expires_at":"2026-01-14T15:58:20+00:00","created_at":"2026-01-14T15:57:20+00:00","updated_at":"2026-01-14T15:57:20+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/vpn_session_with_password"}}}}}, "x-speakeasy-group": "vpnSessions", "x-speakeasy-name-override": "refreshPassword", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.vpn_sessions.refresh_password(vpn_session_id=\"vpn_pRMLydp0dQKr1\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VpnSessions.RefreshPassword(ctx, \"vpn_pRMLydp0dQKr1\")\n if err != nil {\n log.Fatal(err)\n }\n if res.VpnSessionWithPassword != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.vpnSessions.refreshPassword({\n vpnSessionId: \"vpn_pRMLydp0dQKr1\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/vpn_sessions/{vpn_session_id}": {"delete":{ "summary": "Delete VPN session", "operationId": "delete-vpn-session", "tags": ["VPN Sessions"], "security": [{"Bearer":[]}], "parameters": [{"name":"vpn_session_id","in":"path","required":true,"schema":{"type":"string"}}], "description": "Deletes an existing VPN Session.\n", "x-mint": {"href":"/api-reference/delete-vpn-session"}, "responses": {"204":{"description":"No Content"}}, "x-speakeasy-group": "vpnSessions", "x-speakeasy-name-override": "delete", "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.vpn_sessions.delete(vpn_session_id=\"invalid\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.VpnSessions.Delete(ctx, \"invalid\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.vpnSessions.delete({\n vpnSessionId: \"\",\n });\n\n\n}\n\nrun();" } ] }}, "/managed_databases/{managed_database_id}/metrics": {"get":{ "summary": "Show managed database metrics", "operationId": "show-managed-database-metrics", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "parameters": [{"name":"managed_database_id","in":"path","required":true,"description":"Managed database ID","schema":{"type":"string"}}, {"name":"period","in":"query","required":false,"description":"Time window in seconds. One of 1800, 3600, 21600, 86400, 604800 (default 1800).","schema":{"type":"integer"}}, {"name":"queries","in":"query","required":false,"description":"Comma-separated metrics to fetch. Defaults to all: cpuUsage, memoryUsage, tpsUsage, maxConnections, deadlocks, blockedQueries, databaseSize.","schema":{"type":"string"}}], "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"type":"object","required":["from","to","metrics"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"metrics":{"type":"object","additionalProperties":{"type":"object","required":["unit","current","points"],"properties":{"unit":{"type":"string","example":"ratio"},"current":{"type":"number","nullable":true,"example":0.0041},"points":{"type":"array","items":{"type":"object","required":["timestamp","value"],"properties":{"timestamp":{"type":"string","format":"date-time"},"value":{"type":"number"}}}}}}}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.show_managed_database_metrics(managed_database_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.ShowManagedDatabaseMetrics(ctx, \"\", nil, nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.showManagedDatabaseMetrics({\n managedDatabaseId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }}, "/managed_databases": { "get": { "summary": "List managed databases", "operationId": "list-managed-databases", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/list-managed-databases"}, "parameters": [{"name":"project_id","in":"query","required":true,"schema":{"type":"string"},"description":"The project slug to filter databases by"}, {"name":"engine","in":"query","required":false,"schema":{"type":"string"},"example":"postgres","description":"Filter by database engine"}], "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_databases"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.list_managed_databases(project_id=\"\", engine=\"postgres\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.ListManagedDatabases(ctx, \"\", latitudeshgosdk.Pointer(\"postgres\"))\n if err != nil {\n log.Fatal(err)\n }\n if res.ManagedDatabases != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.listManagedDatabases({\n projectId: \"\",\n engine: \"postgres\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "post": { "summary": "Create a managed database", "operationId": "create-managed-database", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/create-managed-database"}, "parameters": [], "requestBody": {"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/managed_database_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_database_payload"}}}}, "responses": {"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_database"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "import latitudesh_python_sdk\nfrom latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.create_managed_database(data={\n \"type\": latitudesh_python_sdk.ManagedDatabasePayloadType.MANAGED_DATABASES,\n \"attributes\": {\n \"name\": \"my-postgres-db\",\n \"project_id\": \"proj_ABC123\",\n \"region\": \"ASH\",\n \"plan\": \"db.psql.small\",\n \"engine\": \"postgres\",\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.CreateManagedDatabase(ctx, components.ManagedDatabasePayload{\n Data: &components.ManagedDatabasePayloadData{\n Type: components.ManagedDatabasePayloadTypeManagedDatabases.ToPointer(),\n Attributes: &components.ManagedDatabasePayloadAttributes{\n Name: \"my-postgres-db\",\n ProjectID: \"proj_ABC123\",\n Region: \"ASH\",\n Plan: \"db.psql.small\",\n Engine: \"postgres\",\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.ManagedDatabase != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.createManagedDatabase({\n data: {\n type: \"managed_databases\",\n attributes: {\n name: \"my-postgres-db\",\n projectId: \"proj_ABC123\",\n region: \"ASH\",\n plan: \"db.psql.small\",\n engine: \"postgres\",\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] } }, "/managed_databases/{id}": { "get": { "summary": "Show a managed database", "operationId": "show-managed-database", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/show-managed-database"}, "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Managed database ID"}], "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_database"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.show_managed_database(id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.ShowManagedDatabase(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res.ManagedDatabase != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.showManagedDatabase({\n id: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "patch": { "summary": "Update a managed database", "operationId": "update-managed-database", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/update-managed-database"}, "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Managed database ID"}], "requestBody": {"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/managed_database_update_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_database_update_payload"}}}}, "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/managed_database"}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.update_managed_database(id=\"\", data={\n \"attributes\": {\n \"trusted_sources\": [\n \"203.0.113.0/24\",\n \"198.51.100.0/24\",\n ],\n \"parameters\": {\n \"shared_buffers\": \"256MB\",\n \"work_mem\": \"16MB\",\n \"effective_cache_size\": \"1GB\",\n },\n \"pooler\": {\n \"enabled\": True,\n \"default_pool_size\": 30,\n \"max_client_conn\": 200,\n },\n \"backup\": {\n \"enabled\": True,\n \"schedule\": \"0 0 0 * * *\",\n \"s3Endpoint\": \"https://s3.amazonaws.com\",\n \"bucketName\": \"my-db-backups\",\n \"path\": \"prod/postgres\",\n \"retentionPolicy\": \"7\",\n },\n \"access_credentials\": {\n \"access_key_id\": \"AKIAIOSFODNN7EXAMPLE\",\n \"secret_access_key\": \"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\n },\n \"supabase\": True,\n },\n })\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.UpdateManagedDatabase(ctx, \"\", components.ManagedDatabaseUpdatePayload{\n Data: &components.ManagedDatabaseUpdatePayloadData{\n Attributes: &components.ManagedDatabaseUpdatePayloadAttributes{\n TrustedSources: []string{\n \"203.0.113.0/24\",\n \"198.51.100.0/24\",\n },\n Parameters: map[string]any{\n \"shared_buffers\": \"256MB\",\n \"work_mem\": \"16MB\",\n \"effective_cache_size\": \"1GB\",\n },\n Pooler: map[string]any{\n \"enabled\": true,\n \"default_pool_size\": 30,\n \"max_client_conn\": 200,\n },\n Backup: map[string]any{\n \"enabled\": true,\n \"schedule\": \"0 0 0 * * *\",\n \"s3Endpoint\": \"https://s3.amazonaws.com\",\n \"bucketName\": \"my-db-backups\",\n \"path\": \"prod/postgres\",\n \"retentionPolicy\": \"7\",\n },\n AccessCredentials: &components.AccessCredentials{\n AccessKeyID: latitudeshgosdk.Pointer(\"AKIAIOSFODNN7EXAMPLE\"),\n SecretAccessKey: latitudeshgosdk.Pointer(\"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\"),\n },\n Supabase: latitudeshgosdk.Pointer(true),\n },\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.ManagedDatabase != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.updateManagedDatabase({\n id: \"\",\n managedDatabaseUpdatePayload: {\n data: {\n attributes: {\n trustedSources: [\n \"203.0.113.0/24\",\n \"198.51.100.0/24\",\n ],\n parameters: {\n \"shared_buffers\": \"256MB\",\n \"work_mem\": \"16MB\",\n \"effective_cache_size\": \"1GB\",\n },\n pooler: {\n \"enabled\": true,\n \"default_pool_size\": 30,\n \"max_client_conn\": 200,\n },\n backup: {\n \"enabled\": true,\n \"schedule\": \"0 0 0 * * *\",\n \"s3Endpoint\": \"https://s3.amazonaws.com\",\n \"bucketName\": \"my-db-backups\",\n \"path\": \"prod/postgres\",\n \"retentionPolicy\": \"7\",\n },\n accessCredentials: {\n accessKeyId: \"AKIAIOSFODNN7EXAMPLE\",\n secretAccessKey: \"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\n },\n supabase: true,\n },\n },\n },\n });\n\n console.log(result);\n}\n\nrun();" } ] }, "delete": { "summary": "Destroy a managed database", "operationId": "destroy-managed-database", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/destroy-managed-database"}, "parameters": [{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Managed database ID"}], "responses": {"204":{"description":"No Content"}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n latitudesh.managed_databases.destroy_managed_database(id=\"\")\n\n # Use the SDK ..." }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.DestroyManagedDatabase(ctx, \"\")\n if err != nil {\n log.Fatal(err)\n }\n if res != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n await latitudesh.managedDatabases.destroyManagedDatabase({\n id: \"\",\n });\n\n\n}\n\nrun();" } ] } }, "/managed_databases/{managed_database_id}/backups": {"get":{ "summary": "List managed database backups", "operationId": "list-managed-database-backups", "tags": ["Managed Databases"], "security": [{"Bearer":[]}], "x-mint": {"href":"/api-reference/list-managed-database-backups"}, "parameters": [{"name":"managed_database_id","in":"path","required":true,"schema":{"type":"string"},"description":"Managed database ID"}, {"name":"phase","in":"query","required":false,"schema":{"type":"string"},"description":"Filter backups by phase. Use 'completed' to return only finished backups."}], "responses": {"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"type":"object","required":["scheduled_backup","backups"],"properties":{"scheduled_backup":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"schedule":{"type":"string","nullable":true},"suspended":{"type":"boolean"},"immediate":{"type":"boolean"},"last_scheduled_at":{"type":"string","nullable":true}}},"backups":{"type":"array","items":{"type":"object","required":["id","phase","created_at"],"properties":{"id":{"type":"string"},"phase":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}}}}}}}}}}, "x-codeSamples": [ { "lang": "python", "label": "Python (SDK)", "source": "from latitudesh_python_sdk import Latitudesh\nimport os\n\n\nwith Latitudesh(\n bearer=os.getenv(\"LATITUDESH_BEARER\", \"\"),\n) as latitudesh:\n\n res = latitudesh.managed_databases.list_managed_database_backups(managed_database_id=\"\")\n\n # Handle response\n print(res)" }, { "lang": "go", "label": "Go (SDK)", "source": "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := latitudeshgosdk.New(\n latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n )\n\n res, err := s.ManagedDatabases.ListManagedDatabaseBackups(ctx, \"\", nil)\n if err != nil {\n log.Fatal(err)\n }\n if res.Object != nil {\n // handle response\n }\n}" }, { "lang": "typescript", "label": "Typescript (SDK)", "source": "import { Latitudesh } from \"latitudesh-typescript-sdk\";\n\nconst latitudesh = new Latitudesh({\n bearer: process.env[\"LATITUDESH_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await latitudesh.managedDatabases.listManagedDatabaseBackups({\n managedDatabaseId: \"\",\n });\n\n console.log(result);\n}\n\nrun();" } ] }} }, "components": { "schemas": { "traffic_quota": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["traffic_quota"]},"attributes":{"type":"object","properties":{"quota_per_project":{"type":"array","items":{"type":"object","properties":{"project_id":{"type":"string"},"project_slug":{"type":"string"},"price":{"type":"integer","nullable":true},"billing_method":{"type":"string"},"quota_per_region":{"type":"array","items":{"type":"object","properties":{"region_id":{"type":"string"},"region_slug":{"type":"string"},"price":{"type":"integer","nullable":true},"quota_in_tb":{"type":"object","properties":{"granted":{"type":"integer"},"additional":{"type":"integer"},"total":{"type":"integer"}}},"quota_in_mbps":{"type":"object","properties":{"granted":{"type":"integer"},"additional":{"type":"integer"},"total":{"type":"integer"}}}}}}}}}}}}},"meta":{"type":"object"}}}, "traffic": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["traffic"]},"attributes":{"type":"object","properties":{"from_date":{"type":"integer","description":"The start timestamp. Must be a unix timestamp"},"to_date":{"type":"integer","description":"The end timestamp. Must be a unix timestamp"},"regions":{"type":"array","items":{"type":"object","properties":{"region_slug":{"type":"string"},"total_inbound_gb":{"type":"integer","description":"Value in GB"},"total_outbound_gb":{"type":"integer","description":"Value in GB"},"total_inbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of inbound bandwidth for this region. Value in Mbps"},"total_outbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of outbound bandwidth for this region. Value in Mbps"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"The datetime of the day"},"inbound_gb":{"type":"integer","description":"Value in GB"},"outbound_gb":{"type":"integer","description":"Value in GB"},"avg_outbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"avg_inbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"outbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"inbound_speed_mbps":{"type":"number","description":"Value in Mbps"}}}}}}},"total_inbound_gb":{"type":"integer","description":"Value in GB"},"total_outbound_gb":{"type":"integer","description":"Value in GB"},"total_inbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of inbound bandwidth across all regions. This is a global percentile, not a sum of regional percentiles. Value in Mbps"},"total_outbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of outbound bandwidth across all regions. This is a global percentile, not a sum of regional percentiles. Value in Mbps"}}}}},"meta":{"type":"object"}}}, "error_object": {"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string"},"parameter":{"type":"string"}}},"meta":{"type":"object"}}}}}}, "project": {"type":"object","properties":{"id":{"type":"string","description":"The project ID"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","description":"The tags assigned to the project","items":{"type":"object"}},"name":{"type":"string","description":"The project name"},"slug":{"type":"string","description":"A unique project identifier"},"description":{"type":"string","nullable":true,"description":"The project description"},"billing_type":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Yearly","Monthly","Hourly","Normal","Custom"]},"billing_method":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Normal","95th percentile"]},"cost":{"type":"string","nullable":true},"bandwidth_alert":{"type":"boolean","nullable":true,"description":"Whether bandwidth quota alerts are enabled for the project"},"environment":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Development","Staging","Production"]},"provisioning_type":{"type":"string","nullable":true,"description":"The project provisioning model, either on_demand (pay-as-you-go, hourly or monthly billing) or reserved (annual contract with yearly billing). Defaults to on_demand."},"stats":{"type":"object","properties":{"databases":{"type":"number","description":"The number of database servers assigned to the project"},"ip_addresses":{"type":"number","description":"The number of IP addresses assigned to the project"},"prefixes":{"type":"number","description":"The IP address prefixes in the project"},"servers":{"type":"number","description":"The number of servers assigned to the project"},"storages":{"type":"number","description":"The number of storages assigned to the project"},"virtual_machines":{"type":"number","description":"The number of active virtual machines assigned to the project"},"vlans":{"type":"number","description":"The number of VLANs assigned to the project"}}},"billing":{"type":"object","properties":{"subscription_id":{"type":"string"},"type":{"type":"string"},"method":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}, "projects": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/project"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "project_include": {"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"billing_type":{"type":"string","nullable":true},"provisioning_type":{"type":"string","nullable":true},"billing_method":{"type":"string","nullable":true},"bandwidth_alert":{"type":"boolean"},"environment":{"type":"string","nullable":true},"billing":{"type":"object","properties":{"subscription_id":{"type":"string","nullable":true},"type":{"type":"string"},"method":{"type":"string"}}},"stats":{"type":"object","properties":{"databases":{"type":"integer"},"ip_addresses":{"type":"integer"},"prefixes":{"type":"integer"},"servers":{"type":"integer"},"storages":{"type":"integer"},"virtual_machines":{"type":"integer"},"vlans":{"type":"integer"}}}}}, "ip_address": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/ip_address_data"},"meta":{"type":"object"}}}, "ip_address_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ip_addresses"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"cidr":{"type":"string","nullable":true},"family":{"type":"string","enum":["IPv4","IPv6"]},"gateway":{"type":"string","nullable":true},"netmask":{"type":"string"},"type":{"type":"string","enum":["Public","Private","Elastic"]},"public":{"type":"boolean"},"management":{"type":"boolean"},"additional":{"type":"boolean"},"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"region":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}},"available":{"type":"boolean"},"assignment":{"type":"object","description":"Server assignment information. Returns an empty object when the IP is not assigned to an active server (e.g., when the server is decommissioning or deleted). The hostname is null when the assigned server has no hostname set.","properties":{"server_id":{"type":"string"},"hostname":{"type":"string","nullable":true},"assigned_at":{"type":"string","nullable":true}}},"elastic":{"type":"object","description":"Elastic IP details. Returns an empty object when the IP is not an Elastic IP.","properties":{"id":{"type":"string"},"mode":{"type":"string"},"status":{"type":"string"}}},"created_at":{"type":"string","format":"date-time","nullable":true}}}}}, "ip_addresses": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ip_address_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "virtual_network": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_network_data"},"meta":{"type":"object"}}}, "virtual_network_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"vid":{"type":"integer","description":"vlan ID of the virtual network"},"name":{"type":"string","description":"Name of the virtual network"},"description":{"type":"string","description":"Description of the virtual network"},"project":{"$ref":"#/components/schemas/project_include"},"region":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"facility":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"assignments_count":{"type":"integer","description":"Amount of devices assigned to the virtual network"},"tags":{"type":"array","description":"Tags associated with the virtual network","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"storage":{"type":"boolean","description":"Whether this is an auto-provisioned storage service VLAN"}}}}}, "virtual_networks": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_network_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "virtual_network_assignment": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_network_assignment_data"},"meta":{"type":"object"}}}, "virtual_network_assignment_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string"},"vid":{"type":"integer"},"description":{"type":"string"},"status":{"type":"string"},"server":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"label":{"type":"string"},"locked":{"type":"boolean"},"status":{"type":"string"}}}}}}}, "virtual_network_assignments": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_network_assignment_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "ipmi_session": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ipmi_sessions"]},"attributes":{"type":"object","properties":{"ipmi_address":{"type":"string","description":"The IPMI IP Address"},"ipmi_url":{"type":"string","nullable":true,"description":"The IPMI URL for direct access"},"ipmi_username":{"type":"string","description":"The IPMI username"},"ipmi_password":{"type":"string","description":"The IPMI password"}}}}}}}, "kubernetes_cluster": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/kubernetes_cluster_data"}}}, "kubernetes_cluster_create_response": {"type":"object","description":"Response schema for cluster creation (minimal fields returned during provisioning)","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"status":{"type":"string","description":"The cluster status (always 'provisioning' on creation)"},"control_plane_endpoint":{"type":"string","nullable":true,"description":"The URL endpoint for the Kubernetes API server"}}}}}}}, "kubernetes_cluster_summary_data": {"type":"object","description":"Summary representation of a cluster (used in list responses)","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"phase":{"type":"string","description":"The current phase of the cluster lifecycle.","x-speakeasy-unknown-values":"allow","enum":["Pending","Provisioning","Provisioned","Upgrading","Deleting","Failed","Unknown"]},"ready":{"type":"boolean","description":"Whether the cluster is ready to accept workloads"},"infrastructure_ready":{"type":"boolean","description":"Whether the underlying infrastructure is ready"},"control_plane_ready":{"type":"boolean","description":"Whether the control plane is ready"},"message":{"type":"string","description":"Human-readable status message describing the current provisioning state"},"steps":{"type":"array","description":"Provisioning progress steps for dashboard display","items":{"type":"object","properties":{"name":{"type":"string","description":"Step identifier","enum":["infrastructure","control_plane","workers"]},"status":{"type":"string","description":"Current status of this step","enum":["pending","in_progress","completed"]}}}},"last_status_change":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the most recent status condition change"},"created_at":{"type":"string","format":"date-time","description":"When the cluster was created"}}}}}, "kubernetes_cluster_data": {"type":"object","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"phase":{"type":"string","description":"The current phase of the cluster lifecycle. 'Upgrading' is reported while a Kubernetes version upgrade is rolling through the cluster.","x-speakeasy-unknown-values":"allow","enum":["Pending","Provisioning","Provisioned","Upgrading","Deleting","Failed","Unknown"]},"ready":{"type":"boolean","description":"Whether the cluster is ready to accept workloads"},"control_plane_endpoint":{"type":"string","nullable":true,"description":"The URL endpoint for the Kubernetes API server"},"kubeconfig_url":{"type":"string","nullable":true,"description":"The URL to retrieve the kubeconfig file"},"location":{"type":"string","nullable":true,"description":"The site/region where the cluster is deployed. May be null when the cluster's resources are not fully available (e.g., incomplete provisioning or deletion in progress)."},"load_balancer_ips":{"type":"array","description":"IP addresses assigned to the cluster's load balancer","items":{"type":"string"}},"kubernetes_version":{"type":"string","nullable":true,"description":"The Kubernetes version running on the cluster. May be null when the control plane resource is not fully available (e.g., incomplete provisioning or deletion in progress)."},"version_status":{"type":"string","description":"The cluster's version status relative to available upgrades","enum":["up_to_date","upgrade_available","unsupported","unknown"]},"available_upgrade":{"type":"string","nullable":true,"description":"The next available Kubernetes version for upgrade. Null if the cluster is already on the latest version, or if version status is unknown or unsupported."},"created_at":{"type":"string","format":"date-time","description":"When the cluster was created"},"plan":{"type":"string","nullable":true,"description":"The machine plan slug for control plane nodes. May be null when the control plane machine template is not available (e.g., incomplete provisioning or deletion in progress)."},"worker_plan":{"type":"string","nullable":true,"description":"The machine plan slug for worker nodes. Null if no workers exist."},"control_plane_count":{"type":"integer","description":"Number of control plane node replicas"},"worker_count":{"type":"integer","description":"Number of worker node replicas. Returns 0 if no workers exist."},"control_plane":{"type":"object","nullable":true,"description":"Control plane status information","properties":{"ready":{"type":"boolean"},"replicas":{"type":"integer"},"ready_replicas":{"type":"integer"}}},"workers":{"type":"object","nullable":true,"description":"Worker nodes status information","properties":{"replicas":{"type":"integer"},"ready_replicas":{"type":"integer"},"available_replicas":{"type":"integer"}}},"worker_status":{"type":"string","nullable":true,"description":"Current status of worker nodes. 'idle' when 0 workers, 'ready' when all workers are ready, 'scaling' when workers are being provisioned/removed, 'upgrading' while a Kubernetes version upgrade is rolling through the workers, 'error' when a worker has failed.","x-speakeasy-unknown-values":"allow","enum":["idle","ready","scaling","upgrading","error"]},"control_plane_status":{"type":"string","description":"Current status of control plane nodes. 'ready' when control plane is operational, 'scaling' when nodes are being provisioned/removed, 'upgrading' while a Kubernetes version upgrade is rolling through the control plane, 'error' when a control plane node has failed.","x-speakeasy-unknown-values":"allow","enum":["ready","scaling","upgrading","error"]},"infrastructure_ready":{"type":"boolean","description":"Whether the underlying infrastructure is ready"},"control_plane_ready":{"type":"boolean","description":"Whether the control plane is ready"},"message":{"type":"string","description":"Human-readable status message describing the current provisioning state"},"steps":{"type":"array","description":"Provisioning progress steps for dashboard display","items":{"type":"object","properties":{"name":{"type":"string","description":"Step identifier","enum":["infrastructure","control_plane","workers"]},"status":{"type":"string","description":"Current status of this step","enum":["pending","in_progress","completed"]}}}},"last_status_change":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the most recent status condition change"},"failure_message":{"type":"string","nullable":true,"description":"Error message if the cluster has failed"},"failure_reason":{"type":"string","nullable":true,"description":"Reason code for cluster failure"},"nodes":{"type":"array","description":"List of nodes (servers) in the cluster","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the node (machine name)"},"name":{"type":"string","description":"Name of the node"},"hostname":{"type":"string","nullable":true,"description":"Hostname of the node"},"server_id":{"type":"string","nullable":true,"description":"The Latitude server ID associated with this node"},"type":{"type":"string","description":"The role of this node in the cluster","enum":["control_plane","worker"]},"status":{"type":"string","description":"Current status of the node","enum":["ready","pending","failed","deleting"]},"ip":{"type":"string","nullable":true,"description":"Primary IP address (external if available, otherwise internal)"},"internal_ip":{"type":"string","nullable":true,"description":"Internal/private IP address"},"external_ip":{"type":"string","nullable":true,"description":"External/public IP address"}}}},"project":{"type":"object","description":"The project this cluster belongs to","properties":{"id":{"type":"string","description":"The project ID"},"name":{"type":"string","description":"The project name"},"slug":{"type":"string","description":"The project slug"}}}}}}}, "kubernetes_clusters": {"type":"object","description":"Response schema for listing clusters (uses summary representation)","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/kubernetes_cluster_summary_data"}}}}, "kubernetes_available_versions": {"type":"object","description":"Response schema for available Kubernetes versions","properties":{"data":{"type":"array","items":{"type":"object","properties":{"latest":{"type":"string","description":"The latest full Kubernetes version string for this minor version (e.g., v1.35.3+rke2r1)"},"minor":{"type":"string","description":"The minor version number (e.g., 1.35)"}}}}}}, "kubernetes_cluster_kubeconfig": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The cluster name"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"cluster_name":{"type":"string","description":"The cluster name"},"kubeconfig":{"type":"string","description":"The kubeconfig YAML content for connecting to the cluster"}}}}}}}, "create_kubernetes_cluster": {"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"attributes":{"type":"object","required":["project_id","site","plan"],"properties":{"name":{"type":"string","nullable":true,"description":"The cluster name. Must follow Kubernetes naming rules: lowercase alphanumeric or hyphens, must start and end with alphanumeric, max 63 characters. Auto-generated if omitted."},"project_id":{"type":"string","description":"The project ID where the cluster will be created"},"site":{"type":"string","description":"The site/region code where to deploy the cluster (e.g., SAN3)"},"plan":{"type":"string","description":"The machine plan for control plane nodes (e.g., c2-small-x86)"},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of SSH key IDs to use for node access. All keys must exist and belong to your team."},"worker_plan":{"type":"string","nullable":true,"description":"The machine plan for worker nodes. Defaults to the control plane plan if not specified."},"kubernetes_version":{"type":"string","nullable":true,"description":"The Kubernetes version to install. Defaults to v1.34.3+rke2r1."},"control_plane_count":{"type":"integer","nullable":true,"description":"Number of control plane nodes. Defaults to 1."},"worker_count":{"type":"integer","nullable":true,"description":"Number of worker nodes. Defaults to 1."},"operating_system":{"type":"string","nullable":true,"description":"The operating system for the nodes. Defaults to ubuntu_24_04_x64_lts."}}}}}}}, "update_kubernetes_cluster": {"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"attributes":{"type":"object","description":"Provide one of: worker_count, control_plane_count (for scaling), or kubernetes_version (for upgrades). These are mutually exclusive operations.","properties":{"worker_count":{"type":"integer","description":"Desired number of worker nodes. Must be between 0 and 10. Mutually exclusive with control_plane_count and kubernetes_version.","minimum":0,"maximum":10},"control_plane_count":{"type":"integer","description":"Desired number of control plane nodes. Minimum 1. Mutually exclusive with worker_count and kubernetes_version.","minimum":1},"worker_plan":{"type":"string","nullable":true,"description":"Plan slug for worker nodes. Required when scaling from 0 workers. Ignored when scaling an existing deployment."},"kubernetes_version":{"type":"string","description":"Target Kubernetes version for upgrade (e.g., v1.35.0+rke2r1). Mutually exclusive with scaling operations. Must be one minor version higher than current."}}}}}}}, "kubernetes_cluster_update_response": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"id":{"type":"string","description":"The cluster ID (format: kc_)"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"status":{"type":"string","enum":["scaling","upgrading","unchanged"],"description":"The update status. 'scaling' indicates nodes are being added or removed. 'upgrading' indicates a version upgrade is in progress. 'unchanged' indicates no change was needed."},"worker_count":{"type":"integer","nullable":true,"description":"The requested number of worker nodes. Present when scaling workers."},"control_plane_count":{"type":"integer","nullable":true,"description":"The requested number of control plane nodes. Present when scaling control plane."},"kubernetes_version":{"type":"string","nullable":true,"description":"The target Kubernetes version. Present when upgrading version."}}}}}}}, "lks_cluster_data": {"type":"object","properties":{"id":{"type":"string","example":"lksc_pRMLydp0dQKr1"},"type":{"type":"string","enum":["lks_clusters"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"project_id":{"type":"string","nullable":true},"site":{"type":"string","nullable":true},"status":{"type":"string","nullable":true,"description":"Lifecycle state (open enum, sourced from NetBox/controller)","example":"provisioning"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"description":"Machine-readable status reason (open enum)"},"control_plane_endpoint":{"type":"string","nullable":true},"kubeconfig_url":{"type":"string","nullable":true},"kubernetes_version":{"type":"string","nullable":true,"example":"1.36.3"},"platform_version":{"type":"string","nullable":true,"example":"lks-v1.36.3-002"},"network":{"type":"object","description":"Configured cluster CIDRs. Always present: the ranges are columns on the cluster with platform defaults.","properties":{"pod_cidrs":{"type":"array","items":{"type":"string"}},"service_cidrs":{"type":"array","items":{"type":"string"}},"node_cidrs":{"type":"array","items":{"type":"string"}}}},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}}}}, "lks_cluster": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/lks_cluster_data"}}}, "lks_clusters": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lks_cluster_data"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}, "create_lks_cluster": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["lks_clusters"]},"attributes":{"type":"object","properties":{"name":{"type":"string","maxLength":100,"description":"Display name for the cluster"},"project_id":{"type":"string","description":"The project ID"},"site":{"type":"string","description":"Site slug (single site per cluster)"},"kubernetes_version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$","example":"1.36.3","description":"Kubernetes patch, exactly as listed by /lks/available_versions"},"description":{"type":"string","maxLength":200,"description":"Optional customer description"},"network":{"type":"object","nullable":true,"description":"Optional network overrides; platform defaults used if omitted","properties":{"pod_cidrs":{"type":"array","items":{"type":"string"}},"service_cidrs":{"type":"array","items":{"type":"string"}},"node_cidrs":{"type":"array","items":{"type":"string"}}}}},"required":["name","project_id","site","kubernetes_version"]}},"required":["type","attributes"]}},"required":["data"]}, "update_lks_cluster": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["lks_clusters"]},"attributes":{"type":"object","description":"At least one of name, description or kubernetes_version must be provided.","properties":{"name":{"type":"string","maxLength":100},"description":{"type":"string","maxLength":200},"kubernetes_version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$","example":"1.37.2","description":"Setting a newer patch consents to a control-plane upgrade. Must not be lower than the current patch (422 DOWNGRADE_NOT_ALLOWED)"}}}},"required":["type"]}},"required":["data"]}, "lks_cluster_kubeconfig": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"lksc_pRMLydp0dQKr1"},"type":{"type":"string","enum":["lks_cluster_kubeconfigs"]},"attributes":{"type":"object","properties":{"kubeconfig":{"type":"string","description":"Full kubeconfig YAML"}}}}}}}, "lks_node_pool_taint": {"type":"object","properties":{"key":{"type":"string","example":"dedicated"},"value":{"type":"string","nullable":true,"example":"gpu","description":"May be empty; max 63 chars. Absent or null when the taint carries no value."},"effect":{"type":"string","enum":["NoSchedule","PreferNoSchedule","NoExecute"],"example":"NoSchedule"}},"required":["key","effect"]}, "lks_node_pool_data": {"type":"object","properties":{"id":{"type":"string","example":"lksnp_9dQKr1pRMLyd"},"type":{"type":"string","enum":["lks_node_pools"]},"attributes":{"type":"object","properties":{"name":{"type":"string","nullable":true,"example":"pool-a"},"type":{"type":"string","example":"bare_metal"},"mode":{"type":"string","example":"on_demand"},"plan":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"count":{"type":"integer","nullable":true},"max_pods_per_node":{"type":"integer","nullable":true,"example":110,"description":"null when it was not set at creation — the platform default (110) applies"},"kubernetes_version":{"type":"string","nullable":true,"example":"1.36.3"},"platform_version":{"type":"string","nullable":true,"example":"lks-v1.36.3-002"},"status":{"type":"string","nullable":true,"example":"provisioning"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"description":"Machine-readable status reason (open enum)"},"ready_nodes":{"type":"integer","nullable":true},"labels":{"type":"object","additionalProperties":{"type":"string"}},"taints":{"type":"array","items":{"$ref":"#/components/schemas/lks_node_pool_taint"}},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}}}}, "lks_node_pool": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/lks_node_pool_data"}}}, "lks_node_pools": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lks_node_pool_data"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}, "create_lks_node_pool": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["lks_node_pools"]},"attributes":{"type":"object","properties":{"type":{"type":"string","enum":["bare_metal"]},"plan":{"type":"string","description":"Plan the pool nodes are provisioned from"},"count":{"type":"integer","minimum":1,"description":"Number of nodes; must be >= 1"},"kubernetes_version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$","example":"1.36.3","description":"Patch; defaults to the cluster control-plane patch. Must not be newer than the control-plane patch (422 VERSION_SKEW)"},"max_pods_per_node":{"type":"integer","minimum":16,"maximum":500,"example":110,"description":"kubelet --max-pods for every node in the pool. Set once, at creation: it is immutable afterwards and a PATCH that carries it is rejected with 422. Omit to get the platform default (110)."},"name":{"type":"string","maxLength":100,"description":"Optional; generated when omitted"},"description":{"type":"string","maxLength":200},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Kubernetes labels (max 50). Keys use Kubernetes label-key syntax; reserved prefixes (kubernetes.io, k8s.io, cluster.x-k8s.io, lks.latitude.sh and their subdomains) are rejected with 422. Values may be empty. The whole map is stored as sent."},"taints":{"type":"array","description":"Kubernetes taints (max 50). Each (key, effect) pair must be unique. Key follows the same syntax and reserved-prefix rules as a label key.","items":{"$ref":"#/components/schemas/lks_node_pool_taint"}}},"required":["plan","count"]}},"required":["type","attributes"]}},"required":["data"]}, "update_lks_node_pool": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["lks_node_pools"]},"attributes":{"type":"object","description":"At least one attribute must be provided. max_pods_per_node is set once, at creation, and is not updatable: a PATCH that carries it is rejected with 422.","properties":{"name":{"type":"string","maxLength":100},"count":{"type":"integer","minimum":1,"description":"must be >= 1"},"kubernetes_version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$","description":"A newer patch rolls a node-recreating upgrade. Must not be lower than the current patch (422 DOWNGRADE_NOT_ALLOWED) nor newer than the control-plane patch (422 VERSION_SKEW)"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Declarative replace. Omit to leave labels unchanged; send the whole map to replace it (not a merge); send {} to clear all. Same validation as on create."},"taints":{"type":"array","items":{"$ref":"#/components/schemas/lks_node_pool_taint"},"description":"Declarative replace. Omit to leave taints unchanged; send the whole list to replace it; send [] to clear all. Same validation as on create."},"description":{"type":"string","maxLength":200}}}},"required":["type"]}},"required":["data"]}, "lks_kubernetes_version_data": {"type":"object","properties":{"id":{"type":"string","example":"1.36.3"},"type":{"type":"string","enum":["lks_kubernetes_versions"]},"attributes":{"type":"object","properties":{"version":{"type":"string","example":"1.36.3"},"default":{"type":"boolean"},"available_for_creation":{"type":"boolean"},"available_for_upgrade":{"type":"boolean"}}}}}, "lks_kubernetes_versions": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lks_kubernetes_version_data"}}}}, "lks_site_data": {"type":"object","properties":{"id":{"type":"string","example":"DAL2","description":"Site slug — pass it as `site` when creating a cluster"},"type":{"type":"string","enum":["lks_sites"]},"attributes":{"type":"object","properties":{"name":{"type":"string","example":"Dallas"},"slug":{"type":"string","example":"DAL2"},"facility":{"type":"string","example":"DAL2"},"country":{"$ref":"#/components/schemas/country"}}}}}, "lks_sites": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lks_site_data"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}}}}}, "lazy_sideload": {"type":"object","properties":{"meta":{"type":"object","properties":{"included":{"type":"boolean"}}}}}, "pagination_meta": {"type":"object","properties":{"stats":{"type":"object","properties":{"total":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of records, returned when `stats[total]=count` is requested"}}}}}}}, "country": {"type":"object","properties":{"slug":{"type":"string","example":"US"},"name":{"type":"string","example":"United States"}}}, "region_country": {"type":"object","properties":{"slug":{"type":"string","example":"US"},"name":{"type":"string","example":"United States"}}}, "region": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["regions"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"facility":{"type":"string","nullable":true},"country":{"$ref":"#/components/schemas/region_country"},"type":{"type":"string","nullable":true},"features":{"type":"array","items":{"type":"string","example":"public_network"},"description":"Location capabilities available at this location (e.g. `public_network`, `elastic_ip_bgp`, `object_storage`, `object_storage_high_performance`, `file_storage`, `block_storage`, `lks`)."},"network_group":{"type":"string","nullable":true,"description":"The location's network group slug (e.g. `TYO`, `LON2`)."}}}}}}}, "region_resource_data": {"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}}, "server_region_resource_data": {"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"},"rack_id":{"type":"string"},"rack_name":{"type":"string","nullable":true}}}}}, "regions": {"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["regions"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"facility":{"type":"string","nullable":true},"country":{"$ref":"#/components/schemas/country"},"type":{"type":"string","nullable":true},"features":{"type":"array","items":{"type":"string","example":"public_network"},"description":"Location capabilities available at this location (e.g. `public_network`, `elastic_ip_bgp`, `object_storage`, `object_storage_high_performance`, `file_storage`, `block_storage`, `lks`)."},"network_group":{"type":"string","nullable":true,"description":"The location's network group slug (e.g. `TYO`, `LON2`)."}}}}}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "operating_systems": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/operating_system_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "operating_system_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["operating_system"]},"attributes":{"type":"object","properties":{"features":{"type":"object","properties":{"raid":{"type":"boolean"},"ssh_keys":{"type":"boolean"},"user_data":{"type":"boolean"},"accelerate":{"type":"boolean"},"rescue":{"type":"boolean"},"workflow":{"type":"boolean"}}},"name":{"type":"string"},"slug":{"type":"string"},"distro":{"type":"string"},"user":{"type":"string"},"version":{"type":"string"},"provisionable_on":{"type":"array","items":{"type":"string"}}}}}}, "events": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/event_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "event_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["events"]},"attributes":{"type":"object","properties":{"action":{"type":"string"},"created_at":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"project":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true}}},"team":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}}},"target":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string"}}},"properties":{"type":"object","nullable":true,"description":"Additional event-specific data"}}}}}, "elastic_ip": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/elastic_ip_data"},"meta":{"type":"object"}}}, "elastic_ip_data": {"type":"object","properties":{"id":{"type":"string","nullable":true,"description":"The Elastic IP ID. May be null during initial provisioning."},"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"address":{"type":"string","description":"The IP address"},"family":{"type":"string","enum":["IPv4"],"description":"The IP address family"},"prefix_length":{"type":"integer","description":"The prefix length (e.g., 32 for a single IP)"},"mode":{"type":"string","enum":["routed","bgp"],"description":"The routing mode for this Elastic IP"},"status":{"type":"string","enum":["pending","configuring","active","moving","releasing","error"],"description":"The current status of the Elastic IP"},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the Elastic IP was created"},"server":{"type":"object","nullable":true,"description":"The server this Elastic IP is assigned to. Returns null when the Elastic IP is not assigned to a server or when the assigned server is not active (e.g., decommissioning or deleted).","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string"},"operating_system":{"type":"string","nullable":true}}},"project":{"type":"object","description":"The project this Elastic IP belongs to","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"region":{"type":"object","nullable":true,"description":"The region where this Elastic IP is located","properties":{"id":{"type":"string","description":"The region ID"},"name":{"type":"string","description":"The region name"},"location":{"type":"object","description":"The site/location within the region","properties":{"id":{"type":"string","description":"The site ID"},"name":{"type":"string","description":"The site name"},"slug":{"type":"string","description":"The site slug"}}}}}}}}}, "elastic_ips": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/elastic_ip_data"}},"meta":{"type":"object"}}}, "create_elastic_ip": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"mode":{"type":"string","enum":["routed","bgp"],"default":"routed","description":"How the elastic IP is delivered. Defaults to routed"},"server_id":{"type":"string","description":"The server to assign the elastic IP to. Required in routed mode and rejected in bgp mode, which uses server_ids"},"project_id":{"type":"string","description":"The project to create the elastic IP in"},"server_ids":{"type":"array","items":{"type":"string"},"description":"The servers that announce the elastic IP over BGP. Only used in bgp mode, where it may be omitted to allocate a VIP with no sessions"},"site":{"type":"string","description":"The site slug to allocate the elastic IP in. Only used in bgp mode, where it is required when no server_ids are given"}},"required":["project_id"]}},"required":["type"]}},"required":["data"]}, "public_network_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["public_networks"]},"attributes":{"type":"object","properties":{"ipv4":{"type":"string","description":"The IPv4 network in CIDR notation (e.g., \"203.0.113.0/27\")"},"ipv6":{"type":"string","nullable":true,"description":"The paired IPv6 /64 in CIDR notation (e.g., \"2001:db8:1234::/64\")"},"size":{"type":"integer","description":"IPv4 prefix length. Determines how many servers the public network can host.","enum":[26,27,28,29]},"activated":{"type":"boolean","description":"True once a server has been added to the public network and the public network is ready to use."},"capacity":{"type":"integer","description":"Servers this public network can host"},"ips_used":{"type":"integer"},"ips_free":{"type":"integer"},"ips":{"type":"array","description":"Every host address of the IPv4 network and what holds it. Only returned when retrieving a single public network.","items":{"type":"object","properties":{"address":{"type":"string"},"role":{"type":"string","enum":["gateway","server","elastic_ip","reserved","available"],"description":"gateway: reserved for the network gateway; server: a server on the network; elastic_ip: an elastic IP; reserved: held in IPAM but not by a server, including addresses you reserved; available: free to use"},"assignment":{"type":"object","nullable":true,"description":"The resource holding the address, when it is a server or an elastic IP","properties":{"type":{"type":"string","enum":["server","elastic_ip"]},"id":{"type":"string"},"hostname":{"type":"string","nullable":true,"description":"Servers only"}}}}}},"created_at":{"type":"string","format":"date-time"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"region":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}}}}}}, "public_network": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/public_network_data"}}}, "public_networks": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/public_network_data"}},"meta":{"type":"object"}}}, "create_public_network": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["public_networks"]},"attributes":{"type":"object","properties":{"project_id":{"type":"string","description":"The project to create the public network in"},"site":{"type":"string","description":"The site slug the public network is bound to"},"size":{"type":"integer","enum":[26,27,28,29],"description":"IPv4 prefix length. Determines how many servers the public network can host."}},"required":["project_id","site","size"]}},"required":["type"]}},"required":["data"]}, "update_public_network_ip": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["public_networks"]},"attributes":{"type":"object","properties":{"address":{"type":"string","description":"The IPv4 address, e.g. 203.0.113.4"},"reserved":{"type":"boolean","description":"true reserves an available address so servers are never attached with it; false releases an address you reserved"}},"required":["address","reserved"]}},"required":["type"]}},"required":["data"]}, "update_elastic_ip": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to move the Elastic IP to"}},"required":["server_id"]}},"required":["type","attributes"]}},"required":["data"]}, "bgp_session_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bgp_sessions"]},"attributes":{"type":"object","properties":{"status":{"type":"string","nullable":true,"enum":["pending","configuring","active","removing","error"]},"status_message":{"type":"string","nullable":true,"description":"Generic explanation when the session could not be configured. Infrastructure diagnostics are intentionally not exposed."},"server_ip":{"type":"string","nullable":true},"peer_address":{"type":"string","nullable":true,"description":"IP address on the other end of the announcing server's /31 — the address you configure as the BGP neighbor when peering. Use it as the neighbor in BIRD or as peerAddress in MetalLB. Null while the session is still pending, or when the address cannot be resolved."},"asn":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"server":{"type":"object","nullable":true,"description":"The server announcing the Elastic IP over BGP. Null when the announcer could not be resolved to a server record.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true}}},"region":{"type":"object","nullable":true,"description":"The region where this Elastic IP is located","properties":{"id":{"type":"string","description":"The region ID"},"name":{"type":"string","description":"The region name"},"location":{"type":"object","description":"The site/location within the region","properties":{"id":{"type":"string","description":"The site ID"},"name":{"type":"string","description":"The site name"},"slug":{"type":"string","description":"The site slug"}}}}}}}}}, "bgp_session": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/bgp_session_data"}}}, "bgp_sessions": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/bgp_session_data"}}}}, "create_bgp_session": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bgp_sessions"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server that will announce the elastic IP over BGP"},"requestor_id":{"type":"string","description":"Optional identifier of the requestor, recorded for auditing"}},"required":["server_id"]}},"required":["type"]}},"required":["data"]}, "firewall": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/firewall_data"},"meta":{"type":"object"}}}, "firewall_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"port":{"type":"string"},"protocol":{"type":"string"},"default":{"type":"boolean","description":"True when this rule was seeded by Latitude when the firewall was created; false for user-added rules. Read-only: this flag cannot be set through the API."},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}},"project":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}}}}}}, "firewall_server": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server":{"type":"object","description":"Present only when the assignment targets a server.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true}}},"virtual_machine":{"type":"object","description":"Present only when the assignment targets a virtual machine.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true}}},"firewall_id":{"type":"string"}}}}}}}, "firewalls": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/firewall_data"}},"meta":{"type":"object"}}}, "firewall_assignments": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/firewall_assignment_data"}},"meta":{"type":"object"}}}, "firewall_assignment_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server":{"type":"object","description":"Present only when the assignment targets a server.","properties":{"id":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"hostname":{"type":"string"}}},"virtual_machine":{"type":"object","description":"Present only when the assignment targets a virtual machine.","properties":{"id":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"hostname":{"type":"string"}}},"firewall":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"firewall_id":{"type":"string"}}}}}, "plan": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/plan_data"},"meta":{"type":"object"}}}, "plan_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["plans"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"features":{"type":"array","items":{"type":"string","enum":["ssh","raid","user_data","sev"]},"description":"List of available features for the plan"},"specs":{"type":"object","properties":{"cpu":{"type":"object","properties":{"type":{"type":"string"},"clock":{"type":"number"},"cores":{"type":"number"},"count":{"type":"number"}}},"memory":{"type":"object","properties":{"total":{"type":"number"}}},"drives":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"size":{"type":"string"},"type":{"type":"string","enum":["SSD","HDD","NVME"]}}}},"nics":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"type":{"type":"string"}}}},"gpu":{"type":"object","properties":{"count":{"type":"number"},"type":{"type":"string"},"vram_per_gpu":{"type":"number","nullable":true,"description":"VRAM per GPU in GB"},"interconnect":{"type":"string","nullable":true,"description":"GPU interconnection type (e.g., NVLink, PCIe)"}}}}},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"deploys_instantly":{"type":"array","items":{"type":"string"}},"locations":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"}},"in_stock":{"type":"array","items":{"type":"string"}}}},"stock_level":{"type":"string","enum":["unavailable","low","medium","high"]},"pricing":{"type":"object","description":"Prices keyed by ISO 4217 currency code (e.g. USD, BRL).","additionalProperties":{"type":"object","properties":{"hour":{"type":"number","nullable":true},"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}},"example":{"USD":{"hour":2.18,"month":796,"year":6686},"BRL":{"hour":11.99,"month":4376,"year":36758}}}}}},"available_operating_systems":{"type":"array","items":{"type":"string"}}}}}}, "bandwidth_packages": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"packages":{"type":"array","items":{"type":"object","properties":{"region_slug":{"type":"string"},"currency":{"type":"string"},"unit_price":{"type":"number","nullable":true},"contracted":{"type":"integer"},"total_price":{"type":"number"}}}}}}}},"meta":{"type":"object"}}}, "bandwidth_plans": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/bandwidth_plan_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "bandwidth_plan": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/bandwidth_plan_data"},"meta":{"type":"object"}}}, "bandwidth_plan_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bandwidth_plan"]},"attributes":{"type":"object","properties":{"region":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","properties":{"usd":{"type":"object","properties":{"monthly":{"type":"integer"},"hourly":{"type":"integer"},"yearly":{"type":"integer","nullable":true}}},"brl":{"type":"object","properties":{"monthly":{"type":"integer"},"hourly":{"type":"integer"},"yearly":{"type":"integer","nullable":true}}}}}}}}}, "role": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/role_data"},"meta":{"type":"object"}}}, "role_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["roles"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Role"}}}}}, "ssh_key": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"},"meta":{"type":"object"}}}, "ssh_keys": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ssh_key_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "ssh_key_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"},"fingerprint":{"type":"string","description":"SSH Key fingerprint"},"user":{"$ref":"#/components/schemas/user_include"},"project":{"$ref":"#/components/schemas/project_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"required":["type"]}, "user_data": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user_data_properties"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "user_data_object": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/user_data_properties"},"meta":{"type":"object"}}}, "user_data_properties": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"content of the User Data"},"decoded_content":{"type":"string","nullable":true,"description":"decoded content of the User Data"},"project":{"$ref":"#/components/schemas/project_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"required":["type"]}, "server": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/server_data"},"meta":{"type":"object"}}}, "servers": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/server_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "server_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"hostname":{"type":"string"},"label":{"type":"string","description":"The server label"},"price":{"type":"number","nullable":true},"status":{"type":"string","description":"`on` - The server is powered ON\n`off` - The server is powered OFF\n`unknown` - The server power status is unknown\n`disk_erasing` - The server is in reinstalling state `disk_erasing`\n`deploying` - The server is deploying or reinstalling\n`failed_deployment` - The server has failed deployment or reinstall\n`rescue_mode` - The server is in rescue mode\n`entering_rescue_mode` - The server is entering rescue mode\n`exiting_rescue_mode` - The server is exiting rescue mode\n\nWhile a server is provisioning, the provisioning state slug is returned verbatim,\nso values outside this list (e.g. `queued`, `starting_deploy`, `commissioning`)\nare possible. Treat this field as an open set, not a closed enum.\n"},"ipmi_status":{"type":"string","enum":["Unavailable","Intermittent","Normal"],"nullable":true},"role":{"type":"string","description":"The server role (e.g. Bare Metal)"},"public_network_eligible":{"type":"boolean","description":"Whether the server is eligible to attach a public network (carries the bond-vpc-enabled tag)."},"bgp_eligible":{"type":"boolean","description":"Whether the server can announce a BGP Elastic IP. Lazy loaded; request it with `extra_fields[servers]=bgp_eligible`."},"bgp_deployed":{"type":"boolean","description":"Whether the server was deployed with the BGP option."},"public_network":{"type":"object","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. The public network this server is attached onto, or null. Fetch full details from GET /public_networks/{id}.","properties":{"id":{"type":"string","example":"pn_2aBcDeFgH"},"ipv4":{"type":"string","nullable":true,"example":"10.90.0.0/26"},"ipv6":{"type":"string","nullable":true,"example":"2001:db8::/64"}}},"site":{"type":"string"},"locked":{"type":"boolean"},"legacy_network":{"type":"boolean","nullable":true,"description":"Whether the server is attached to a legacy network."},"features":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Feature slugs supported by the server hardware (e.g. `direct_remote_access`)."},"rescue_allowed":{"type":"boolean"},"primary_ipv4":{"type":"string","nullable":true},"primary_ipv6":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"scheduled_deletion_at":{"type":"string","nullable":true},"plan":{"type":"object","properties":{"id":{"type":"string","description":"The plan ID"},"name":{"type":"string","description":"The plan name"},"slug":{"type":"string","description":"The plan slug"},"billing":{"type":"string","description":"hourly/monthly pricing. Defaults to `hourly`. Appliable for `on_demand` projects only.","nullable":true}}},"operating_system":{"type":"object","properties":{"name":{"type":"string","description":"The OS name"},"slug":{"type":"string","description":"The OS slug"},"version":{"type":"string","description":"The OS description"},"features":{"type":"object","properties":{"raid":{"type":"boolean"},"ssh_keys":{"type":"boolean"},"user_data":{"type":"boolean"},"accelerate":{"type":"boolean"},"rescue":{"type":"boolean"},"workflow":{"type":"boolean"}}},"distro":{"type":"object","properties":{"name":{"type":"string","description":"The OS Distro name"},"slug":{"type":"string","description":"The OS Distro slug"},"series":{"type":"string","description":"The OS Distro Series"}}}}},"region":{"$ref":"#/components/schemas/server_region_resource_data"},"specs":{"type":"object","properties":{"cpu":{"type":"string","description":"CPU model"},"disk":{"type":"string","description":"Disk quantity and size in GB (e.g. 2 x 500GB)"},"ram":{"type":"string","description":"RAM size in GB"},"nic":{"type":"string","description":"NIC quantity and speed"},"gpu":{"type":"string","description":"GPU model and quantity, if present","nullable":true}}},"interfaces":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["external","internal","ipmi","unknown"]},"name":{"type":"string"},"mac_address":{"type":"string","nullable":true},"description":{"type":"string"}}}},"credentials":{"type":"object","nullable":true,"properties":{"username":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"type":"string"},"group_id":{"type":"integer","nullable":true}}}},"expires_at":{"type":"string","format":"date-time","nullable":true}},"description":"Latest provisioning credentials, lazy loaded. Request it with `extra_fields[servers]=credentials`. Empty when the latest provisioning has no valid credentials."},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}}, "server_rescue": {"type":"object","properties":{"meta":{"type":"object"}}}, "server_action": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"status":{"type":"string"}}}}},"meta":{"type":"object"}}}, "server_schedule_deletion": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["schedule_deletion"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"scheduled_deletion_at":{"type":"string"}}}}}}}, "deploy_config": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string"},"hostname":{"type":"string"},"raid":{"type":"string","nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string"},"ssh_keys":{"type":"array","items":{"type":"string"}},"ipxe_url":{"type":"string","nullable":true},"ipxe":{"type":"string","nullable":true},"persistent_netboot":{"type":"boolean","nullable":true,"description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true},"public_network_id":{"type":"string","nullable":true}}}}},"meta":{"type":"object"}}}, "out_of_band_connection": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"ssh_key":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"fingerprint":{"type":"string"}}},"created_at":{"type":"string"},"username":{"type":"string"},"credentials":{"type":"object","description":"credentials are valid only when the server is deployed with ssh keys","properties":{"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true}}},"port":{"type":"string"},"access_ip":{"type":"string","nullable":true},"server_id":{"type":"string"},"status":{"type":"string"}}}}},"meta":{"type":"object"}}}, "team": {"type":"object","properties":{"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"status":{"type":"string","nullable":true},"enforce_mfa":{"type":"boolean","nullable":true},"customer_billing_id":{"type":"string","nullable":true},"referred_code":{"type":"string","nullable":true},"users":{"type":"array","items":{"$ref":"#/components/schemas/user_include"}},"projects":{"type":"array","items":{"$ref":"#/components/schemas/project_include"}},"owner":{"$ref":"#/components/schemas/user_include"},"billing":{"type":"object","properties":{"id":{"type":"string"},"customer_billing_id":{"type":"string"}}},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}}}}, "team_include": {"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"currency_id":{"type":"integer","nullable":true}}},"status":{"type":"string","nullable":true},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}}, "team_members": {"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"mfa_enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_login_at":{"type":"string","format":"date-time","nullable":true},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "teams": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/team"}},"meta":{"type":"object"}}}, "membership": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]},"mfa_enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_login_at":{"type":"string","format":"date-time"}}}}}}}, "user": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"teams":{"type":"array","items":{"$ref":"#/components/schemas/team_include"}}}}}}, "user_teams": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user_team"}},"meta":{"type":"object"}}}, "user_team": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"status":{"type":"string","nullable":true},"enforce_mfa":{"type":"boolean"},"users":{"type":"array","items":{"$ref":"#/components/schemas/user_include"}},"projects":{"type":"array","items":{"$ref":"#/components/schemas/project_include"}},"owner":{"$ref":"#/components/schemas/user_include"},"billing":{"type":"object","properties":{"id":{"type":"string"},"customer_billing_id":{"type":"string"}}},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}}}}, "user_include": {"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}, "users": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user"}}}}, "user_update": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}}}}, "update_api_key": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key"},"read_only":{"type":"boolean","description":"Whether the API Key is read-only. Read-only keys can only perform GET requests."},"allowed_ips":{"type":"array","items":{"type":"string"},"description":"List of allowed IP addresses or CIDR ranges (e.g., \"192.168.1.100\", \"10.0.0.0/24\")"}}}},"required":["type"]}}}, "create_api_key": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key","default":"Name of the API Key"},"read_only":{"type":"boolean","description":"Whether the API Key is read-only. Read-only keys can only perform GET requests."},"allowed_ips":{"type":"array","items":{"type":"string"},"description":"List of allowed IP addresses or CIDR ranges (e.g., \"192.168.1.100\", \"10.0.0.0/24\")"}},"required":["name"]}},"required":["type"]}}}, "api_key": {"type":"object","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key"},"api_version":{"type":"string","description":"The API version associated with this API Key"},"token":{"type":"string","description":"The full token (only returned on create or rotate)"},"token_last_slice":{"type":"string","description":"The last 5 characters of the token created for this API Key"},"read_only":{"type":"boolean","nullable":true,"description":"Whether this API Key is read-only"},"allowed_ips":{"type":"array","nullable":true,"items":{"type":"string"},"description":"List of allowed IP addresses for this API Key"},"last_used_at":{"type":"string","nullable":true,"format":"date-time","description":"The last time a request was made to the API using this API Key"},"user":{"type":"object","description":"The owner of the API Key","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"email":{"type":"string","format":"email"}}},"created_at":{"type":"string","format":"date-time","description":"The time when the API Key was created"},"updated_at":{"type":"string","format":"date-time","description":"The time when the API Key was updated"}}}}}, "api_keys": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/api_key"}},"meta":{"type":"object"}}}, "vpn_session_data_with_password": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"user_name":{"type":"string","description":"VPN username"},"password":{"type":"string","description":"VPN password"},"port":{"type":"string","description":"VPN port"},"host":{"type":"string","description":"VPN host"},"region":{"$ref":"#/components/schemas/region_resource_data"},"status":{"type":"string","enum":["enable","disable"],"description":"from Firewall Response"},"expires_at":{"type":"string","description":"Time to expiry"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}, "vpn_session_with_password": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/vpn_session_data_with_password"}}}, "vpn_session_without_password": {"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"user_name":{"type":"string","description":"VPN username"},"port":{"type":"string","description":"VPN port"},"host":{"type":"string","description":"VPN host"},"region":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"status":{"type":"string","enum":["enable","disable"],"description":"from Firewall Response"},"expires_at":{"type":"string","description":"Time to expiry"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}, "billing_usage": {"type":"object","properties":{"meta":{"type":"object"},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"project":{"type":"object","description":"The project in which the returned usage belongs to","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"period":{"type":"object","description":"The period from the returned billing cycle","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}},"available_credit_balance":{"type":"integer","description":"The available credit balance in cents"},"amount":{"type":"number","description":"The total usage amount in cents"},"price":{"type":"number","description":"The total usage price in cents"},"threshold":{"type":"number","description":"The threshold which we use to charge your usage, in cents","nullable":true},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"name":{"type":"string"},"proration":{"type":"boolean"},"discounts":{"type":"array","items":{"type":"object","required":["description","type","value"],"properties":{"description":{"type":"string","example":"Monthly Discount - Accelerate","description":"Description of the discount"},"type":{"type":"string","enum":["percent","amount"],"description":"Type of discount (percentage or fixed amount)"},"value":{"type":"number","format":"float","example":5.0,"description":"Value of the discount (percentage or amount)"}}}},"discountable":{"type":"boolean"},"description":{"type":"string"},"amount_without_discount":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time","nullable":true},"unit":{"type":"string","enum":["quantity","hour","minute","GB"]},"unit_amount":{"type":"number","description":"The unit amount of the product in cents"},"unit_price":{"type":"number","description":"The unit price of the product in cents"},"usage_type":{"type":"string","enum":["licensed","metered"]},"quantity":{"type":"number"},"amount":{"type":"number","description":"The total usage amount of the product in cents"},"price":{"type":"number","description":"The total usage price of the product in cents"},"metadata":{"type":"object","properties":{"servers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"plan":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}}}}},"bucket":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true}}},"billing_unit_divisor":{"type":"integer","nullable":true,"description":"For products priced per divided unit (e.g. $0.01 per 1000 API calls), the divisor applied to the quantity before pricing. Omitted for products that are not priced by divided units."}}}}}}}}}}}}, "custom_tags": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/custom_tag_data"}},"meta":{"type":"object"}}}, "custom_tag": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/custom_tag_data"},"meta":{"type":"object"}}}, "custom_tag_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag"},"slug":{"type":"string","description":"Slug of the Tag"},"description":{"type":"string","nullable":true,"description":"Description of the Tag"},"color":{"type":"string","description":"Color of the Tag"},"team":{"$ref":"#/components/schemas/team_include"}}}}}, "baseline": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/baseline_data"},"meta":{"type":"object"}}}, "baseline_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Target of the baseline: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","nullable":true,"description":"Slug of the operating system the baseline expects the server to run"},"platforms":{"type":"array","description":"The plans this baseline applies to (only populated when target_type is \"platforms\")","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"ssh_keys":{"type":"array","description":"SSH keys the baseline expects on the server","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"fingerprint":{"type":"string"}}}},"user_data":{"type":"object","nullable":true,"description":"User data the baseline expects to run on first boot","properties":{"id":{"type":"string"},"description":{"type":"string","nullable":true}}},"disk_layout":{"type":"array","description":"Expected disk layout","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"}},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"},"created_at":{"type":"string","nullable":true,"description":"Date the baseline was created"}}}}}, "baselines": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/baseline_data"}},"meta":{"type":"object"}}}, "baseline_disk_layout_group": {"type":"object","properties":{"role":{"type":"string","enum":["os","storage","raw"],"description":"Purpose of the disk group"},"count":{"type":"integer","description":"Number of disks in the group"},"raid_level":{"type":"string","nullable":true,"enum":["raid-0","raid-1"],"description":"RAID level for the group. Only valid for the 'os' and 'storage' roles"},"filesystem":{"type":"string","nullable":true,"enum":["ext4"],"description":"Filesystem to format the group with. Only valid for the 'storage' role"},"mount_point":{"type":"string","nullable":true,"description":"Where the group is mounted. Required for the 'storage' role"}}}, "filesystems": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/filesystem_data"}},"meta":{"type":"object"}}}, "filesystem_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{ "name": {"type":"string"}, "size_in_gb": {"type":"integer"}, "storage_class": { "type": "string", "enum": ["standard","high_performance"], "nullable": true, "x-speakeasy-name-override": "FilesystemStorageClass" }, "created_at": {"type":"string","format":"date-time","nullable":true}, "keyring": {"type":"string","nullable":true,"description":"Keyring secret used to mount the filesystem. Returned only for dashboard-origin requests; null until the filesystem is provisioned."}, "cluster_user": {"type":"string","nullable":true,"description":"Cluster user used to mount the filesystem. Returned only for dashboard-origin requests; null until the filesystem is provisioned."}, "volume_path": {"type":"string","nullable":true,"description":"Path of the filesystem volume inside the cluster. Returned only for dashboard-origin requests; null until the filesystem is provisioned."}, "nfs_mount_path": {"type":"string","nullable":true,"description":"Path of the NFS view (NFSv3 and NFSv4) backing the filesystem. Null for filesystems that are not backed by high performance file storage."}, "protocols": {"type":"array","items":{"type":"string","enum":["nfs3","nfs4"]},"nullable":true,"description":"NFS protocol version(s) the filesystem was requested to be mounted with. Null for filesystems that are not backed by high performance file storage."}, "file_endpoint": {"type":"string","nullable":true,"description":"Hostname of the NFS endpoint backing the filesystem. Null for filesystems that are not backed by high performance file storage."}, "region": {"type":"object","nullable":true,"properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"site":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}}, "project": {"$ref":"#/components/schemas/project_include"}, "team": {"$ref":"#/components/schemas/team_include"} }}}}, "volume_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"size_in_gb":{"type":"integer"},"created_at":{"type":"string","format":"date-time","nullable":true},"namespace_id":{"type":"integer","nullable":true},"connector_id":{"type":"string","nullable":true},"initiators":{"type":"array","items":{"type":"object","properties":{"nqn":{"type":"string"}}},"nullable":true},"nguid":{"type":"string","nullable":true,"description":"NVMe namespace globally unique identifier (NGUID) of the volume, exactly as reported by the storage cluster, in UUID form (e.g. \"b338cb51-7593-413d-8c87-2657af7ecae9\"). Without the dashes it matches the NGUID the mapped server reports for the NVMe device of the volume. Null when it has not been recorded for the volume."},"block":{"type":"object","nullable":true,"description":"NVMe-TCP block mapping of a high performance volume. Null for volumes that are not mapped to a server.","properties":{"status":{"type":"string","nullable":true,"description":"Mapping lifecycle state: \"mapping\" while the mapping is being applied, \"mapped\" once the server can access the volume, \"unmapping\" while the mapping is being removed, or \"failed\". Mapping and unmapping are asynchronous, so poll the volume until this reaches a terminal state. The block object becomes null once the volume is fully unmapped."},"nqn":{"type":"string","nullable":true,"description":"NVMe Qualified Name of the mapped server."},"nsid":{"type":"integer","nullable":true,"description":"NVMe namespace ID of the mapping."},"server_id":{"type":"string","nullable":true,"description":"ID of the server the volume is mapped to."},"storage_network":{"type":"object","nullable":true,"description":"Storage network the mapped server joins to reach the volume over NVMe-TCP. Null until the network has been provisioned for the volume.","properties":{"vid":{"type":"integer","nullable":true,"description":"VLAN ID of the storage VLAN to tag on the server bond."},"host_cidr":{"type":"string","nullable":true,"description":"Storage IP of the mapped server, in CIDR notation. Null until the mapping status is \"mapped\"."},"gateway":{"type":"string","nullable":true,"description":"Gateway of the storage network, used for the routes below."},"routes":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Storage infrastructure prefixes to route via the gateway."},"block_gateway":{"type":"string","nullable":true,"description":"NVMe-oF/TCP discovery portal address."},"block_port":{"type":"integer","nullable":true,"description":"NVMe-oF/TCP discovery portal port."}}}}},"keyring":{"type":"string","nullable":true,"description":"Keyring secret used to connect to the volume. Returned only for dashboard-origin requests; null until the volume is provisioned."},"cluster_user":{"type":"string","nullable":true,"description":"Cluster user used to connect to the volume. Returned only for dashboard-origin requests; null until the volume is provisioned."},"volume_path":{"type":"string","nullable":true,"description":"Path of the volume inside the cluster. Returned only for dashboard-origin requests; null until the volume is provisioned."},"region":{"type":"object","nullable":true,"properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"site":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}}, "object_storage_data": {"type":"object","properties":{"id":{"type":"string","description":"Object storage ID with bkt_ prefix"},"type":{"type":"string","enum":["object_storages"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Display name of the object storage"},"storage_type":{"type":"string","description":"Type of storage (e.g., `object`)"},"storage_class":{"type":"string","enum":["standard","high_performance"],"description":"Storage class tier"},"created_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the object storage was created"},"bucket_name":{"type":"string","description":"S3-compatible bucket name"},"endpoint":{"type":"string","description":"Region-specific S3-compatible endpoint URL for accessing the bucket. The endpoint varies based on the bucket's location."},"versioning":{"type":"boolean","nullable":true,"description":"Whether bucket versioning is enabled"},"locking":{"type":"boolean","nullable":true,"description":"Whether object lock is enabled on the bucket"},"retention_mode":{"type":"string","enum":["NONE","COMPLIANCE","GOVERNANCE"],"nullable":true,"description":"Object lock retention mode"},"retention_period":{"type":"integer","format":"int64","nullable":true,"description":"Default retention period in days when object lock is enabled"},"source":{"type":"string","description":"How the bucket originated: `default` for buckets created through the API, or `synchronized` for buckets imported from the storage provider."},"region":{"type":"object","nullable":true,"description":"Region information where the object storage is located","properties":{"id":{"type":"string","description":"Region identifier"},"city":{"type":"string","description":"City identifier"},"country":{"type":"string","nullable":true,"description":"Country name"}}},"credentials":{"type":"object","nullable":true,"description":"S3 access credentials. Only included when `extra_fields[object_storages]=credentials` is requested and the requesting user is the bucket's creator.","properties":{"access_key":{"type":"string","description":"S3 access key for authentication"}}},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}}, "object_storages": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/object_storage_data"}}}}, "lifecycle_rule_data": {"type":"object","properties":{"id":{"type":"string","description":"Lifecycle rule ID with lifecycle_ prefix"},"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is currently active"},"prefix":{"type":"string","nullable":true,"description":"Object key prefix filter. When set, the rule only applies to objects whose keys start with this prefix."},"expiration_days":{"type":"integer","description":"Number of days after object creation when the object expires and is automatically deleted"},"noncurrent_days":{"type":"integer","nullable":true,"description":"Number of days after which noncurrent object versions expire (for versioned buckets)"},"abort_mpu_days_after_initiation":{"type":"integer","nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}}, "lifecycle_rules": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}, "storage_usage": {"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"The day this usage row refers to"},"storage_id":{"type":"string","description":"The storage/bucket ID. A numeric value serialized as a string, e.g. \"42\"."},"project_id":{"type":"string","description":"The project ID. A numeric value serialized as a string, e.g. \"1234\"."},"storage_type":{"type":"string","nullable":true,"description":"Storage kind. One of: object, file, block."},"tier":{"type":"string","nullable":true,"description":"Performance tier. One of: high, standard."},"region":{"type":"string"},"bytes":{"type":"integer","description":"Canonical storage usage for the day, in bytes"},"raw_value":{"type":"number","description":"The provider-reported usage value, in raw_unit"},"raw_unit":{"type":"string","description":"The unit raw_value is expressed in"},"ingested_at":{"type":"string","format":"date-time"}}}}}}}}, "storage_plan": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/storage_plan_data"},"meta":{"type":"object"}}}, "storage_plan_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["storage_plans"]},"attributes":{"type":"object","properties":{ "name": {"type":"string"}, "storage_type": { "$ref": "#/components/schemas/storage_plan_storage_type", "x-speakeasy-name-override": "StoragePlanStorageType" }, "storage_class": { "$ref": "#/components/schemas/storage_plan_storage_class", "x-speakeasy-name-override": "StoragePlanStorageClass" }, "regions": {"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","description":"Prices keyed by ISO 4217 currency code (e.g. USD, BRL).","additionalProperties":{"type":"object","properties":{"month":{"type":"number"}}},"example":{"USD":{"month":30},"BRL":{"month":165}}}}}} }}}}, "storage_plan_storage_type": {"type":"string","enum":["filesystem","object","volume"]}, "storage_plan_storage_class": {"type":"string","enum":["standard","high_performance"],"nullable":true}, "storage_plans": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/storage_plan_data"}},"meta":{"type":"object"}}}, "virtual_machine_update_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machines"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The new display name (hostname) for the Virtual Machine"},"tags":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of tag IDs to assign to the VM. Replaces all existing tags."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"Target billing cycle. Upgrades only (hourly → monthly → yearly); downgrades and reserved-project changes return 422."},"plan":{"type":"string","description":"Target plan slug for a vertical upgrade. Upgrades only (cpu, memory, and/or storage must scale up; nothing may shrink). The VM is powered off to apply the new resources and powered back on. Must be sent on its own (cannot be combined with name, tags, or billing). Returns 202 Accepted."}}}},"required":["type","attributes"]}},"required":["data"]}, "virtual_machine_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","default":"my-vm"},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"Billing cycle for the VM. The supported set is validated per-project (on_demand vs reserved). Defaults to the project's default billing when omitted."},"plan":{"type":"string","description":"The plan ID or Slug for the Virtual Machine","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"string"}},"project":{"type":"string","default":"my-project"},"operating_system":{"type":"string","description":"The operating system slug for the Virtual Machine. If not specified, defaults to ubuntu_24_04_x64_lts for CPU plans or ubuntu24_ml_in_a_box for GPU plans.","nullable":true},"user_data":{"oneOf":[{"type":"integer"}, {"type":"string"}],"nullable":true,"description":"A user data record reference (encoded id_hash, e.g. 'ud_xxx', or raw integer id) to apply as cloud-init configuration"},"marketplace_app":{"type":"string","nullable":true,"description":"A marketplace app reference (slug, e.g. \"openclaw\", or encoded id_hash \"mkapp_xxx\") to preinstall on the VM via cloud-init. Cannot be combined with operating_system; the app defines its own."},"tags":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of tag IDs to assign to the VM."},"site":{"type":"string","nullable":true,"default":"DAL","description":"Site/region slug where the VM is provisioned (e.g. DAL, SAO). Defaults to DAL when omitted."}},"required":["project","name"]}}}}}, "virtual_machine_attributes": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"created_at":{"type":"string"},"status":{"type":"string","description":"Current lifecycle status of the VM, derived from the underlying KubeVirt phase/printable status and capitalized. This is an open set that may grow over time — do not treat it as a closed enum. Known values include: Running, Starting, Stopped, Stopping, Failed, Off, Error, Rebooting, Deleting, Destroying, Configuring network, Scheduling, Scheduled, Provisioning."},"primary_ipv4":{"type":"string","nullable":true},"operating_system":{"type":"object","nullable":true,"description":"The operating system installed on the virtual machine","properties":{"name":{"type":"string","description":"The full name of the operating system"},"slug":{"type":"string","description":"The unique slug identifier for the operating system"},"version":{"type":"string","description":"The version of the operating system"},"features":{"type":"object","description":"Features supported by this operating system","properties":{"raid":{"type":"boolean","description":"Whether RAID is supported"},"ssh_keys":{"type":"boolean","description":"Whether SSH keys are supported"},"user_data":{"type":"boolean","description":"Whether user data is supported"},"rescue":{"type":"boolean","description":"Whether rescue mode is supported"},"workflow":{"type":"boolean","description":"Whether workflow is supported"}}},"distro":{"type":"object","description":"Distribution information","properties":{"name":{"type":"string","description":"The name of the Linux distribution"},"slug":{"type":"string","description":"The slug of the Linux distribution"},"series":{"type":"string","description":"The distribution series code name"}}}}},"credentials":{"type":"object","nullable":true,"description":"SSH credentials for connecting to the virtual machine. Only available when the VM is running. Opt-in extra field: request via `extra_fields[virtual_machines]=credentials`.","properties":{"username":{"type":"string","nullable":true,"description":"The SSH username for the VM, determined by the operating system (e.g., ubuntu, centos, ec2-user). Defaults to ubuntu if not specified by the OS. Returns null when the VM is not running."},"host":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"site":{"type":"string","nullable":true},"billing":{"type":"string","nullable":true},"user_data":{"type":"string","nullable":true,"description":"Encoded ID of the user data record applied to this VM, if any"},"marketplace_app":{"type":"object","nullable":true,"description":"Deploy-time snapshot of the marketplace app this VM was created with. Null when the VM was deployed from a plain operating system.","properties":{"slug":{"type":"string"},"name":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}}},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"specs":{"type":"object","properties":{"vcpu":{"type":"integer","nullable":true},"ram":{"type":"string","nullable":true},"storage":{"type":"string","nullable":true},"nic":{"type":"string","nullable":true},"gpu":{"type":"string","nullable":true}}},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"},"pending_restart":{"type":"boolean","description":"Deprecated, always false. Opt-in extra field, requested via `extra_fields[virtual_machines]=pending_restart`. Attaching and detaching restart the VM automatically."}}}}}, "virtual_machine": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_attributes"},"meta":{"type":"object"}}}, "virtual_machines": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_attributes"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}, "virtual_machine_metrics": {"type":"object","properties":{"metric":{"type":"string","enum":["cpu","memory","network","disk"]},"range":{"type":"string","enum":["5m","15m","1h","24h"]},"step":{"type":"string","description":"Sampling interval between adjacent points (e.g. \"15s\", \"1m\")"},"unit":{"type":"string","enum":["percent","bytes_per_second"],"description":"Unit applied to every point value"},"points":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp (seconds precision)"},"value":{"type":"number","description":"Sampled value, rounded to 2 decimal places"}}}}}}, "lks_plans": {"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the plan"},"type":{"type":"string","enum":["lks_plans"],"description":"The type of the resource"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The name of the plan"},"slug":{"type":"string","description":"The slug of the plan, used as the node pool plan"},"specs":{"type":"object","properties":{"cpu":{"type":"object","properties":{"type":{"type":"string","nullable":true},"clock":{"type":"number","nullable":true},"cores":{"type":"integer","nullable":true},"count":{"type":"integer","nullable":true}}},"memory":{"type":"object","properties":{"total":{"oneOf":[{"type":"integer"}, {"type":"string"}],"nullable":true}}},"drives":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"size":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}}}},"nics":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"type":{"type":"string","nullable":true}}}},"gpu":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"type":{"type":"string","nullable":true},"vram_per_gpu":{"type":"integer","nullable":true},"interconnect":{"type":"string","nullable":true}}}}},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locations":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"},"description":"Sites where LKS can deploy this plan"},"in_stock":{"type":"array","items":{"type":"string"},"description":"Sites with available capacity for an LKS node on this plan"},"in_stock_count":{"type":"object","description":"Available servers for an LKS node keyed by site slug. Only sites with stock are present.","additionalProperties":{"type":"integer"},"example":{"DAL2":4}}}},"stock_level":{"type":"string","enum":["unavailable","low","medium","high"],"description":"The stock level in this region"},"pricing":{"type":"object","description":"Prices keyed by ISO 4217 currency code (e.g. USD, BRL).","additionalProperties":{"type":"object","properties":{"hour":{"type":"number","nullable":true},"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}},"example":{"USD":{"hour":2.18,"month":796,"year":6686},"BRL":{"hour":11.99,"month":4376,"year":36758}}}}}}}}}}}}}, "virtual_machine_plans": {"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the plan"},"type":{"type":"string","enum":["virtual_machine_plans"],"description":"The type of the resource"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The name of the plan"},"slug":{"type":"string","description":"The slug of the plan, used to create virtual machines"},"specs":{"type":"object","properties":{"memory":{"type":"integer","description":"The total memory"},"gpu":{"type":"string","nullable":true,"description":"The GPU type"},"vram_per_gpu":{"type":"integer","nullable":true,"description":"VRAM per GPU in GB"},"vcpus":{"type":"integer","description":"The number of virtual CPUs (legacy field)"},"vcpu":{"type":"object","description":"Detailed vCPU specifications","properties":{"count":{"type":"integer","nullable":true,"description":"The number of virtual CPUs"},"clock":{"type":"number","nullable":true,"description":"The CPU clock speed in GHz"},"type":{"type":"string","nullable":true,"description":"The CPU type/model"}}},"nics":{"type":"array","nullable":true,"description":"Network interface cards","items":{"type":"object","properties":{"type":{"type":"string","description":"NIC speed/type"},"count":{"type":"integer","description":"Number of NICs"}}}},"disk":{"type":"object","properties":{"type":{"type":"string","description":"The type of the disk (e.g., local SSD, local NVMe)"},"size":{"type":"object","properties":{"amount":{"type":"integer","description":"The total size of the disk"},"unit":{"type":"string","enum":["gib"],"description":"The unit of the disk size"}}}}}}},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"available":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","description":"Prices keyed by ISO 4217 currency code (e.g. USD, BRL).","additionalProperties":{"type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"},"year":{"type":"number"}}},"example":{"USD":{"hour":2.18,"month":796,"year":6686},"BRL":{"hour":11.99,"month":4376,"year":36758}}},"locations":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"},"description":"Sites with clusters that support this plan"},"in_stock":{"type":"array","items":{"type":"string"},"description":"Sites with available capacity for this plan"}}},"stock_level":{"type":"string","enum":["low","unavailable","medium","high"],"description":"The stock level in this region"}}}},"stock_level":{"type":"string","enum":["low","unavailable","medium","high"],"description":"The stock level of the plan"},"available_operating_systems":{"type":"array","description":"List of operating system slugs that are compatible with this plan","items":{"type":"string"}}}}}}}}}, "managed_database_plan_attributes": {"type":"object","properties":{"id":{"type":"string","example":"plan_a1b2c3d4"},"type":{"type":"string","enum":["managed_database_plans"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"engine":{"type":"string"},"specs":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"},"storage":{"type":"string"},"shards":{"type":"integer"},"replicas":{"type":"integer"},"iops":{"type":"string","nullable":true}}},"regions":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}},"pricing":{"type":"object","additionalProperties":{"type":"object","properties":{"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}}}}}}}}}}, "managed_database_plans": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/managed_database_plan_attributes"}}}}, "marketplace_app_data": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["marketplace_apps"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"short_description":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"system_requirements":{"type":"object","properties":{"vcpus":{"type":"integer","nullable":true},"memory_in_gb":{"type":"integer","nullable":true},"storage_in_gb":{"type":"integer","nullable":true},"gpu":{"type":"boolean"}}},"deployment_strategy":{"type":"string","enum":["user_data","image"],"description":"How the app is delivered: cloud-init install on a stock OS image (user_data) or a pre-built disk image (image)"},"default_operating_system":{"type":"string","nullable":true},"compatible_plans":{"type":"array","items":{"type":"string"}},"access_instructions":{"type":"string","nullable":true},"upstream_url":{"type":"string","nullable":true},"documentation_url":{"type":"string","nullable":true},"logo_url":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}}}}}, "marketplace_app": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/marketplace_app_data"}}}, "marketplace_apps": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/marketplace_app_data"}}}}, "virtual_machine_network_attachment_create_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_network_attachments"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string","description":"VLAN id_hash to attach (e.g. vlan_abc123)."},"address":{"type":"string","description":"Optional static IPv4 address with prefix (e.g. 10.0.0.5/24) for the NIC inside the guest. When omitted the NIC is configured for DHCP without a default route. Applying the regenerated network configuration requires running `sudo cloud-init clean --logs --reboot` inside the guest. Warning: that command makes cloud-init treat the next boot as a first boot — it re-runs the instance user-data (e.g. runcmd scripts) and regenerates the SSH host keys, so SSH clients will see a host-key changed warning."}},"required":["virtual_network_id"]}},"required":["type","attributes"]}},"required":["data"]}, "virtual_machine_network_attachment_resource": {"type":"object","properties":{"id":{"type":"string","description":"The VLAN id_hash of the attachment"},"type":{"type":"string","enum":["virtual_machine_network_attachments"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string","description":"The encoded VLAN id_hash"},"vid":{"type":"integer","description":"The 802.1Q VLAN ID"},"pending_restart":{"type":"boolean","description":"Deprecated, always false. Attaching and detaching restart the VM automatically, so an attachment never waits on a manual restart."}}}}}, "virtual_machine_network_attachments": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_network_attachment_resource"}}}}, "virtual_machine_backup_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_backups"]},"attributes":{"type":"object","properties":{"virtual_machine":{"type":"string","description":"Virtual machine id to back up. Required on the top-level `POST /virtual_machine_backups`; taken from the path when nested under a VM."}},"required":["virtual_machine"]}}}}}, "virtual_machine_backup_attributes": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machine_backups"]},"attributes":{"type":"object","properties":{"status":{"type":"string","enum":["Creating","Ready","Failed","Archived"]},"size_bytes":{"type":"integer","nullable":true},"expires_at":{"type":"string","nullable":true},"failure_reason":{"type":"string","nullable":true},"created_at":{"type":"string"},"virtual_machine":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"}}}}}, "virtual_machine_backup": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_backup_attributes"},"meta":{"type":"object"}}}, "virtual_machine_backups": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_backup_attributes"}},"meta":{"type":"object"}}}, "virtual_machine_restore_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_restores"]},"attributes":{"type":"object","properties":{"backup":{"type":"string","description":"Source backup id. Required on the flat `POST /virtual_machine_restores`; taken from the path when nested under a backup."},"name":{"type":"string","nullable":true,"description":"Optional name for the restored VM. Auto-generated from the source VM when omitted."},"site":{"type":"string","nullable":true,"description":"Optional target site slug. Restores into that region (migration) instead of the backup's own region. Defaults to the backup's site."}}}}}}}, "virtual_machine_restore_attributes": {"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machine_restores"]},"attributes":{"type":"object","properties":{"status":{"type":"string","enum":["Creating","Ready","Failed"]},"created_at":{"type":"string"},"backup":{"type":"object","properties":{"id":{"type":"string"}}},"virtual_machine":{"type":"object","nullable":true,"description":"The restored VM. Null until the restore is ready.","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"}}}}}, "virtual_machine_restore": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_restore_attributes"},"meta":{"type":"object"}}}, "virtual_machine_restores": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_restore_attributes"}},"meta":{"type":"object"}}}, "managed_database_attributes": {"type":"object","properties":{"id":{"type":"string","example":"db_a1b2c3d4"},"type":{"type":"string","enum":["managed_databases"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"engine":{"type":"string"},"status":{"type":"string"},"namespace":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"specs":{"type":"object","nullable":true,"properties":{"cpu":{"type":"integer","nullable":true},"memory":{"type":"integer","nullable":true},"storage":{"type":"integer","nullable":true},"shards":{"type":"integer","nullable":true},"replicas":{"type":"integer","nullable":true},"iops":{"type":"string","nullable":true}}},"region":{"type":"object","properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"site":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"billing":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include","nullable":true},"project":{"$ref":"#/components/schemas/project_include","nullable":true},"trusted_sources":{"type":"array","items":{"type":"string"},"description":"Array of CIDR addresses allowed to connect"},"play_url":{"type":"string","nullable":true},"credentials":{"type":"object","nullable":true,"properties":{"host":{"type":"string"},"http_port":{"type":"integer","nullable":true},"tcp_port":{"type":"integer","nullable":true},"port":{"type":"integer","nullable":true,"description":"Postgres NodePort"},"database":{"type":"string","nullable":true},"url":{"type":"string","nullable":true,"description":"Postgres connection string"},"username":{"type":"string"},"password":{"type":"string","nullable":true}}},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom PostgreSQL parameters"},"pooler":{"type":"object","additionalProperties":true,"description":"PgBouncer pooler configuration"},"backup":{"type":"object","additionalProperties":true,"description":"Scheduled backup configuration"},"recovery":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true}}},"supabase":{"type":"object","properties":{"enabled":{"type":"boolean"}}}}}}}, "managed_database": {"type":"object","properties":{"data":{"$ref":"#/components/schemas/managed_database_attributes"}}}, "managed_databases": {"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/managed_database_attributes"}}}}, "managed_database_payload": {"type":"object","example":{"data":{"type":"managed_databases","attributes":{"project_id":"proj_ABC123","region":"ASH","plan":"db.psql.small","engine":"postgres","name":"my-postgres-db"}}},"properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["managed_databases"]},"attributes":{"type":"object","required":["name","project_id","region","plan","engine"],"properties":{"name":{"type":"string","description":"Display name; used to derive the helm release name"},"project_id":{"type":"string","description":"Project slug"},"region":{"type":"string","example":"ASH","description":"Target region"},"plan":{"type":"string","example":"db.psql.small","description":"Plan slug (e.g. db.psql.small)"},"engine":{"type":"string","example":"postgres","description":"Database engine"},"billing":{"type":"string","enum":["monthly","yearly"],"description":"Billing cycle (postgres/clickhouse). Defaults to monthly when omitted."},"parameters":{"type":"object","additionalProperties":true,"description":"Custom PostgreSQL parameters at create (postgres only)"},"pooler":{"type":"object","additionalProperties":true,"description":"PgBouncer pooler configuration at create (postgres only)"},"backup":{"type":"object","additionalProperties":true,"description":"Scheduled backup configuration at create (postgres only)"},"recovery":{"type":"object","description":"Restore from a source database backup at create (postgres only)","properties":{"sourceDatabaseName":{"type":"string"},"backupId":{"type":"string"}}},"replica_regions":{"type":"array","items":{"type":"string"},"example":["MIA","DAL"],"description":"Optional. Reserved for cross-region read replicas (postgres only): accepted and validated, but replica provisioning is not yet active."}}}}}}}, "managed_database_update_payload": {"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["managed_databases"]},"attributes":{"type":"object","description":"At least one attribute is required. trusted_sources applies to any engine; parameters, pooler, backup and supabase apply to postgres only.","properties":{"trusted_sources":{"example":["203.0.113.0/24","198.51.100.0/24"],"type":"array","items":{"type":"string"},"description":"Array of CIDR addresses to allow connections from"},"parameters":{"example":{"shared_buffers":"256MB","work_mem":"16MB","effective_cache_size":"1GB"},"type":"object","additionalProperties":true,"description":"Custom PostgreSQL parameters (postgres only). Each value must fall within the selected plan's allowed range."},"pooler":{"example":{"enabled":true,"default_pool_size":30,"max_client_conn":200},"type":"object","additionalProperties":true,"description":"PgBouncer pooler configuration (postgres only)"},"backup":{"example":{"enabled":true,"schedule":"0 0 0 * * *","s3Endpoint":"https://s3.amazonaws.com","bucketName":"my-db-backups","path":"prod/postgres","retentionPolicy":"7"},"type":"object","additionalProperties":true,"description":"Scheduled backup configuration (postgres only)"},"access_credentials":{"example":{"accessKeyId":"AKIAIOSFODNN7EXAMPLE","secretAccessKey":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"},"type":"object","properties":{"accessKeyId":{"type":"string"},"secretAccessKey":{"type":"string"}},"description":"S3 credentials used with backup (postgres only)"},"supabase":{"example":true,"type":"boolean","description":"Enable the Supabase service layer (postgres only)"}}}}}}} }, "securitySchemes": {"Bearer":{"type":"apiKey","name":"Authorization","in":"header"}} } }