{"openapi":"3.0.0","info":{"description":"Crusoe Cloud API v1 — GPU VMs and instance groups, disks, snapshots and S3 buckets, VPC networking and firewalls, Kubernetes and Slurm clusters, container registry, IAM, usage and billing; static Bearer API key.","version":"v1"},"servers":[{"description":"Crusoe Cloud API v1 — GPU VMs and instance groups, disks, snapshots and S3 buckets, VPC networking and firewalls, Kubernetes and Slurm clusters, container registry, IAM, usage and billing; static Bearer API key.","url":"https://api.apirails.com/crusoe"}],"paths":{"/capacities":{"get":{"tags":["Capacities"],"parameters":[{"name":"location","in":"query","description":"location (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"product_name","in":"query","description":"product_name (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSliceCapacities","api_endpoint":"https://api.cloud.crusoe.ai/v1/capacities"},"summary":"Lists available Crusoe Cloud capacity with optional filters on location and product name","description":"Lists available Crusoe Cloud capacity with optional filters on location and product name. | Lists available Crusoe Cloud capacity with optional filters on location and product name. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/ccr/supported-locations":{"get":{"tags":["Container Registry"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSupportedLocations","api_endpoint":"https://api.cloud.crusoe.ai/v1/ccr/supported-locations"},"summary":"Lists the locations where container registry repositories can be hosted","description":"Lists the locations where container registry repositories can be hosted. | Lists the locations where container registry repositories can be hosted. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/ccr/supported-providers":{"get":{"tags":["Container Registry"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSupportedProviders","api_endpoint":"https://api.cloud.crusoe.ai/v1/ccr/supported-providers"},"summary":"Lists the upstream registry providers supported for pull-through-cache repositories","description":"Lists the upstream registry providers supported for pull-through-cache repositories. | Lists the upstream registry providers supported for pull-through-cache repositories. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/ccr/tokens":{"post":{"tags":["Container Registry"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createCcrToken","api_endpoint":"https://api.cloud.crusoe.ai/v1/ccr/tokens"},"summary":"Creates a limited-scope token for authenticating to the container registry and returns it","description":"Creates a limited-scope token for authenticating to the container registry and returns it. | Creates a limited-scope token for authenticating to the container registry and returns it. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"alias":{"type":"string","description":"Alias for the new token, used to identify it."},"expires_at":{"type":"string","description":"Expiration timestamp of the token, in RFC3339 format."}}},"example":{"alias":["my-token"],"expires_at":["2026-12-03T19:58:34Z"]}}}}}},"/compute/images":{"get":{"tags":["Images"],"parameters":[{"name":"product_group","in":"query","description":"Optional filter to return only images compatible with the specified product group (e.g. \"a100\", \"h100\").","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listImages","api_endpoint":"https://api.cloud.crusoe.ai/v1/compute/images"},"summary":"Lists all images and returns their details","description":"Lists all images and returns their details. | Lists all images and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/compute/images/{image_id}":{"get":{"tags":["Images"],"parameters":[{"name":"image_id","in":"path","description":"ID of the image.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getImage","api_endpoint":"https://api.cloud.crusoe.ai/v1/compute/images/{image_id}"},"summary":"Returns details for a single image","description":"Returns details for a single image. | Returns details for a single image. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/featureflags":{"get":{"tags":["Feature Flags"],"parameters":[{"name":"project_id","in":"query","description":"project_id optionally scopes flag evaluation to the given project. The\ncaller must be a member of the project. When set, flags are evaluated with\nthe project in the targeting context in addition to the user and org.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFeatureFlags","api_endpoint":"https://api.cloud.crusoe.ai/v1/featureflags"},"summary":"Get feature flags for the currently logged in user","description":"Get feature flags for the currently logged in user. | A successful response from this resource will contain a map of\nall feature flags and the value assigned to each of them for the user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/iam/role-bindings":{"get":{"tags":["Role Bindings"],"parameters":[{"name":"role_id","in":"query","description":"role_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"scope_object_id","in":"query","description":"scope_object_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"scope_type","in":"query","description":"scope_type (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["org","project"]}}},{"name":"user_id","in":"query","description":"user_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listRoleBindings","api_endpoint":"https://api.cloud.crusoe.ai/v1/iam/role-bindings"},"summary":"Lists role bindings visible to the caller","description":"Lists role bindings visible to the caller. | Lists role bindings visible to the caller. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/iam/roles":{"get":{"tags":["Roles"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listRoles","api_endpoint":"https://api.cloud.crusoe.ai/v1/iam/roles"},"summary":"Lists role associated with the caller's organization","description":"Lists role associated with the caller's organization. | Lists role associated with the caller's organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/iam/users/{user_id}/role-bindings":{"post":{"tags":["Role Bindings"],"parameters":[{"name":"user_id","in":"path","description":"user_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/applyRoleBindings","api_endpoint":"https://api.cloud.crusoe.ai/v1/iam/users/{user_id}/role-bindings"},"summary":"Creates and deletes role bindings for a user in a single atomic operation","description":"Creates and deletes role bindings for a user in a single atomic operation. | If any creation or deletion fails, no changes are applied. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"bindings_to_create":{"type":"array","description":"body.bindings_to_create (array field from the documented request schema)","required":true,"items":{"type":"object","properties":{"customer_id":{"type":"string","description":"body.bindings_to_create.customer_id (string field from the documented request schema)","required":true},"role_id":{"type":"string","description":"body.bindings_to_create.role_id (string field from the documented request schema)","required":true},"scope_object_id":{"type":"string","description":"body.bindings_to_create.scope_object_id (string field from the documented request schema)","required":true},"scope_type":{"type":"string","description":"body.bindings_to_create.scope_type (string field from the documented request schema)","required":true}}}},"bindings_to_delete":{"type":"array","description":"body.bindings_to_delete (array field from the documented request schema)","required":true,"items":{"type":"string"}}}},"example":{"bindings_to_create":[[{"customer_id":"string","role_id":"string","scope_object_id":"string","scope_type":"org"}]],"bindings_to_delete":[["string"]]}}}}}},"/locations":{"get":{"tags":["Locations"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listLocations","api_endpoint":"https://api.cloud.crusoe.ai/v1/locations"},"summary":"Lists all Crusoe Cloud locations usable for resource hosting","description":"Lists all Crusoe Cloud locations usable for resource hosting. | Lists all Crusoe Cloud locations usable for resource hosting. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/entities":{"get":{"tags":["Entities"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getOrganizations","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/entities"},"summary":"Retrieve details about all active organizations the logged in user belongs to","description":"Retrieve details about all active organizations the logged in user belongs to. | Retrieve details about all active organizations the logged in user belongs to. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"put":{"tags":["Entities"],"parameters":[{"name":"org_id","in":"query","description":"org_id (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateOrganization","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/entities"},"summary":"Update details for an organization that the logged in user owns","description":"Update details for an organization that the logged in user owns. | A successful response from this resource will contain the updated organization details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"billing_addr":{"type":"object","description":"body.billing_addr (object field from the documented request schema)","properties":{"address_line1":{"type":"string","description":"body.billing_addr.address_line1 (string field from the documented request schema)","required":true},"address_line2":{"type":"string","description":"body.billing_addr.address_line2 (string field from the documented request schema)"},"city":{"type":"string","description":"body.billing_addr.city (string field from the documented request schema)","required":true},"country":{"type":"string","description":"body.billing_addr.country (string field from the documented request schema)","required":true},"postal_code":{"type":"string","description":"body.billing_addr.postal_code (string field from the documented request schema)","required":true},"state_or_region":{"type":"string","description":"body.billing_addr.state_or_region (string field from the documented request schema)","required":true}}},"company_name":{"type":"string","description":"body.company_name (string field from the documented request schema)"},"organization_name":{"type":"string","description":"body.organization_name (string field from the documented request schema)"},"tax_id":{"type":"string","description":"body.tax_id (string field from the documented request schema)"},"tax_id_type":{"type":"string","description":"body.tax_id_type (string field from the documented request schema)"}}},"example":{"billing_addr":[{"address_line1":"123 Main Street","address_line2":"Suite 400","city":"Denver","country":"US","postal_code":"80202","state_or_region":"Colorado"}],"company_name":["mycompany"],"organization_name":["Crusoe Energy"],"tax_id":["51-2144346"],"tax_id_type":["EIN"]}}}}}},"/organizations/projects":{"get":{"tags":["Projects"],"parameters":[{"name":"org_id","in":"query","description":"Filters results to projects in this organization.","required":false,"schema":{"type":"string","example":""}},{"name":"project_name","in":"query","description":"Filters results to projects with this name.","required":false,"schema":{"type":"string","example":""}},{"name":"skip_loading_project_resources","in":"query","description":"Whether to skip loading the resource counts for each project.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listProjects","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/projects"},"summary":"Lists all projects the logged-in user belongs to or owns and returns their details","description":"Lists all projects the logged-in user belongs to or owns and returns their details. | If querying for projects within an organization, the logged-in user must be the owner of the organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Projects"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createProject","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/projects"},"summary":"Creates a project and returns the created project","description":"Creates a project and returns the created project. | The logged-in user must have the permission to create projects within the organization.\nA successful response from this resource contains details of the created project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Name for the new project.","required":true},"organization_id":{"type":"string","description":"ID of the organization that will own the new project.","required":true}}},"example":{"name":["Admin"],"organization_id":["ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab"]}}}}},"put":{"tags":["Projects"],"parameters":[{"name":"project_id","in":"query","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateProject","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/projects"},"summary":"Updates a project and returns the updated project","description":"Updates a project and returns the updated project. | Requests to this resource must contain the json-encoded representation of the changes they want to make to the project.\nCurrently only the project's name can be changed. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"New name for the project.","required":true}}},"example":{"name":["Admin"]}}}}}},"/organizations/projects/{project_id}":{"delete":{"tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteProject","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/projects/{project_id}"},"summary":"Deletes a project","description":"Deletes a project. | Delete operations cascade to VMs created under that project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getProject","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/projects/{project_id}"},"summary":"Returns details for a single project","description":"Returns details for a single project. | Returns details for a single project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{org_id}/scim/integrations":{"get":{"tags":["SCIM"],"parameters":[{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSCIMIntegrations","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations"},"summary":"List SCIM integrations for an organization","description":"List SCIM integrations for an organization. | List SCIM integrations for an organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["SCIM"],"parameters":[{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSCIMIntegration","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations"},"summary":"Create a new SCIM integration for an organization","description":"Create a new SCIM integration for an organization. | Create a new SCIM integration for an organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"identity_provider":{"type":"string","description":"body.identity_provider (string field from the documented request schema)","required":true},"name":{"type":"string","description":"body.name (string field from the documented request schema)","required":true},"token":{"type":"object","description":"body.token (object field from the documented request schema)","properties":{"alias":{"type":"string","description":"body.token.alias (string field from the documented request schema)","required":true},"expires_at":{"type":"string","description":"body.token.expires_at (string field from the documented request schema)","required":true}}}}},"example":{"identity_provider":["okta"],"name":["Okta SCIM Integration"],"token":[{"alias":"my-scim-token","expires_at":"2025-12-03T19:58:34Z"}]}}}}}},"/organizations/{org_id}/scim/integrations/{integration_id}":{"delete":{"tags":["SCIM"],"parameters":[{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSCIMIntegration","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}"},"summary":"Delete a SCIM integration","description":"Delete a SCIM integration. | Delete a SCIM integration. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["SCIM"],"parameters":[{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSCIMIntegration","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}"},"summary":"Get a SCIM integration by ID","description":"Get a SCIM integration by ID. | Get a SCIM integration by ID. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["SCIM"],"parameters":[{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateSCIMIntegration","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}"},"summary":"Update a SCIM integration","description":"Update a SCIM integration. | Update a SCIM integration. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"status":{"type":"string","description":"The new status for the integration."}}},"example":{"status":["active"]}}}}}},"/organizations/{org_id}/scim/integrations/{integration_id}/tokens":{"get":{"tags":["SCIM"],"parameters":[{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSCIMIntegrationTokens","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}/tokens"},"summary":"List the tokens for a SCIM integration","description":"List the tokens for a SCIM integration. | List the tokens for a SCIM integration. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["SCIM"],"parameters":[{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSCIMIntegrationToken","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}/tokens"},"summary":"Create a token for a SCIM integration","description":"Create a token for a SCIM integration. | Create a token for a SCIM integration. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"alias":{"type":"string","description":"body.alias (string field from the documented request schema)","required":true},"expires_at":{"type":"string","description":"body.expires_at (string field from the documented request schema)","required":true}}},"example":{"alias":["my-scim-token"],"expires_at":["2025-12-03T19:58:34Z"]}}}}}},"/organizations/{org_id}/scim/integrations/{integration_id}/tokens/{access_key_id}":{"delete":{"tags":["SCIM"],"parameters":[{"name":"access_key_id","in":"path","description":"access_key_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"integration_id","in":"path","description":"integration_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"org_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSCIMIntegrationToken","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/scim/integrations/{integration_id}/tokens/{access_key_id}"},"summary":"Delete a token from a SCIM integration","description":"Delete a token from a SCIM integration. | Delete a token from a SCIM integration. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/organizations/{org_id}/storage/s3/keys":{"get":{"tags":["S3 Keys"],"parameters":[{"name":"org_id","in":"path","description":"ID of the organization that owns the S3 access keys.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listS3Keys","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/storage/s3/keys"},"summary":"Lists all S3 access keys in the organization and returns their details","description":"Lists all S3 access keys in the organization and returns their details. | Lists all S3 access keys in the organization and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["S3 Keys"],"parameters":[{"name":"org_id","in":"path","description":"ID of the organization that owns the S3 access key.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createS3Key","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/storage/s3/keys"},"summary":"Creates an S3 access key in the organization and returns the access key ID and one-time secret key","description":"Creates an S3 access key in the organization and returns the access key ID and one-time secret key. | Creates an S3 access key in the organization and returns the access key ID and one-time secret key. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"alias":{"type":"string","description":"Human-readable alias for the new S3 access key."},"expire_at":{"type":"string","description":"Expiration timestamp for the new S3 access key, in RFC3339 format."}}},"example":{"alias":["my-service-account"],"expire_at":["2022-12-03T19:58:34Z"]}}}}}},"/organizations/{org_id}/storage/s3/keys/{access_key_id}":{"delete":{"tags":["S3 Keys"],"parameters":[{"name":"access_key_id","in":"path","description":"Access key ID of the S3 access key to delete.","required":true,"schema":{"type":"string","example":""}},{"name":"org_id","in":"path","description":"ID of the organization that owns the S3 access key.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteS3Key","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/storage/s3/keys/{access_key_id}"},"summary":"Deletes an S3 access key from the organization","description":"Deletes an S3 access key from the organization. | Deletes an S3 access key from the organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/organizations/{org_id}/usage":{"get":{"tags":["Usage"],"parameters":[{"name":"org_id","in":"path","description":"org_id is the ID of the org to fetch usage for","required":true,"schema":{"type":"string","example":""}},{"name":"end_date","in":"query","description":"end_date is the optional end date of the usage period, formatted YYYY-MM-DD","required":false,"schema":{"type":"string","example":""}},{"name":"interval","in":"query","description":"interval controls how usage is aggregated over the period: \"daily\" (the default) or \"monthly\"","required":false,"schema":{"type":"string","example":""}},{"name":"projects","in":"query","description":"projects is an optional list of project IDs to filter usage by; absent means all projects","required":false,"schema":{"type":"array","example":""}},{"name":"regions","in":"query","description":"regions is an optional list of regions to filter usage by; absent means all regions","required":false,"schema":{"type":"array","example":""}},{"name":"resource_types","in":"query","description":"resource_types is an optional list of product types to filter usage by; absent means all products","required":false,"schema":{"type":"array","example":""}},{"name":"start_date","in":"query","description":"start_date is the optional start date (inclusive) of the usage period, formatted YYYY-MM-DD","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getUsage","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{org_id}/usage"},"summary":"Get project-level usage for products in Crusoe Cloud","description":"Get project-level usage for products in Crusoe Cloud. | Get project-level usage for products in Crusoe Cloud. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/audit-logs":{"get":{"tags":["Audit Logs"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"actions","in":"query","description":"actions (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"actor_emails","in":"query","description":"actor_emails (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"actor_ids","in":"query","description":"actor_ids (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"actor_types","in":"query","description":"actor_types (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"end_time","in":"query","description":"end_time (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"limit (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"locations","in":"query","description":"locations (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"next_token","in":"query","description":"next_token (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"prev_token","in":"query","description":"prev_token (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"project_ids","in":"query","description":"project_ids (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"results","in":"query","description":"results (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"results_not","in":"query","description":"results_not (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"start_time","in":"query","description":"start_time (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"surfaces","in":"query","description":"surfaces (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"target_ids","in":"query","description":"target_ids (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"target_names","in":"query","description":"target_names (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"target_types","in":"query","description":"target_types (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getAuditLogs","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/audit-logs"},"summary":"Get audit logs belonging to the specified organization. User must be part of the organization","description":"Get audit logs belonging to the specified organization. User must be part of the organization. | Get audit logs belonging to the specified organization. User must be part of the organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/billing/costs":{"get":{"tags":["Billing"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getBillingCosts","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/billing/costs"},"summary":"Get the daily spend for a specified organization by project","description":"Get the daily spend for a specified organization by project. | Get the daily spend for a specified organization by project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/billing/export-productline":{"get":{"tags":["Billing"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end_date","in":"query","description":"end_date (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"product_lines","in":"query","description":"product_lines (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"projects","in":"query","description":"projects (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"regions","in":"query","description":"regions (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"start_date","in":"query","description":"start_date (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getBillingExportProductline","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/billing/export-productline"},"summary":"Return a CSV containing the costs for resources in a given period","description":"Return a CSV containing the costs for resources in a given period. | Return a CSV containing the costs for resources in a given period. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/billing/options":{"get":{"tags":["Billing"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end_date","in":"query","description":"end_date (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"start_date","in":"query","description":"start_date (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getBillingOptions","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/billing/options"},"summary":"Retrieve data about an organizations recent Non-Reservation costs","description":"Retrieve data about an organizations recent Non-Reservation costs. | Retrieve data about an organizations recent Non-Reservation costs. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/mfa":{"get":{"tags":["MFA"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id is the ID of the organization","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getMFA","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/mfa"},"summary":"Get enabled MFA methods for the specified organization","description":"Get enabled MFA methods for the specified organization. | Get enabled MFA methods for the specified organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["MFA"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id is the ID of the organization","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateMFA","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/mfa"},"summary":"Update required MFA methods for the specified organization","description":"Update required MFA methods for the specified organization. | Update required MFA methods for the specified organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"intended_methods":{"type":"array","description":"body.intended_methods (array field from the documented request schema)","items":{"type":"string"}}}},"example":{"intended_methods":[["totp","webauthn"]]}}}}}},"/organizations/{organization_id}/quotas":{"get":{"tags":["Quotas"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listOrgQuotas","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/quotas"},"summary":"List max and currently used organization quotas","description":"List max and currently used organization quotas. | List max and currently used organization quotas. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/reservations":{"get":{"tags":["Reservations"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"status","in":"query","description":"status (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getReservations","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/reservations"},"summary":"Get all reservations belonging to the specified organization. User must be part of the organization","description":"Get all reservations belonging to the specified organization. User must be part of the organization. | Get all reservations belonging to the specified organization. User must be part of the organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/reservations/gpu-tracking":{"get":{"tags":["Reservations"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end_time","in":"query","description":"end_time (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"product_line","in":"query","description":"product_line (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"region","in":"query","description":"region (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"start_time","in":"query","description":"start_time (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getReservationsGPUTracking","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/reservations/gpu-tracking"},"summary":"Get GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access","description":"Get GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access. | Get GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/reservations/gpu-tracking/latest":{"get":{"tags":["Reservations"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"product_line","in":"query","description":"product_line (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"region","in":"query","description":"region (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getLatestGPUTracking","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/reservations/gpu-tracking/latest"},"summary":"Get latest GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access","description":"Get latest GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access. | Get latest GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/reservations/{reservation_id}":{"get":{"tags":["Reservations"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"reservation_id","in":"path","description":"reservation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getReservation","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/reservations/{reservation_id}"},"summary":"Get reservation belonging to the specified organization and reservation ID. User must be part of the organization","description":"Get reservation belonging to the specified organization and reservation ID. User must be part of the organization. | Get reservation belonging to the specified organization and reservation ID. User must be part of the organization. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/sso/providers":{"get":{"tags":["SSO"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSSOProviders","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/sso/providers"},"summary":"Returns the active sso providers for a given orgID","description":"Returns the active sso providers for a given orgID. | Returns the active sso providers for a given orgID. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["SSO"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSSOProvider","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/sso/providers"},"summary":"Create a new SSO provider for a specific org","description":"Create a new SSO provider for a specific org. | Create a new SSO provider for a specific org. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"client_id":{"type":"string","description":"body.client_id (string field from the documented request schema)","required":true},"email_domains":{"type":"array","description":"body.email_domains (array field from the documented request schema)","required":true,"items":{"type":"string"}},"issuer_uri":{"type":"string","description":"body.issuer_uri (string field from the documented request schema)","required":true}}},"example":{"client_id":["string"],"email_domains":[["string"]],"issuer_uri":["string"]}}}}}},"/organizations/{organization_id}/sso/providers/{provider_id}":{"delete":{"tags":["SSO"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"provider_id","in":"path","description":"provider_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSSOProvider","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/sso/providers/{provider_id}"},"summary":"Delete a specific SSO provider for a specific org","description":"Delete a specific SSO provider for a specific org. | Delete a specific SSO provider for a specific org. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/organizations/{organization_id}/usage/export":{"get":{"tags":["Usage"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end_date","in":"query","description":"end_date (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"projects","in":"query","description":"projects (query parameter from the official API reference)","required":true,"schema":{"type":"array","example":""}},{"name":"regions","in":"query","description":"regions (query parameter from the official API reference)","required":true,"schema":{"type":"array","example":""}},{"name":"resource_types","in":"query","description":"resource_types (query parameter from the official API reference)","required":true,"schema":{"type":"array","example":""}},{"name":"resources","in":"query","description":"resources (query parameter from the official API reference)","required":true,"schema":{"type":"array","example":""}},{"name":"start_date","in":"query","description":"start_date (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getUsageExport","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/usage/export"},"summary":"Get resource-level usage for products in Crusoe Cloud","description":"Get resource-level usage for products in Crusoe Cloud. | Get resource-level usage for products in Crusoe Cloud. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/organizations/{organization_id}/usage/options":{"get":{"tags":["Usage"],"parameters":[{"name":"organization_id","in":"path","description":"organization_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getUsageOptions","api_endpoint":"https://api.cloud.crusoe.ai/v1/organizations/{organization_id}/usage/options"},"summary":"Get options which exist for filters for /usage and /usage/export routes","description":"Get options which exist for filters for /usage and /usage/export routes. | Get options which exist for filters for /usage and /usage/export routes. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/ccr/repositories":{"get":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repositories.","required":true,"schema":{"type":"string","example":""}},{"name":"page","in":"query","description":"Page number of results to return.","required":false,"schema":{"type":"number","example":""}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"number","example":""}},{"name":"sort_by","in":"query","description":"Field to sort the results by.","required":false,"schema":{"type":"string","example":""}},{"name":"sort_order","in":"query","description":"Order to sort the results in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listCcrRepositories","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories"},"summary":"Lists all container registry repositories in the project and returns their details","description":"Lists all container registry repositories in the project and returns their details. | Lists all container registry repositories in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to create the repository in.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createCcrRepository","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories"},"summary":"Creates a container registry repository in the project and returns the created repository","description":"Creates a container registry repository in the project and returns the created repository. | Creates a container registry repository in the project and returns the created repository. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"location":{"type":"string","description":"Location to create the repository in."},"max_size_bytes":{"type":"string","description":"Maximum total size for the new repository, in bytes."},"mode":{"type":"string","description":"Mode for the new repository, which determines how images are stored and served."},"name":{"type":"string","description":"Name for the new repository."},"upstream_registry":{"type":"object","description":"body.upstream_registry (object field from the documented request schema)","properties":{"provider":{"type":"string","description":"Provider of the upstream registry."},"upstream_registry_credentials":{"type":"object","description":"body.upstream_registry.upstream_registry_credentials (object field from the documented request schema)"},"url":{"type":"string","description":"Base URL of the upstream registry that the repository caches images from."}}}}},"example":{"location":["us-east1"],"max_size_bytes":["10737418240"],"mode":["string"],"name":["my-repository"],"upstream_registry":[{"provider":"string","upstream_registry_credentials":{"password":"string","username":"my-registry-user"},"url":"https://registry-1.docker.io"}]}}}}}},"/projects/{project_id}/ccr/repositories/{repository_id}":{"delete":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteCcrRepository","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}"},"summary":"Deletes a container registry repository from the project","description":"Deletes a container registry repository from the project. | Deletes a container registry repository from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getCcrRepository","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}"},"summary":"Returns details for a single container registry repository in the project","description":"Returns details for a single container registry repository in the project. | Returns details for a single container registry repository in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateCcrRepositoryCredentials","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}"},"summary":"Updates the upstream registry credentials for a repository in the project","description":"Updates the upstream registry credentials for a repository in the project. | Updates the username and password credentials for the upstream registry\nof a pull-through-cache repository. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"password":{"type":"string","description":"Password used to authenticate to the upstream registry."},"username":{"type":"string","description":"Username used to authenticate to the upstream registry."}}},"example":{"password":["string"],"username":["my-registry-user"]}}}}}},"/projects/{project_id}/ccr/repositories/{repository_id}/images":{"delete":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository that contains the image.","required":true,"schema":{"type":"string","example":""}},{"name":"image_id","in":"query","description":"ID of the image to delete.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteCcrImage","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}/images"},"summary":"Deletes an image from a container registry repository in the project","description":"Deletes an image from a container registry repository in the project. | Deletes an image from a container registry repository in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository that contains the images.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}},{"name":"page","in":"query","description":"Page number of results to return.","required":false,"schema":{"type":"number","example":""}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"number","example":""}},{"name":"sort_by","in":"query","description":"Field to sort the results by.","required":false,"schema":{"type":"string","example":""}},{"name":"sort_order","in":"query","description":"Order to sort the results in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listCcrImages","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}/images"},"summary":"Lists all images in a container registry repository in the project and returns their details","description":"Lists all images in a container registry repository in the project and returns their details. | Lists all images in a container registry repository in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/ccr/repositories/{repository_id}/manifests":{"delete":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository that contains the image.","required":true,"schema":{"type":"string","example":""}},{"name":"digest","in":"query","description":"Digest of the manifest to delete. Either tag or digest must be provided, but not both.","required":false,"schema":{"type":"string","example":""}},{"name":"image_id","in":"query","description":"ID of the image that contains the manifest.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}},{"name":"tag","in":"query","description":"Tag that points to the manifest to delete. Either tag or digest must be provided, but not both.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteCcrManifest","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}/manifests"},"summary":"Deletes a manifest from an image in a container registry repository in the project","description":"Deletes a manifest from an image in a container registry repository in the project. | Deletes a manifest from an image in a container registry repository in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository that contains the image.","required":true,"schema":{"type":"string","example":""}},{"name":"image_id","in":"query","description":"ID of the image whose manifests are listed.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}},{"name":"page","in":"query","description":"Page number of results to return.","required":false,"schema":{"type":"number","example":""}},{"name":"page_size","in":"query","description":"Number of results to return per page.","required":false,"schema":{"type":"number","example":""}},{"name":"sort_by","in":"query","description":"Field to sort the results by.","required":false,"schema":{"type":"string","example":""}},{"name":"sort_order","in":"query","description":"Order to sort the results in.","required":false,"schema":{"type":"string","example":""}},{"name":"tag_contains","in":"query","description":"Filters results to manifests with a tag that contains this substring.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listCcrManifests","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}/manifests"},"summary":"Lists all manifests for an image in a container registry repository in the project and returns their details","description":"Lists all manifests for an image in a container registry repository in the project and returns their details. | Lists all manifests for an image in a container registry repository in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/ccr/repositories/{repository_id}/usage":{"get":{"tags":["Container Registry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"repository_id","in":"path","description":"ID of the repository.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Location the repository is hosted in.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getCcrRepositoryUsage","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/ccr/repositories/{repository_id}/usage"},"summary":"Returns usage data for a single container registry repository in the project","description":"Returns usage data for a single container registry repository in the project. | Returns usage data for a single container registry repository in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/custom-images":{"get":{"tags":["Custom Images"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listCustomImages","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images"},"summary":"Lists all custom images in the project and returns their details","description":"Lists all custom images in the project and returns their details. | Lists all custom images in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Custom Images"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the custom image.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/customImagePost","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images"},"summary":"Creates a custom image in the project and returns the async operation","description":"Creates a custom image in the project and returns the async operation. | Creates a custom image in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"DiskID":{"type":"string","description":"ID of the disk to create the custom image from.","required":true},"description":{"type":"string","description":"Description for the new custom image."},"name":{"type":"string","description":"Name for the new custom image.","required":true},"tags":{"type":"array","description":"Tags to associate with the new custom image.","items":{"type":"string"}}}},"example":{"DiskID":["182d01c7-d3fe-424b-af13-8775aeead194"],"description":["Ubuntu is the modern, open source operating system on Linux for ..."],"name":["ubuntu"],"tags":["22.04,latest"]}}}}}},"/projects/{project_id}/compute/custom-images/operations":{"get":{"tags":["Custom Image Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listCustomImagesOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/operations"},"summary":"List custom image async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe custom images resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/custom-images/operations/{operation_id}":{"get":{"tags":["Custom Image Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getCustomImagesOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/operations/{operation_id}"},"summary":"Get status of a single asynchronous custom image operation","description":"Get status of a single asynchronous custom image operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe custom image resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/custom-images/{image_id}":{"delete":{"tags":["Custom Images"],"parameters":[{"name":"image_id","in":"path","description":"ID of the custom image.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the custom image.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/customImageDelete","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/{image_id}"},"summary":"Deletes a custom image from the project and returns the async operation","description":"Deletes a custom image from the project and returns the async operation. | Deletes a custom image from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Custom Images"],"parameters":[{"name":"image_id","in":"path","description":"ID of the image.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getCustomImage","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/{image_id}"},"summary":"Returns details for a single custom image in the project","description":"Returns details for a single custom image in the project. | Returns details for a single custom image in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Custom Images"],"parameters":[{"name":"image_id","in":"path","description":"ID of the custom image.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the custom image.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/customImagePatch","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/{image_id}"},"summary":"Updates a custom image in the project and returns the async operation","description":"Updates a custom image in the project and returns the async operation. | Updates a custom image in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"description":{"type":"string","description":"New description for the custom image.","required":true}}},"example":{"description":["\"Ubuntu is the modern, open source operating system on Linux for ...\""]}}}}}},"/projects/{project_id}/compute/custom-images/{image_id}/edit-tags":{"patch":{"tags":["Custom Images"],"parameters":[{"name":"image_id","in":"path","description":"ID of the custom image.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the custom image.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/customImageEditTags","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/custom-images/{image_id}/edit-tags"},"summary":"Updates the tags of a custom image in the project and returns the async operation","description":"Updates the tags of a custom image in the project and returns the async operation. | Updates the tags of a custom image in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"tags":{"type":"array","description":"New set of tags to associate with the custom image.","required":true,"items":{"type":"string"}}}},"example":{"tags":["[latest]"]}}}}}},"/projects/{project_id}/compute/instance-groups":{"get":{"tags":["Instance Groups"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listInstanceGroups","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-groups"},"summary":"Lists all instance groups in the project and returns their details","description":"Lists all instance groups in the project and returns their details. | Lists all instance groups in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Instance Groups"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createInstanceGroup","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-groups"},"summary":"Creates an instance group in the project and returns the created instance group","description":"Creates an instance group in the project and returns the created instance group. | Creates an instance group in the project and returns the created instance group. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"desired_count":{"type":"number","description":"Desired number of instances for the new instance group.","required":true},"name":{"type":"string","description":"Name for the new instance group.","required":true},"template_id":{"type":"string","description":"ID of the instance template to create the group's instances from.","required":true}}},"example":{"desired_count":[3],"name":["my-instance-group"],"template_id":["7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc"]}}}}}},"/projects/{project_id}/compute/instance-groups/{instance_group_id}":{"delete":{"tags":["Instance Groups"],"parameters":[{"name":"instance_group_id","in":"path","description":"ID of the instance group.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteInstanceGroup","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-groups/{instance_group_id}"},"summary":"Deletes an instance group from the project","description":"Deletes an instance group from the project. | Deletes an instance group from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Instance Groups"],"parameters":[{"name":"instance_group_id","in":"path","description":"ID of the instance group.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getInstanceGroup","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-groups/{instance_group_id}"},"summary":"Returns details for a single instance group in the project","description":"Returns details for a single instance group in the project. | Returns details for a single instance group in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Instance Groups"],"parameters":[{"name":"instance_group_id","in":"path","description":"ID of the instance group.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/patchInstanceGroup","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-groups/{instance_group_id}"},"summary":"Updates an instance group in the project and returns the updated instance group","description":"Updates an instance group in the project and returns the updated instance group. | Updates an instance group in the project and returns the updated instance group. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"desired_count":{"type":"object","description":"body.desired_count (object field from the documented request schema)","properties":{"value":{"type":"number","description":"New desired number of instances for the instance group."}}},"name":{"type":"string","description":"New name for the instance group."},"template_id":{"type":"string","description":"ID of the instance template to associate with the instance group."}}},"example":{"desired_count":[{"value":3}],"name":["my-instance-group"],"template_id":["7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc"]}}}}}},"/projects/{project_id}/compute/instance-templates":{"get":{"tags":["Instance Templates"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listInstanceTemplates","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-templates"},"summary":"Lists all instance templates in the project and returns their details","description":"Lists all instance templates in the project and returns their details. | Lists all instance templates in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Instance Templates"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createInstanceTemplate","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-templates"},"summary":"Creates an instance template in the project and returns the created instance template","description":"Creates an instance template in the project and returns the created instance template. | Creates an instance template in the project and returns the created instance template. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Product name of the VM type we want to create from this instance template.","required":true},"custom_image_name":{"type":"string","description":"Custom image to use for all VMs created from this instance template.\nOnly one of Image or CustomImage should be supplied at once."},"disks":{"type":"array","description":"Disks to attach to all VMs created from this instance template.","items":{"type":"object","properties":{"type":{"type":"string","description":"Type of disk to create: persistent-ssd or shared-volume.","required":true},"size":{"type":"string","description":"Size of the disk, including a unit suffix.","required":true}}}},"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"image_name":{"type":"string","description":"OS Image to use for all VMs created from this instance template."},"location":{"type":"string","description":"Location to use for all VMs created from this instance template.\nIf provided, all location-specific resources must also be provided."},"maintenance_policy":{"type":"string","description":"Host maintenance policy controlling how VMs created from this instance template behave during host maintenance."},"nvlink_domain_id":{"type":"string","description":"NVLink domain to assign to all VMs created from this instance template."},"placement_policy":{"type":"string","description":"Placement policy controlling how VMs created from this instance template are\ndistributed across hosts: spread or unspecified."},"public_ip_address_type":{"type":"string","description":"Public IP address type to use for all VMs created from this instance template. Must either be \"static\" or \"dynamic\"."},"reservation_id":{"type":"string","description":"Reservation to use for all VMs created from this instance template."},"shutdown_script":{"type":"string","description":"Shutdown script to use for all VMs created from this instance template."},"ssh_public_key":{"type":"string","description":"SSH public key to use for all VMs created from this instance template.","required":true},"startup_script":{"type":"string","description":"Startup script to use for all VMs created from this instance template."},"subnet_id":{"type":"string","description":"Subnet to use for all VMs created from this instance template.\nThis is location-specific and must be provided if location is provided."},"template_name":{"type":"string","description":"Name of the instance template. (This is not the name of the VMs created from this instance template.)","required":true},"transport_partition_id":{"type":"string","description":"IB or RoCE partition to use for all VMs created from this instance template.\nShould only be provided for transport-enabled VM types.\nThis is location-specific and must be provided if location is provided."},"virtualization_features":{"type":"object","description":"body.virtualization_features (object field from the documented request schema)","properties":{"nested_virtualization":{"type":"boolean","description":"Whether nested virtualization is enabled, allowing a VM to run inside this VM.","enum":[true,false]}}}}},"example":{"type":["a100.2x"],"custom_image_name":["ubuntu:20.04"],"disks":[[{"type":"persistent-ssd","size":"10GiB"}]],"ib_partition_id":["string"],"image_name":["ubuntu:20.04"],"location":["us-northcentral1-a"],"maintenance_policy":["manual,stop-vm,unspecified"],"nvlink_domain_id":["550e8400-e29b-41d4-a716-446655440000"],"placement_policy":["spread"],"public_ip_address_type":["static"],"reservation_id":["804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8"],"shutdown_script":["\"#!/bin/bash\\necho 'goodbye'\""],"ssh_public_key":["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"],"startup_script":["\"#!/bin/bash\\necho 'hello'\""],"subnet_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"template_name":["my-instance-template"],"transport_partition_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"virtualization_features":[{"nested_virtualization":true}]}}}}}},"/projects/{project_id}/compute/instance-templates/{instance_template_id}":{"delete":{"tags":["Instance Templates"],"parameters":[{"name":"instance_template_id","in":"path","description":"ID of the instance template.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteInstanceTemplate","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-templates/{instance_template_id}"},"summary":"Deletes an instance template from the project","description":"Deletes an instance template from the project. | Deletes an instance template from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Instance Templates"],"parameters":[{"name":"instance_template_id","in":"path","description":"ID of the instance template.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getInstanceTemplate","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/instance-templates/{instance_template_id}"},"summary":"Returns details for a single instance template in the project","description":"Returns details for a single instance template in the project. | Returns details for a single instance template in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/vms/bulk-instances":{"post":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/bulkCreateInstance","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/bulk-instances"},"summary":"Creates multiple VMs in the project and returns the async operation","description":"Creates multiple VMs in the project and returns the async operation. | Creates multiple VMs in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"number","description":"Number of VMs to create. If multiple locations are specified, this is the number of VMs\ncreated in each location.","required":true},"crusoe_watch_agent_install_mode":{"type":"string","description":"Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker."},"install_crusoe_watch_agent":{"type":"boolean","description":"Whether to install the Crusoe Watch Agent on the VMs. Defaults to true.","enum":[true,false]},"instance_group_id":{"type":"string","description":"ID of the instance group the VMs will be created in."},"instance_template":{"type":"object","description":"body.instance_template (object field from the documented request schema)","properties":{"type":{"type":"string","description":"Product name of the VM type we want to create from this instance template.","required":true},"custom_image_name":{"type":"string","description":"Custom image to use for all VMs created from this instance template.\nOnly one of Image or CustomImage should be supplied at once."},"disks":{"type":"array","description":"Disks to attach to all VMs created from this instance template."},"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"image_name":{"type":"string","description":"OS Image to use for all VMs created from this instance template."},"location":{"type":"string","description":"Location to use for all VMs created from this instance template.\nIf provided, all location-specific resources must also be provided."},"maintenance_policy":{"type":"string","description":"Host maintenance policy controlling how VMs created from this instance template behave during host maintenance."},"nvlink_domain_id":{"type":"string","description":"NVLink domain to assign to all VMs created from this instance template."},"placement_policy":{"type":"string","description":"Placement policy controlling how VMs created from this instance template are\ndistributed across hosts: spread or unspecified."},"public_ip_address_type":{"type":"string","description":"Public IP address type to use for all VMs created from this instance template. Must either be \"static\" or \"dynamic\"."},"reservation_id":{"type":"string","description":"Reservation to use for all VMs created from this instance template."},"shutdown_script":{"type":"string","description":"Shutdown script to use for all VMs created from this instance template."},"ssh_public_key":{"type":"string","description":"SSH public key to use for all VMs created from this instance template.","required":true},"startup_script":{"type":"string","description":"Startup script to use for all VMs created from this instance template."},"subnet_id":{"type":"string","description":"Subnet to use for all VMs created from this instance template.\nThis is location-specific and must be provided if location is provided."},"template_name":{"type":"string","description":"Name of the instance template. (This is not the name of the VMs created from this instance template.)","required":true},"transport_partition_id":{"type":"string","description":"IB or RoCE partition to use for all VMs created from this instance template.\nShould only be provided for transport-enabled VM types.\nThis is location-specific and must be provided if location is provided."},"virtualization_features":{"type":"object","description":"body.instance_template.virtualization_features (object field from the documented request schema)"}}},"instance_template_id":{"type":"string","description":"ID of the instance template to use for creating the VMs."},"locations":{"type":"array","description":"Locations to create the VMs in. This overrides any location specified in the instance template.","items":{"type":"object","properties":{"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"location":{"type":"string","description":"Location to create the VMs in.","required":true},"subnet_id":{"type":"string","description":"ID of the subnet to create the VMs in. Must be in the same location\nas the VMs. If not provided, the default subnet for the location will be\nused, if there is one."},"transport_partition_id":{"type":"string","description":"ID of the Infiniband or RoCE partition to create the VMs in, if a transport type was\nspecified. Must be in the same location as the VMs."}}}},"name_prefix":{"type":"string","description":"Name prefix for the VMs to be created, used to derive each VM's name (e.g. \"my-vm\" produces\n\"my-vm-1\", \"my-vm-2\", and so on).","required":true},"nvlink_domain_id":{"type":"string","description":"ID of the NVLink domain to create the VMs in."},"reservation_specification":{"type":"object","description":"body.reservation_specification (object field from the documented request schema)","properties":{"id":{"type":"string","description":"ID of the reservation to use for the VM. Incompatible with selection_strategy."},"selection_strategy":{"type":"string","description":"Strategy for automatically selecting a reservation: lowest_cost or on_demand. Use on_demand\nto opt out of reservation usage. Incompatible with id."}}}}},"example":{"count":[6],"crusoe_watch_agent_install_mode":["docker"],"install_crusoe_watch_agent":[false],"instance_group_id":["cda562c4-6162-4565-95f3-ce06a8220c07"],"instance_template":[{"custom_image_name":"ubuntu:20.04","disks":[{"type":"persistent-ssd","size":"10GiB"}],"ib_partition_id":"string","image_name":"ubuntu:20.04","location":"us-northcentral1-a","maintenance_policy":"manual,stop-vm,unspecified","nvlink_domain_id":"550e8400-e29b-41d4-a716-446655440000","placement_policy":"spread","public_ip_address_type":"static","reservation_id":"804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8","shutdown_script":"\"#!/bin/bash\\necho 'goodbye'\"","ssh_public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"}],"instance_template_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"locations":[[{"ib_partition_id":"string","location":"us-northcentral1-a","subnet_id":"09ae8411-0fbb-411c-898c-2b8f19622ae1","transport_partition_id":"09ae8411-0fbb-411c-898c-2b8f19622ae1"}]],"name_prefix":["my-vm"],"nvlink_domain_id":["string"],"reservation_specification":[{"id":"804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8","selection_strategy":"lowest_cost"}]}}}}}},"/projects/{project_id}/compute/vms/instances":{"get":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"ids","in":"query","description":"Filters results to VMs with these IDs.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of VMs to return per page.","required":false,"schema":{"type":"string","example":""}},{"name":"locations","in":"query","description":"Filters results to VMs in these locations.","required":false,"schema":{"type":"string","example":""}},{"name":"names","in":"query","description":"Filters results to VMs with these names.","required":false,"schema":{"type":"string","example":""}},{"name":"next_token","in":"query","description":"Token identifying the next page of results to return.","required":false,"schema":{"type":"string","example":""}},{"name":"nvlink_domain_ids","in":"query","description":"Filters results to VMs in these NVLink domains.","required":false,"schema":{"type":"string","example":""}},{"name":"prev_token","in":"query","description":"Token identifying the previous page of results to return.","required":false,"schema":{"type":"string","example":""}},{"name":"sort","in":"query","description":"Field to sort the results by.","required":false,"schema":{"type":"string","example":""}},{"name":"states","in":"query","description":"Filters results to VMs in these states.","required":false,"schema":{"type":"string","example":""}},{"name":"types","in":"query","description":"Filters results to VMs of these types.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listInstances","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances"},"summary":"Lists all VMs in the project and returns their details","description":"Lists all VMs in the project and returns their details. | Lists all VMs in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createInstance","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances"},"summary":"Creates a VM in the project and returns the async operation","description":"Creates a VM in the project and returns the async operation. | Creates a VM in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Product name of the VM type to create.","required":true},"commitment_period":{"type":"number","description":"commitment is no longer supported"},"crusoe_watch_agent_install_mode":{"type":"string","description":"Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker."},"custom_image":{"type":"string","description":"ID of a custom image to use for the new VM. Either image or custom_image should be supplied, not both."},"disks":{"type":"array","description":"Disks to attach to the new VM.","items":{"type":"object","properties":{"attachment_type":{"type":"string","description":"Role the disk plays for the VM: os or data.","required":true},"disk_id":{"type":"string","description":"ID of the disk to attach.","required":true},"mode":{"type":"string","description":"Access mode to attach the disk with: read-only or read-write.","required":true}}}},"host_channel_adapters":{"type":"array","description":"Host channel adapters to attach to the new VM.","items":{"type":"object","properties":{"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"transport_partition_id":{"type":"string","description":"ID of the transport partition to assign the host channel adapter to."}}}},"image":{"type":"string","description":"Name of the OS image to use for the new VM. Either image or custom_image should be supplied, not both."},"install_crusoe_watch_agent":{"type":"boolean","description":"Whether to install the Crusoe Watch Agent on the VM. Defaults to true.","enum":[true,false]},"location":{"type":"string","description":"Location to create the VM in.","required":true},"maintenance_policy":{"type":"string","description":"Host maintenance policy to apply to the new VM: manual, stop-vm, or unspecified."},"name":{"type":"string","description":"Name for the new VM.","required":true},"network_interfaces":{"type":"array","description":"Network interfaces to attach to the new VM.","items":{"type":"object","properties":{"external_dns_name":{"type":"string","description":"External DNS name of the network interface.","required":true},"id":{"type":"string","description":"ID of the network interface.","required":true},"interface_type":{"type":"string","description":"Type of the network interface.","required":true},"ips":{"type":"array","description":"IP addresses assigned to the network interface.","required":true},"mac_address":{"type":"string","description":"MAC address of the network interface.","required":true},"name":{"type":"string","description":"Name of the network interface.","required":true},"network":{"type":"string","description":"ID of the VPC network the interface is attached to.","required":true},"subnet":{"type":"string","description":"ID of the VPC subnet the interface is attached to.","required":true}}}},"nvlink_domain_id":{"type":"string","description":"ID of the NVLink domain to create the VM in."},"reservation_specification":{"type":"object","description":"body.reservation_specification (object field from the documented request schema)","properties":{"id":{"type":"string","description":"ID of the reservation to use for the VM. Incompatible with selection_strategy."},"selection_strategy":{"type":"string","description":"Strategy for automatically selecting a reservation: lowest_cost or on_demand. Use on_demand\nto opt out of reservation usage. Incompatible with id."}}},"shutdown_script":{"type":"string","description":"Script to run when the VM shuts down."},"ssh_public_key":{"type":"string","description":"SSH public key to grant access to the new VM.","required":true},"startup_script":{"type":"string","description":"Script to run when the VM starts."},"virtualization_features":{"type":"object","description":"body.virtualization_features (object field from the documented request schema)","properties":{"nested_virtualization":{"type":"boolean","description":"Whether nested virtualization is enabled, allowing a VM to run inside this VM.","enum":[true,false]}}}}},"example":{"type":["a100.2x"],"commitment_period":[0],"crusoe_watch_agent_install_mode":["docker"],"custom_image":["string"],"disks":["[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attachment_type: \"data\"},"],"host_channel_adapters":[[{"ib_partition_id":"string","transport_partition_id":"string"}]],"image":["ubuntu:20.04"],"install_crusoe_watch_agent":[false],"location":["us-northcentral1-a"],"maintenance_policy":["manual,stop-vm,unspecified"],"name":["my-first-vm"],"network_interfaces":[[{"external_dns_name":"string","id":"ca39e669-47ee-456b-968d-303234fbf99f","interface_type":"ethernet","ips":[{"private_ipv4":{},"public_ipv4":{}}],"mac_address":"00:00:5e:00:53:af","name":"network-interface-1","network":"1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc","subnet":"1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc"}]],"nvlink_domain_id":["string"],"reservation_specification":[{"id":"804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8","selection_strategy":"lowest_cost"}],"shutdown_script":["#!/bin/bash\\necho 'goodbye'"],"ssh_public_key":["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"],"startup_script":["#!/bin/bash\\necho 'hello'"],"virtualization_features":[{"nested_virtualization":true}]}}}}}},"/projects/{project_id}/compute/vms/instances/operations":{"get":{"tags":["VM Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"lower_time_bound","in":"query","description":"lower_time_bound (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listComputeVMsInstancesOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/operations"},"summary":"List VM async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe instances resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/vms/instances/operations/{operation_id}":{"get":{"tags":["VM Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getComputeVMsInstancesOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/operations/{operation_id}"},"summary":"Get the status of a single asynchronous operation","description":"Get the status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe instances resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/compute/vms/instances/{vm_id}":{"delete":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VM.","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"ID of the VM.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteInstance","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/{vm_id}"},"summary":"Deletes a VM from the project and returns the async operation","description":"Deletes a VM from the project and returns the async operation. | Deletes a VM from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VM.","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"ID of the VM.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getInstance","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/{vm_id}"},"summary":"Returns details for a single VM in the project","description":"Returns details for a single VM in the project. | Returns details for a single VM in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VM.","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"ID of the VM.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateInstance","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/{vm_id}"},"summary":"Updates a VM in the project and returns the async operation","description":"Updates a VM in the project and returns the async operation. | Updates a VM in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"New VM type to change the VM to."},"action":{"type":"string","description":"Action to perform on the VM: START, STOP, RESET, RESERVE, UNRESERVE, or UPDATE. RESERVE and\nUNRESERVE operations are done synchronously, and so will have succeeded with a 200 response.","required":true},"commitment_period":{"type":"number","description":"CommitmentPeriod is deprecated, please use reservationID instead"},"host_channel_adapters":{"type":"array","description":"New set of host channel adapters for the VM.","items":{"type":"object","properties":{"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"transport_partition_id":{"type":"string","description":"ID of the transport partition to assign the host channel adapter to."}}}},"maintenance_policy":{"type":"string","description":"New host maintenance policy for the VM: manual, stop-vm, or unspecified."},"network_interfaces":{"type":"array","description":"New set of network interfaces for the VM.","items":{"type":"object","properties":{"external_dns_name":{"type":"string","description":"External DNS name of the network interface.","required":true},"id":{"type":"string","description":"ID of the network interface.","required":true},"interface_type":{"type":"string","description":"Type of the network interface.","required":true},"ips":{"type":"array","description":"IP addresses assigned to the network interface.","required":true},"mac_address":{"type":"string","description":"MAC address of the network interface.","required":true},"name":{"type":"string","description":"Name of the network interface.","required":true},"network":{"type":"string","description":"ID of the VPC network the interface is attached to.","required":true},"subnet":{"type":"string","description":"ID of the VPC subnet the interface is attached to.","required":true}}}},"reservation_id":{"type":"string","description":"ID of the reservation to use for the VM."}}},"example":{"type":["a100.2x"],"action":["START"],"commitment_period":[0],"host_channel_adapters":[[{"ib_partition_id":"string","transport_partition_id":"string"}]],"maintenance_policy":["manual,stop-vm,unspecified"],"network_interfaces":[[{"external_dns_name":"string","id":"ca39e669-47ee-456b-968d-303234fbf99f","interface_type":"ethernet","ips":[{"private_ipv4":{},"public_ipv4":{}}],"mac_address":"00:00:5e:00:53:af","name":"network-interface-1","network":"1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc","subnet":"1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc"}]],"reservation_id":["804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8"]}}}}}},"/projects/{project_id}/compute/vms/instances/{vm_id}/attach-disks":{"post":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VM.","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"ID of the VM.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateInstanceAttachDisks","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/{vm_id}/attach-disks"},"summary":"Attaches disks to a VM in the project and returns the async operation","description":"Attaches disks to a VM in the project and returns the async operation. | Attaches disks to a VM in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"attach_disks":{"type":"array","description":"Disks to attach to the VM.","required":true,"items":{"type":"object","properties":{"attachment_type":{"type":"string","description":"Role the disk plays for the VM: os or data.","required":true},"disk_id":{"type":"string","description":"ID of the disk to attach.","required":true},"mode":{"type":"string","description":"Access mode to attach the disk with: read-only or read-write.","required":true}}}}}},"example":{"attach_disks":["[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attachment_type: \"data\"}, {disk_id: \"b1f86d1b-42d2-490d-adb0-cc1029abf653\", mode: \"read-only\", attachment_type: \"data\"}]"]}}}}}},"/projects/{project_id}/compute/vms/instances/{vm_id}/detach-disks":{"post":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VM.","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"ID of the VM.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateInstanceDetachDisks","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/instances/{vm_id}/detach-disks"},"summary":"Detaches disks from a VM in the project and returns the async operation","description":"Detaches disks from a VM in the project and returns the async operation. | Detaches disks from a VM in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"detach_disks":{"type":"array","description":"Identifiers of the disks to detach from the VM.","required":true,"items":{"type":"string"}}}},"example":{"detach_disks":[["09ae8411-0fbb-411c-898c-2b8f19622ae1","123e4567-e89b-12d3-a456-426614174000"]]}}}}}},"/projects/{project_id}/compute/vms/types":{"get":{"tags":["VMs"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getVMTypes","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/compute/vms/types"},"summary":"Lists all available VM types and returns their details","description":"Lists all available VM types and returns their details. | Lists all available VM types and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/credentials":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listFoundryCredentials","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/credentials"},"summary":"Lists the credentials in the project","description":"Lists the credentials in the project. | Lists the credentials in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createFoundryCredential","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/credentials"},"summary":"Creates a credential in the project","description":"Creates a credential in the project. | Creates a credential in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"credentials":{"type":"object","description":"body.credentials (object field from the documented request schema)","required":true,"properties":{"token":{"type":"string","description":"Access token (e.g. a HuggingFace token). Write-only; omitted unless explicitly revealed."}}},"description":{"type":"string","description":"Optional human-readable description."},"name":{"type":"string","description":"Name of the credential.","required":true}}},"example":{"credentials":[{"token":"string"}],"description":["string"],"name":["string"]}}}}}},"/projects/{project_id}/foundry/credentials/{id}":{"delete":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the credential.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteFoundryCredential","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/credentials/{id}"},"summary":"Deletes a credential from the project","description":"Deletes a credential from the project. | Deletes a credential from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the credential.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}},{"name":"reveal","in":"query","description":"When true, include the secret material in the response.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryCredential","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/credentials/{id}"},"summary":"Returns a single credential in the project","description":"Returns a single credential in the project. | Returns a single credential in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the credential.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateFoundryCredential","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/credentials/{id}"},"summary":"Updates a credential's description in the project","description":"Updates a credential's description in the project. | Updates a credential's description in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"description":{"type":"string","description":"Updated description."}}},"example":{"description":["string"]}}}}}},"/projects/{project_id}/foundry/deployed-models":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listFoundryDeployedModels","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models"},"summary":"Lists the models deployed and available for inference in the project","description":"Lists the models deployed and available for inference in the project. | Lists the models deployed and available for inference in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/deployed-models/activity":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryDeployedModelsActivity","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models/activity"},"summary":"Returns the activity feed for the project's deployed models","description":"Returns the activity feed for the project's deployed models. | Returns the activity feed for the project's deployed models. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/deployed-models/progress":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryDeployedModelsProgress","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models/progress"},"summary":"Returns deployment progress for the project's deployed models","description":"Returns deployment progress for the project's deployed models. | Returns deployment progress for the project's deployed models. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/deployed-models/progress/stream":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/streamFoundryDeployedModelsProgress","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models/progress/stream"},"summary":"Streams deployment progress for the project's deployed models as server-sent events","description":"Streams deployment progress for the project's deployed models as server-sent events. | The response is a text/event-stream of progress updates. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/deployed-models/rename":{"post":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/renameFoundryDeployedModel","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models/rename"},"summary":"Renames a deployed model's alias","description":"Renames a deployed model's alias. | Renames a deployed model's alias. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model_alias":{"type":"string","description":"Current alias of the model.","required":true},"new_alias":{"type":"string","description":"New alias for the model.","required":true}}},"example":{"model_alias":["string"],"new_alias":["string"]}}}}}},"/projects/{project_id}/foundry/deployed-models/update":{"post":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateFoundryDeployedModel","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/deployed-models/update"},"summary":"Updates the HuggingFace source behind a deployed model's alias","description":"Updates the HuggingFace source behind a deployed model's alias. | Updates the HuggingFace source behind a deployed model's alias. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model_alias":{"type":"string","description":"Customer-facing alias of the model to update.","required":true},"new_hugging_face_model":{"type":"string","description":"New HuggingFace model to point the alias at.","required":true},"region":{"type":"string","description":"Region in which to perform the update. If omitted, all regions are updated."},"run_candidate_test":{"type":"boolean","description":"Whether to run a candidate health-check before switching the source.","enum":[true,false]}}},"example":{"model_alias":["string"],"new_hugging_face_model":["string"],"region":["string"],"run_candidate_test":[false]}}}}}},"/projects/{project_id}/foundry/loras":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the deployments.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listFoundryLoras","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/loras"},"summary":"Lists the LoRA adapter deployments in the project","description":"Lists the LoRA adapter deployments in the project. | Lists the LoRA adapter deployments in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to deploy the adapter in.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createFoundryLora","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/loras"},"summary":"Deploys a LoRA adapter (a fine-tuned model) onto its parent base model in the project","description":"Deploys a LoRA adapter (a fine-tuned model) onto its parent base model in the project. | The deployment is asynchronous: the response returns the deployment record in a\npending state, which is reconciled to ready once the adapter is loaded. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"model_id":{"type":"string","description":"ID of the fine-tuned model (LoRA adapter) to deploy, as registered in the model registry.","required":true}}},"example":{"model_id":["string"]}}}}}},"/projects/{project_id}/foundry/loras/{id}":{"delete":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the LoRA adapter deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the deployment.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteFoundryLora","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/loras/{id}"},"summary":"Removes a LoRA adapter deployment from the project","description":"Removes a LoRA adapter deployment from the project. | The teardown is asynchronous: the adapter is unloaded from the serving cluster in the background. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the LoRA adapter deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the deployment.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryLora","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/loras/{id}"},"summary":"Returns a single LoRA adapter deployment in the project","description":"Returns a single LoRA adapter deployment in the project. | Returns a single LoRA adapter deployment in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/selfserve/deployments":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listFoundryDeployments","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments"},"summary":"Lists the self-serve deployments in the project","description":"Lists the self-serve deployments in the project. | Lists the self-serve deployments in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createFoundryDeployment","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments"},"summary":"Creates a self-serve deployment in the project","description":"Creates a self-serve deployment in the project. | Asynchronous: returns the accepted deployment ID and status. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"deployment_name":{"type":"string","description":"User-chosen deployment name.","required":true},"fine_tuned_model":{"type":"string","description":"The fine-tuned model to deploy.","required":true},"flavor_id":{"type":"string","description":"ID of the flavor (hardware/model shape) to deploy on.","required":true},"replicas":{"type":"number","description":"Number of replicas to run."}}},"example":{"deployment_name":["string"],"fine_tuned_model":["string"],"flavor_id":["string"],"replicas":[0]}}}}}},"/projects/{project_id}/foundry/selfserve/deployments/{id}":{"delete":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteFoundryDeployment","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}"},"summary":"Deletes a self-serve deployment from the project","description":"Deletes a self-serve deployment from the project. | Deletes a self-serve deployment from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryDeployment","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}"},"summary":"Returns a single self-serve deployment in the project","description":"Returns a single self-serve deployment in the project. | Returns a single self-serve deployment in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateFoundryDeployment","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}"},"summary":"Updates a self-serve deployment (name and/or replica count) in the project","description":"Updates a self-serve deployment (name and/or replica count) in the project. | Updates a self-serve deployment (name and/or replica count) in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"deployment_name":{"type":"string","description":"Updated deployment name."},"replicas":{"type":"number","description":"Updated replica count."}}},"example":{"deployment_name":["string"],"replicas":[0]}}}}}},"/projects/{project_id}/foundry/selfserve/deployments/{id}/activity":{"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryDeploymentActivity","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}/activity"},"summary":"Returns the activity feed for a self-serve deployment","description":"Returns the activity feed for a self-serve deployment. | Returns the activity feed for a self-serve deployment. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/selfserve/deployments/{id}/progress":{"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getFoundryDeploymentProgress","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}/progress"},"summary":"Returns deployment progress for a self-serve deployment","description":"Returns deployment progress for a self-serve deployment. | Returns deployment progress for a self-serve deployment. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/selfserve/deployments/{id}/progress/stream":{"get":{"tags":["Foundry"],"parameters":[{"name":"id","in":"path","description":"ID of the deployment.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/streamFoundryDeploymentProgress","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/deployments/{id}/progress/stream"},"summary":"Streams progress for a self-serve deployment as server-sent events","description":"Streams progress for a self-serve deployment as server-sent events. | The response is a text/event-stream of progress updates. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/foundry/selfserve/flavors":{"get":{"tags":["Foundry"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listFoundryFlavors","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/foundry/selfserve/flavors"},"summary":"Lists the self-serve deployment flavors available to the project","description":"Lists the self-serve deployment flavors available to the project. | Lists the self-serve deployment flavors available to the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/autocluster-operations":{"get":{"tags":["AutoCluster Operations"],"parameters":[{"name":"project_id","in":"path","description":"Project ID","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"query","description":"cluster_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"lower_bound","in":"query","description":"lower_bound (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"operation_id","in":"query","description":"operation_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"operation_type","in":"query","description":"operation_type (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"remediation_state","in":"query","description":"remediation_state (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"upper_bound","in":"query","description":"upper_bound (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listAutoClusterOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/autocluster-operations"},"summary":"Retrieve information about AutoCluster operations for a project","description":"Retrieve information about AutoCluster operations for a project. | Retrieve information about AutoCluster operations for a project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/autocluster-operations/{operation_id}":{"get":{"tags":["AutoCluster Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getAutoClusterOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/autocluster-operations/{operation_id}"},"summary":"Retrieve information about a specific AutoCluster operation","description":"Retrieve information about a specific AutoCluster operation. | Retrieve information about a specific AutoCluster operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/clusters":{"get":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the clusters.","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"query","description":"Filters results to the cluster with this ID.","required":false,"schema":{"type":"string","example":""}},{"name":"cluster_name","in":"query","description":"Filters results to the cluster with this name.","required":false,"schema":{"type":"string","example":""}},{"name":"cluster_search_names","in":"query","description":"Filters results to clusters whose name matches one of these search names.","required":false,"schema":{"type":"array","example":""}},{"name":"locations","in":"query","description":"Filters results to clusters in these locations.","required":false,"schema":{"type":"array","example":""}},{"name":"next_token","in":"query","description":"Base64-encoded token for the next page of results.","required":false,"schema":{"type":"string","example":""}},{"name":"prev_token","in":"query","description":"Base64-encoded token for the previous page of results.","required":false,"schema":{"type":"string","example":""}},{"name":"show_inactive","in":"query","description":"Whether to include inactive clusters in the results.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"sort","in":"query","description":"Field to sort results by; prefix with '-' for descending order.","required":false,"schema":{"type":"string","example":""}},{"name":"states","in":"query","description":"Filters results to clusters in these states.","required":false,"schema":{"type":"array","example":""}},{"name":"versions","in":"query","description":"Filters results to clusters running these versions.","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listClusters","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters"},"summary":"Lists all Kubernetes clusters in the project and returns their details","description":"Lists all Kubernetes clusters in the project and returns their details. | Lists all Kubernetes clusters in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to create the cluster in.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters"},"summary":"Creates a Kubernetes cluster in the project and returns the async operation","description":"Creates a Kubernetes cluster in the project and returns the async operation. | Creates a Kubernetes cluster in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"add_ons":{"type":"array","description":"List of add-ons to include in the new cluster.","items":{"type":"string"}},"apiserver_extra_args":{"type":"object","description":"Extra arguments to pass to the kube-apiserver control plane component.","properties":{}},"auth_config":{"type":"object","description":"This configures how users authenticate to the Kubernetes API server.\nexample: {\"oidc\": {\"issuer_url\": \"https://oauth2.example.com\", \"client_id\": \"kubernetes\"}}","properties":{"oidc":{"type":"object","description":"This allows the Kubernetes API server to authenticate users via an external OIDC provider."}}},"cluster_cidr":{"type":"string","description":"Range of IP addresses allocated to pods scheduled on worker nodes, in CIDR notation."},"configuration":{"type":"string","description":"Configuration setting is deprecated, defaults to HA configuration."},"controller_manager_extra_args":{"type":"object","description":"Extra arguments to pass to the kube-controller-manager control plane component.","properties":{}},"kubelogin_args":{"type":"object","description":"Arguments for the kubectl oidc-login plugin.","properties":{}},"location":{"type":"string","description":"Location to create the Kubernetes cluster in.","required":true},"name":{"type":"string","description":"Name of the Kubernetes cluster.","required":true},"node_cidr_mask_size":{"type":"number","description":"Mask size for the cluster CIDR."},"private":{"type":"boolean","description":"Whether the cluster is private (without a public IP). Defaults to false.","enum":[true,false]},"scheduler_extra_args":{"type":"object","description":"Extra arguments to pass to the kube-scheduler control plane component.","properties":{}},"service_cluster_ip_range":{"type":"string","description":"Range of IP addresses allocated to Kubernetes services, in CIDR notation."},"subnet_id":{"type":"string","description":"ID of the subnet to create the cluster in. Must be in the location\nspecified. If not provided, the default subnet for the location is\nused, if there is one."},"version":{"type":"string","description":"Version of the Crusoe Kubernetes image to create the cluster with.","required":true}}},"example":{"add_ons":[["crusoe_csi","nvidia_gpu_operator","nvidia_network_operator"]],"apiserver_extra_args":[{"audit-log-maxage":"30"}],"auth_config":[{"oidc":{"ca_cert":"string","client_id":"kubernetes","groups_claim":"groups","issuer_url":"https://oauth2.example.com","username_claim":"email","username_prefix":"oidc:"}}],"cluster_cidr":["10.233.0.0/18"],"configuration":["ha"],"controller_manager_extra_args":[{"bind-address":"0.0.0.0"}],"kubelogin_args":[{"force-refresh":"","oidc-extra-scope":"email groups"}],"location":["us-northcentral1-a"],"name":["my-kubernetes-cluster"],"node_cidr_mask_size":[24],"private":[true],"scheduler_extra_args":[{"bind-address":"0.0.0.0"}],"service_cluster_ip_range":["10.233.0.0/18"],"subnet_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"version":["1.29.5-crusoe.0"]}}}}}},"/projects/{project_id}/kubernetes/clusters/operations":{"get":{"tags":["Kubernetes Cluster Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listKubernetesClustersOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/operations"},"summary":"List kubernetes cluster async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of an asynchronous operation initiated by\nthe Kubernetes Cluster resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/clusters/operations/{operation_id}":{"get":{"tags":["Kubernetes Cluster Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getKubernetesClustersOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/operations/{operation_id}"},"summary":"Get kubernetes cluster async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe Kubernetes Cluster resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/clusters/{cluster_id}":{"delete":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}"},"summary":"Deletes a Kubernetes cluster from the project and returns the async operation","description":"Deletes a Kubernetes cluster from the project and returns the async operation. | Deletes a Kubernetes cluster from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}"},"summary":"Returns details for a single Kubernetes cluster in the project","description":"Returns details for a single Kubernetes cluster in the project. | Returns details for a single Kubernetes cluster in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}"},"summary":"Updates a Kubernetes cluster in the project and returns the async operation","description":"Updates a Kubernetes cluster in the project and returns the async operation. | Updates a Kubernetes cluster in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"apiserver_extra_args":{"type":"object","description":"New extra arguments to pass to the kube-apiserver control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.","properties":{}},"configuration":{"type":"string","description":"Configuration setting is deprecated, defaults to HA configuration."},"controller_manager_extra_args":{"type":"object","description":"New extra arguments to pass to the kube-controller-manager control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.","properties":{}},"kubelogin_args":{"type":"object","description":"New arguments for the kubectl oidc-login plugin.","required":true,"properties":{}},"scheduler_extra_args":{"type":"object","description":"New extra arguments to pass to the kube-scheduler control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.","properties":{}}}},"example":{"apiserver_extra_args":[{"audit-log-maxage":"30"}],"configuration":["ha"],"controller_manager_extra_args":[{"bind-address":"0.0.0.0"}],"kubelogin_args":[{"force-refresh":"","oidc-extra-scope":"email groups"}],"scheduler_extra_args":[{"bind-address":"0.0.0.0"}]}}}}}},"/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config":{"get":{"tags":["AutoClusters"],"parameters":[{"name":"cluster_id","in":"path","description":"Cluster ID","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"Project ID","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getAutoClustersConfig","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config"},"summary":"Retrieve the AutoClusters configuration for a specific cluster","description":"Retrieve the AutoClusters configuration for a specific cluster. | Returns the cluster's Autoclusters configuration including alert handling defaults and any customer overrides. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["AutoClusters"],"parameters":[{"name":"cluster_id","in":"path","description":"Cluster ID","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"Project ID","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateAutoClustersConfig","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config"},"summary":"Update the AutoClusters configuration for a specific cluster","description":"Update the AutoClusters configuration for a specific cluster. | Allows setting or removing remediation overrides and configuring project reservation fallback. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"fallback_to_project_reservations":{"type":"boolean","description":"Whether to use project's unused reservations as fallback. If not set, existing value is preserved.","required":true,"enum":[true,false]},"remove_remediation_overrides":{"type":"array","description":"Remediation overrides to remove (revert to system defaults).","items":{"type":"string"}},"set_remediation_overrides":{"type":"array","description":"Remediation overrides to add or update. These will override the system defaults.","items":{"type":"object","properties":{"action":{"type":"string","description":"example: REPLACE_NODE\nenum: REPLACE_NODE,OFF","required":true},"issue_name":{"type":"string","description":"The issue name to override (e.g., \"XID_74\", \"GPU_FELL_OFF_THE_BUS\").","required":true}}}}}},"example":{"fallback_to_project_reservations":[true],"remove_remediation_overrides":[["XID_74","GPU_FELL_OFF_THE_BUS"]],"set_remediation_overrides":[[{"action":"OFF","issue_name":"XID_74"}]]}}}}}},"/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate":{"post":{"tags":["AutoClusters"],"parameters":[{"name":"cluster_id","in":"path","description":"cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"vm_id","in":"path","description":"vm_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/remediateVM","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate"},"summary":"Trigger VM remediation","description":"Trigger VM remediation. | Trigger remediation for a VM within a Kubernetes cluster with AutoClusters add-on enabled. This creates an AutoClusters operation and returns an\nasynchronous operation handle. Currently, this defaults to performing a replace node operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":false,"content":{"multipart/form-data":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/projects/{project_id}/kubernetes/clusters/{cluster_id}/get-credentials":{"post":{"tags":["Kubernetes Clusters"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"auth_type","in":"query","description":"Type of credentials to return: oidc or admin_cert.","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["oidc","admin_cert"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getClusterCredentials","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/get-credentials"},"summary":"Returns credentials for the user to authenticate to the cluster","description":"Returns credentials for the user to authenticate to the cluster. | Returns credentials for the user to authenticate to the cluster. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings":{"get":{"tags":["Kubernetes Support Access"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSupportSettings","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings"},"summary":"Returns support access settings for a Kubernetes cluster in the project","description":"Returns support access settings for a Kubernetes cluster in the project. | Returns support access settings for a Kubernetes cluster in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Kubernetes Support Access"],"parameters":[{"name":"cluster_id","in":"path","description":"ID of the cluster.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the cluster.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateSupportSettings","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings"},"summary":"Updates support access settings for a Kubernetes cluster in the project","description":"Updates support access settings for a Kubernetes cluster in the project. | Updates support access settings for a Kubernetes cluster in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"access_enabled":{"type":"boolean","description":"Master toggle for whether support access is enabled.","required":true,"enum":[true,false]},"enabled_roles":{"type":"array","description":"Support access roles to enable.","items":{"type":"string"}}}},"example":{"access_enabled":[true],"enabled_roles":[["operator","readonly"]]}}}}}},"/projects/{project_id}/kubernetes/nodepools":{"get":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the node pools.","required":true,"schema":{"type":"string","example":""}},{"name":"cluster_id","in":"query","description":"Filters results to node pools in this cluster.","required":false,"schema":{"type":"string","example":""}},{"name":"sort","in":"query","description":"Field to sort results by; prefix with '-' for descending order.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNodePools","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools"},"summary":"Lists all Kubernetes node pools in the project and returns their details","description":"Lists all Kubernetes node pools in the project and returns their details. | Results can be narrowed to a single cluster with the cluster_id query parameter. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to create the node pool in.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createNodePool","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools"},"summary":"Creates a Kubernetes node pool in the project and returns the async operation","description":"Creates a Kubernetes node pool in the project and returns the async operation. | Creates a Kubernetes node pool in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"cluster_id":{"type":"string","description":"ID of the cluster the new node pool belongs to.","required":true},"count":{"type":"number","description":"Number of nodes to create.","required":true},"ephemeral_storage_for_containerd":{"type":"boolean","description":"Whether the first local ephemeral NVMe disk is used for containerd storage.","enum":[true,false]},"ib_partition_id":{"type":"string","description":"Deprecated: Use transport_partition_id instead."},"name":{"type":"string","description":"Name of the Kubernetes node pool.","required":true},"node_labels":{"type":"object","description":"Labels to assign to nodes in the new node pool.","properties":{}},"node_pool_version":{"type":"string","description":"Version of the Kubernetes node pool."},"node_taints":{"type":"array","description":"Taints applied to nodes in the node pool. Each (key, effect) pair\nmust be unique within the list. The list may contain at most\n50 taints.","items":{"type":"object","properties":{"effect":{"type":"string","description":"Taint effect, controlling how pods are treated on\nmatching nodes:\nNoSchedule: new pods are not scheduled unless they tolerate.\nPreferNoSchedule: new pods avoid the node if possible.\nNoExecute: new pods are not scheduled AND existing non-tolerating\npods are evicted.","required":true},"key":{"type":"string","description":"Taint key. Follows the Kubernetes qualified-name\nformat: an optional DNS subdomain prefix (up to 253 characters)\nfollowed by a '/', then a name segment (up to 63 characters).\nAllowed characters: alphanumerics, '-', '_', and '.'. Must start\nand end with an alphanumeric character.\nKeys beginning with \"crusoe.ai/\" are reserved for internal use.","required":true},"value":{"type":"string","description":"Taint value. May be empty. Follows the same format\nrules as a Kubernetes label value: up to 63 characters, alphanumerics\nand '-', '_', '.'."}}}},"nvlink_domain_id":{"type":"string","description":"NVLink domain ID to assign to nodes in the new node pool."},"placement_policy":{"type":"string","description":"Placement policy for VMs in the node pool: spread or unspecified.\nIgnored for GPU node types (one VM per host is already enforced for GPUs)."},"product_name":{"type":"string","description":"Product name of the VM type to create within the new node pool.","required":true},"public_ip_type":{"type":"string","description":"Public IP type for the node pool's nodes: dynamic, static, or none."},"reservation_specification":{"type":"object","description":"body.reservation_specification (object field from the documented request schema)","properties":{"id":{"type":"string","description":"ID of the reservation to use for the VM. Incompatible with selection_strategy."},"selection_strategy":{"type":"string","description":"Strategy for automatically selecting a reservation: lowest_cost or on_demand. Use on_demand\nto opt out of reservation usage. Incompatible with id."}}},"ssh_public_key":{"type":"string","description":"SSH public key to use for all VMs created from the new node pool."},"subnet_id":{"type":"string","description":"ID of the subnet to create the node pool in. Must be in the location\nof the cluster if specified. If not provided, the default subnet for the\nlocation is used, if there is one."},"transport_partition_id":{"type":"string","description":"ID of the InfiniBand or RoCE partition to create the node pool in. Must be in the\nlocation of the cluster if specified."}}},"example":{"cluster_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"count":[4],"ephemeral_storage_for_containerd":[true],"ib_partition_id":["string"],"name":["my-kubernetes-node-pool"],"node_labels":[{"label":"my_node"}],"node_pool_version":["1.30"],"node_taints":[[{"effect":"NoSchedule","key":"gpu-type","value":"h100"}]],"nvlink_domain_id":["550e8400-e29b-41d4-a716-446655440000"],"placement_policy":["spread"],"product_name":["a100.2x"],"public_ip_type":["dynamic"],"reservation_specification":[{"id":"804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8","selection_strategy":"lowest_cost"}],"ssh_public_key":["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8"],"subnet_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"transport_partition_id":["b1f86d1b-42d2-490d-adb0-cc1029abf653"]}}}}}},"/projects/{project_id}/kubernetes/nodepools/operations":{"get":{"tags":["Kubernetes Node Pool Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listKubernetesNodePoolsOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/operations"},"summary":"List kubernetes node pool async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of an asynchronous operation initiated by\nthe Kubernetes Node Pool resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/nodepools/operations/{operation_id}":{"get":{"tags":["Kubernetes Node Pool Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getKubernetesNodePoolsOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/operations/{operation_id}"},"summary":"Get kubernetes node pool async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe Kubernetes Node Pool resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/nodepools/{node_pool_id}":{"delete":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteNodePool","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}"},"summary":"Deletes a Kubernetes node pool from the project and returns the async operation","description":"Deletes a Kubernetes node pool from the project and returns the async operation. | Deletes a Kubernetes node pool from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNodePool","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}"},"summary":"Returns details for a single Kubernetes node pool in the project","description":"Returns details for a single Kubernetes node pool in the project. | Returns details for a single Kubernetes node pool in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateNodePool","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}"},"summary":"Updates a Kubernetes node pool in the project and returns the async operation","description":"Updates a Kubernetes node pool in the project and returns the async operation. | Updates a Kubernetes node pool in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"action":{"type":"string","description":"Action to perform on the node pool: RESERVE, UNRESERVE, or UPDATE. RESERVE and UNRESERVE\noperations are done synchronously, and so will have succeeded with a 200 response.\nDefaults to UPDATE if no action is specified.","required":true},"count":{"type":"number","description":"New number of nodes in the node pool.","required":true},"ephemeral_storage_for_containerd":{"type":"boolean","description":"Whether the first local ephemeral NVMe disk is used for containerd storage.","required":true,"enum":[true,false]},"node_labels":{"type":"object","description":"New labels for the node pool. Labels provided in the PATCH request do not modify existing nodes,\nbut apply to any newly created nodes.","required":true,"properties":{}},"node_pool_version":{"type":"string","description":"New Kubernetes node pool version for newly created VMs.","required":true},"node_taints":{"type":"array","description":"New taints for nodes in this node pool. Taints provided in the PATCH request do not modify existing nodes,\nbut apply to any newly created nodes.\nThis field has three behaviors:\nOmitted (null): existing taints are left unchanged.\nEmpty array ([]): all existing taints are cleared.\nNon-empty array: existing taints are fully replaced by the\nprovided list.\nEach (key, effect) pair in the list must be unique. Up to 50\ntaints are allowed. See KubernetesNodeTaint for per-field format rules.","required":true,"items":{"type":"object","properties":{"effect":{"type":"string","description":"Taint effect, controlling how pods are treated on\nmatching nodes:\nNoSchedule: new pods are not scheduled unless they tolerate.\nPreferNoSchedule: new pods avoid the node if possible.\nNoExecute: new pods are not scheduled AND existing non-tolerating\npods are evicted.","required":true},"key":{"type":"string","description":"Taint key. Follows the Kubernetes qualified-name\nformat: an optional DNS subdomain prefix (up to 253 characters)\nfollowed by a '/', then a name segment (up to 63 characters).\nAllowed characters: alphanumerics, '-', '_', and '.'. Must start\nand end with an alphanumeric character.\nKeys beginning with \"crusoe.ai/\" are reserved for internal use.","required":true},"value":{"type":"string","description":"Taint value. May be empty. Follows the same format\nrules as a Kubernetes label value: up to 63 characters, alphanumerics\nand '-', '_', '.'."}}}},"reservation_id":{"type":"string","description":"New reservation ID for the node pool.","required":true},"ssh_public_key":{"type":"string","description":"New SSH public key to use for all VMs created from this node pool.","required":true}}},"example":{"action":["UPDATE"],"count":[4],"ephemeral_storage_for_containerd":[true],"node_labels":[{"label":"my_node"}],"node_pool_version":["1.30"],"node_taints":[[{"effect":"NoSchedule","key":"gpu-type","value":"h100"}]],"reservation_id":["ca39e669-47ee-456b-968d-303234fbf99f"],"ssh_public_key":["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"]}}}}}},"/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate":{"post":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/cancelNodePoolRotate","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate"},"summary":"Cancels an in-progress rotation of a Kubernetes node pool in the project","description":"Cancels an in-progress rotation of a Kubernetes node pool in the project. | Cancels an in-progress rotation of a Kubernetes node pool in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate":{"get":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNodePoolRotateStatus","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate"},"summary":"Returns the rotation status of a Kubernetes node pool in the project","description":"Returns the rotation status of a Kubernetes node pool in the project. | Returns the rotation status of a Kubernetes node pool in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/rotateNodePool","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate"},"summary":"Starts a rotation of a Kubernetes node pool in the project and returns the async operation","description":"Starts a rotation of a Kubernetes node pool in the project and returns the async operation. | A successful response returns an async operation you can poll. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"number","description":"Number of nodes to replace at a time when the strategy is 'count'.","required":true},"percentage":{"type":"number","description":"Percentage of nodes to replace at a time when the strategy is 'percentage'.","required":true},"strategy":{"type":"string","description":"Strategy for the rotation to perform: count or percentage.","required":true}}},"example":{"count":[2],"percentage":[20],"strategy":["count"]}}}}}},"/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms":{"get":{"tags":["Kubernetes Node Pools"],"parameters":[{"name":"node_pool_id","in":"path","description":"ID of the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the node pool.","required":true,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of results to return per page.","required":false,"schema":{"type":"string","example":""}},{"name":"next_token","in":"query","description":"Base64-encoded token for the next page of results.","required":false,"schema":{"type":"string","example":""}},{"name":"prev_token","in":"query","description":"Base64-encoded token for the previous page of results.","required":false,"schema":{"type":"string","example":""}},{"name":"sort","in":"query","description":"Field to sort results by; prefix with '-' for descending order.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listKubernetesNodePoolVMs","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms"},"summary":"Lists all VMs in a Kubernetes node pool and returns their details","description":"Lists all VMs in a Kubernetes node pool and returns their details. | Lists all VMs in a Kubernetes node pool and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/kubernetes/versions":{"get":{"tags":["Kubernetes Versions"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to list versions for.","required":true,"schema":{"type":"string","example":""}},{"name":"product_name","in":"query","description":"Filters results to versions available for this VM product.","required":false,"schema":{"type":"string","example":""}},{"name":"show_deprecated","in":"query","description":"Whether to include deprecated versions in the results.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listKubernetesVersions","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/kubernetes/versions"},"summary":"Lists all available Kubernetes versions in the project and returns their details","description":"Lists all available Kubernetes versions in the project and returns their details. | Lists all available Kubernetes versions in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/metrics/scrape":{"get":{"tags":["Observability"],"parameters":[{"name":"project_id","in":"path","description":"The project ID to scrape metrics from. User must have read access to the project.","required":true,"schema":{"type":"string","example":""}},{"name":"compress","in":"query","description":"Enable gzip compression for the response. Accepted values: 'true' (enables gzip compression) or 'false' (no compression). Invalid values will be logged and treated as 'false'.","required":false,"schema":{"type":"string","example":""}},{"name":"format","in":"query","description":"Response format. Default Prometheus text. Set to \"openmetrics\" to receive application/openmetrics-text (1.0) with # EOF marker.","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["prometheus","openmetrics"]}}},{"name":"labels","in":"query","description":"Filter by label key:value pairs. Use colon to separate key and value.\nSupports comma-separated values (e.g., labels=job:api,region:us-east). Supports UNION (labels=device:loop1|loop2)","required":false,"schema":{"type":"array","example":""}},{"name":"metric_category","in":"query","description":"Filter by metric category. 'system' returns Crusoe-collected metrics.\n'custom' returns user-defined metrics with metrics_source=custom-metrics label.","required":false,"schema":{"type":"string","example":"","items":{"type":"string","enum":["system"," custom"]}}},{"name":"metric_name","in":"query","description":"Filter by metric name. Supports comma-separated values (e.g., metric_name=http_requests_total,http_response_time).","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/scrapeMetrics","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/metrics/scrape"},"summary":"Export metrics in Prometheus text format (default) or OpenMetrics format for scraping","description":"Export metrics in Prometheus text format (default) or OpenMetrics format for scraping. | This endpoint proxies to VictoriaMetrics /federate endpoint and returns metrics\nin Prometheus text exposition format for scraping by external monitoring systems.\nSupports filtering by:\nmetric_name: Filter by metric name(s). Supports comma-separated values (e.g., metric_name=http_requests_total,http_response_time)\nmetric_category: Filter by 'system' (Crusoe-collected) or 'custom' (user-defined) metrics\nlabels: Filter by label key:value pairs. Supports comma-separated values (e.g., labels=job:api,region:us-east)\nInternal metrics and provisioned throughput metrics are always excluded.\nRate limited to 10 requests per minute per project.\nResponse limited to 50MB payload and 100,000 time series.\nResponses are cached for up to 1 minute. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/metrics/timeseries":{"get":{"tags":["Observability"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end","in":"query","description":"End timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"resource_type","in":"query","description":"resource_type (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"start","in":"query","description":"Start timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"step","in":"query","description":"Query resolution step width in duration format or float number of seconds.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/queryTimeseriesSimplified","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/metrics/timeseries"},"summary":"Query timeseries for a resource (in development)","description":"Query timeseries for a resource (in development). | Query timeseries for a resource (in development). | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/metrics/timeseries/api/v1/query":{"get":{"tags":["Observability"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of returned series. 0 means disabled.","required":false,"schema":{"type":"string","example":""}},{"name":"query","in":"query","description":"Prometheus expression query string.","required":true,"schema":{"type":"string","example":""}},{"name":"time","in":"query","description":"Evaluation timestamp.","required":false,"schema":{"type":"string","example":""}},{"name":"timeout","in":"query","description":"Evaluation timeout. Defaults to and is capped by the value of the -query.timeout flag.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/queryTimeseries","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/metrics/timeseries/api/v1/query"},"summary":"Query timeseries at an instant via PromQL","description":"Query timeseries at an instant via PromQL. | Query timeseries at an instant via PromQL. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/metrics/timeseries/api/v1/query-range":{"get":{"tags":["Observability"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end","in":"query","description":"End timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of returned series. 0 means disabled.","required":false,"schema":{"type":"string","example":""}},{"name":"query","in":"query","description":"Prometheus expression query string.","required":true,"schema":{"type":"string","example":""}},{"name":"start","in":"query","description":"Start timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"step","in":"query","description":"Query resolution step width in duration format or float number of seconds.","required":true,"schema":{"type":"string","example":""}},{"name":"timeout","in":"query","description":"Evaluation timeout. Defaults to and is capped by the value of the -query.timeout flag.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/queryTimeseriesRange","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/metrics/timeseries/api/v1/query-range"},"summary":"Query timeseries over a time range via PromQL","description":"Query timeseries over a time range via PromQL. | Query timeseries over a time range via PromQL. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/metrics/timeseries/query-parameters":{"get":{"tags":["Observability"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"end","in":"query","description":"End timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"function","in":"query","description":"Function to use (e.g., rate, avg). Multiple functions are separated by comma and applied in that order","required":false,"schema":{"type":"string","example":""}},{"name":"label","in":"query","description":"Labels to filter the metric by.  Multiple labels can be provided as comma-separated key=value pairs.","required":false,"schema":{"type":"array","example":""}},{"name":"metric","in":"query","description":"Name of the metric to query.","required":true,"schema":{"type":"string","example":""}},{"name":"range","in":"query","description":"Range to use with some functions (e.g., rate).","required":false,"schema":{"type":"string","example":""}},{"name":"start","in":"query","description":"Start timestamp, inclusive.","required":true,"schema":{"type":"string","example":""}},{"name":"step","in":"query","description":"Query resolution step width in duration format or float number of seconds.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/queryTimeseriesWithParameters","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/metrics/timeseries/query-parameters"},"summary":"Query timeseries by passing various metric parameters","description":"Query timeseries by passing various metric parameters. | Query timeseries by passing various metric parameters. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/ib-networks":{"get":{"tags":["IB Networks"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listIBNetworks","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-networks"},"summary":"Lists all InfiniBand networks and returns their details","description":"Lists all InfiniBand networks and returns their details. | Lists all InfiniBand networks and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/ib-networks/{ib_network_id}":{"get":{"tags":["IB Networks"],"parameters":[{"name":"ib_network_id","in":"path","description":"ID of the InfiniBand network.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getIBNetwork","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-networks/{ib_network_id}"},"summary":"Returns details for a single InfiniBand network","description":"Returns details for a single InfiniBand network. | Returns details for a single InfiniBand network. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/ib-partitions":{"get":{"tags":["IB Partitions"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listIBPartitions","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-partitions"},"summary":"Lists all InfiniBand partitions in the project and returns their details","description":"Lists all InfiniBand partitions in the project and returns their details. | Lists all InfiniBand partitions in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["IB Partitions"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createIBPartition","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-partitions"},"summary":"Creates an InfiniBand partition in the project and returns the created InfiniBand partition","description":"Creates an InfiniBand partition in the project and returns the created InfiniBand partition. | Creates an InfiniBand partition in the project and returns the created InfiniBand partition. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ib_network_id":{"type":"string","description":"ID of the InfiniBand network to create the partition in.","required":true},"name":{"type":"string","description":"Name for the new InfiniBand partition.","required":true}}},"example":{"ib_network_id":["36c0b0d9-8b68-4869-addb-227b06b64ee0"],"name":["my-ib-partition"]}}}}}},"/projects/{project_id}/networking/ib-partitions/{ib_partition_id}":{"delete":{"tags":["IB Partitions"],"parameters":[{"name":"ib_partition_id","in":"path","description":"ID of the InfiniBand partition.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the InfiniBand partition.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteIBPartition","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-partitions/{ib_partition_id}"},"summary":"Deletes an InfiniBand partition from the project and returns an empty response","description":"Deletes an InfiniBand partition from the project and returns an empty response. | Deletes an InfiniBand partition from the project and returns an empty response. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["IB Partitions"],"parameters":[{"name":"ib_partition_id","in":"path","description":"ID of the InfiniBand partition.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the InfiniBand partition.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getIBPartition","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/ib-partitions/{ib_partition_id}"},"summary":"Returns details for a single InfiniBand partition in the project","description":"Returns details for a single InfiniBand partition in the project. | Returns details for a single InfiniBand partition in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/internal-load-balancers":{"get":{"tags":["Internal Load Balancers"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listLoadBalancers","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers"},"summary":"Lists all load balancers in the project and returns their details","description":"Lists all load balancers in the project and returns their details. | Lists all load balancers in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Internal Load Balancers"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers"},"summary":"Creates a load balancer in the project and returns the async operation","description":"Creates a load balancer in the project and returns the async operation. | Creates a load balancer in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Type of the load balancer (for example, internal_ipv4)."},"algorithm":{"type":"string","description":"Load balancing algorithm used to distribute traffic across destinations (for example, random).","required":true},"destinations":{"type":"array","description":"Backend targets the load balancer forwards traffic to, given as CIDR blocks or resource IDs.","required":true,"items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a backend resource. Mutually exclusive with cidr."}}}},"health_check":{"type":"object","description":"body.health_check (object field from the documented request schema)","properties":{"failure_count":{"type":"string","description":"Number of allowed failures before considering a backend unhealthy."},"interval":{"type":"string","description":"Interval between health checks, in seconds."},"port":{"type":"string","description":"Port on which to perform health checks.","required":true},"success_count":{"type":"string","description":"Number of successful checks required to consider a backend healthy."},"timeout":{"type":"string","description":"Timeout for a health check response, in seconds."}}},"location":{"type":"string","description":"Location to create the load balancer in.","required":true},"name":{"type":"string","description":"Name for the new load balancer.","required":true},"network_interfaces":{"type":"array","description":"Network interfaces to attach the load balancer to.","required":true,"items":{"type":"object","properties":{"network":{"type":"string","description":"ID of the VPC network for the interface."},"subnet":{"type":"string","description":"ID of the subnet for the interface."}}}},"protocols":{"type":"array","description":"Network protocols the load balancer handles. Currently only one of: tcp, udp.","required":true,"items":{"type":"string"}}}},"example":{"type":["internal_ipv4"],"algorithm":["random"],"destinations":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]],"health_check":[{"failure_count":"3","interval":"60","port":"8080","success_count":"2","timeout":"20"}],"location":["us-northcentraleast1-a"],"name":["my-load-balancer"],"network_interfaces":[[{"network":"dbaafd53-96ea-4754-9cce-78e7f08ac151","subnet":"09ae8411-0fbb-411c-898c-2b8f19622ae1"}]],"protocols":["[tcp]"]}}}}}},"/projects/{project_id}/networking/internal-load-balancers/operations":{"get":{"tags":["Internal Load Balancer Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNetworkingLoadBalancersOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers/operations"},"summary":"List internal load balancer async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe Load Balancers resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/internal-load-balancers/operations/{operation_id}":{"get":{"tags":["Internal Load Balancer Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNetworkingLoadBalancersOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers/operations/{operation_id}"},"summary":"Get internal load balancer async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe Load Balancer resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/internal-load-balancers/{load_balancer_id}":{"delete":{"tags":["Internal Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"ID of the load balancer.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the load balancer.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers/{load_balancer_id}"},"summary":"Deletes a load balancer from the project and returns the async operation","description":"Deletes a load balancer from the project and returns the async operation. | Deletes a load balancer from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Internal Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"ID of the load balancer.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the load balancer.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers/{load_balancer_id}"},"summary":"Returns details for a single load balancer in the project","description":"Returns details for a single load balancer in the project. | Returns details for a single load balancer in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Internal Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"ID of the load balancer.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the load balancer.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/patchLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/internal-load-balancers/{load_balancer_id}"},"summary":"Updates a load balancer in the project and returns the async operation","description":"Updates a load balancer in the project and returns the async operation. | To disable health checking, pass \"health_check\": {\"port\": 0}. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"destinations":{"type":"array","description":"Backend targets the load balancer forwards traffic to, given as CIDR blocks or resource IDs.","items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a backend resource. Mutually exclusive with cidr."}}}},"health_check":{"type":"object","description":"body.health_check (object field from the documented request schema)","properties":{"failure_count":{"type":"string","description":"Number of allowed failures before considering a backend unhealthy."},"interval":{"type":"string","description":"Interval between health checks, in seconds."},"port":{"type":"string","description":"Port on which to perform health checks.","required":true},"success_count":{"type":"string","description":"Number of successful checks required to consider a backend healthy."},"timeout":{"type":"string","description":"Timeout for a health check response, in seconds."}}},"name":{"type":"string","description":"New name for the load balancer."}}},"example":{"destinations":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]],"health_check":[{"failure_count":"3","interval":"60","port":"8080","success_count":"2","timeout":"20"}],"name":["my-load-balancer"]}}}}}},"/projects/{project_id}/networking/load-balancers":{"get":{"tags":["Load Balancers"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the external load balancers.","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Filters results to external load balancers in this location.","required":false,"schema":{"type":"string","example":""}},{"name":"name","in":"query","description":"Filters results to external load balancers with this name.","required":false,"schema":{"type":"string","example":""}},{"name":"vpc_network_id","in":"query","description":"Filters results to external load balancers in this VPC network.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listExternalLoadBalancers","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers"},"summary":"Lists all external load balancers in the project and returns their details","description":"Lists all external load balancers in the project and returns their details. | Lists all external load balancers in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Load Balancers"],"parameters":[{"name":"project_id","in":"path","description":"The project ID to which the external load balancer belongs.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createExternalLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers"},"summary":"Creates an external load balancer in the project and returns the async operation","description":"Creates an external load balancer in the project and returns the async operation. | This endpoint creates a new external load balancer in the specified project. The request must include the VPC ID, name, location, and at least one listen port with its associated backends. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"health_check_options":{"type":"object","description":"body.health_check_options (object field from the documented request schema)","properties":{"failure_count":{"type":"number","description":"Number of allowed failures before considering the backend unhealthy.","required":true},"interval":{"type":"number","description":"Interval between health checks (in seconds).","required":true},"success_count":{"type":"number","description":"Number of successful checks required to consider the backend healthy.","required":true},"timeout":{"type":"number","description":"Timeout for health check responses (in seconds).","required":true}}},"listen_ports_and_backends":{"type":"array","description":"Listen ports and associated backends configuration.","required":true,"items":{"type":"object","properties":{"backends":{"type":"array","description":"List of backend configurations.","required":true},"listen_port":{"type":"number","description":"Port on which the load balancer listens.","required":true}}}},"location":{"type":"string","description":"Location of the External Load Balancer.","required":true},"name":{"type":"string","description":"Name of the External Load Balancer.","required":true},"protocol":{"type":"string","description":"The protocol of the External Load Balancer.","required":true},"vpc_id":{"type":"string","description":"ID of the VPC network this External Load Balancer belongs to.","required":true}}},"example":{"health_check_options":[{"failure_count":3,"interval":10,"success_count":2,"timeout":5}],"listen_ports_and_backends":[[{"backends":[{"ip":"192.168.1.2","port":8080,"status":"ONLINE"}],"listen_port":80}]],"location":["us-east1"],"name":["my-external-load-balancer"],"protocol":["LOAD_BALANCER_PROTOCOL_TCP"],"vpc_id":["ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab"]}}}}}},"/projects/{project_id}/networking/load-balancers/operations":{"get":{"tags":["Load Balancer Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listExternalLoadBalancerOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers/operations"},"summary":"List load balancer async operations","description":"Get status of asynchronous operations. | This resource retrieves information about the status of asynchronous operations for\nexternal load balancers. Query parameters can be used to filter results by external\nload balancer ID or operation state. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/load-balancers/operations/{operation_id}":{"get":{"tags":["Load Balancer Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getExternalLoadBalancerOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers/operations/{operation_id}"},"summary":"Get load balancer async operation","description":"Get status of a single asynchronous operation. | This resource retrieves information about the status of an asynchronous operation\nfor an external load balancer. Only information about the operation specified in\nthe path will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/load-balancers/{load_balancer_id}":{"delete":{"tags":["Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"The ID of the external load balancer to delete.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"The project ID to which the external load balancer belongs.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteExternalLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers/{load_balancer_id}"},"summary":"Deletes an external load balancer from the project and returns the async operation","description":"Deletes an external load balancer from the project and returns the async operation. | This endpoint deletes an external load balancer identified by its ID within the specified project. No request body or query parameters are required. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"ID of the external load balancer.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the external load balancer.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getExternalLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers/{load_balancer_id}"},"summary":"Returns details for a single external load balancer in the project","description":"Returns details for a single external load balancer in the project. | Returns details for a single external load balancer in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Load Balancers"],"parameters":[{"name":"load_balancer_id","in":"path","description":"The ID of the external load balancer to update.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"The project ID to which the external load balancer belongs.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateExternalLoadBalancer","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/load-balancers/{load_balancer_id}"},"summary":"Updates an external load balancer in the project and returns the async operation","description":"Updates an external load balancer in the project and returns the async operation. | This endpoint updates the configuration of an existing external load balancer. The request must include the load balancer ID and optionally the health check options and/or listen ports and associated backends. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"health_check_options":{"type":"object","description":"body.health_check_options (object field from the documented request schema)","properties":{"failure_count":{"type":"number","description":"Number of allowed failures before considering the backend unhealthy.","required":true},"interval":{"type":"number","description":"Interval between health checks (in seconds).","required":true},"success_count":{"type":"number","description":"Number of successful checks required to consider the backend healthy.","required":true},"timeout":{"type":"number","description":"Timeout for health check responses (in seconds).","required":true}}},"listen_ports_and_backends":{"type":"array","description":"Listen ports and associated backends configuration.","required":true,"items":{"type":"object","properties":{"backends":{"type":"array","description":"List of backend configurations.","required":true},"listen_port":{"type":"number","description":"Port on which the load balancer listens.","required":true}}}}}},"example":{"health_check_options":[{"failure_count":3,"interval":10,"success_count":2,"timeout":5}],"listen_ports_and_backends":[[{"backends":[{"ip":"192.168.1.2","port":8080,"status":"ONLINE"}],"listen_port":80}]]}}}}}},"/projects/{project_id}/networking/nvlink-domains":{"get":{"tags":["NVLink Domains"],"parameters":[{"name":"project_id","in":"path","description":"Project ID","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNvlinkDomains","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/nvlink-domains"},"summary":"Retrieve details about all NVLink domains available for the project","description":"Retrieve details about all NVLink domains available for the project. | Retrieve details about all NVLink domains available for the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-firewall-rules":{"get":{"tags":["VPC Firewall Rules"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listVPCFirewallRules","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules"},"summary":"Lists all VPC firewall rules in the project and returns their details","description":"Lists all VPC firewall rules in the project and returns their details. | Lists all VPC firewall rules in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["VPC Firewall Rules"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createVPCFirewallRule","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules"},"summary":"Creates a VPC firewall rule in the project and returns the async operation","description":"Creates a VPC firewall rule in the project and returns the async operation. | Creates a VPC firewall rule in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"action":{"type":"string","description":"Action applied to traffic that matches the rule: allow or deny.","required":true},"destination_ports":{"type":"array","description":"Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).","items":{"type":"string"}},"destinations":{"type":"array","description":"Destinations the rule matches, given as CIDR blocks or resource IDs.","required":true,"items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a VPC network, subnet, or VM. Mutually exclusive with cidr."}}}},"direction":{"type":"string","description":"Direction of traffic the rule applies to: ingress (inbound) or egress (outbound).","required":true},"name":{"type":"string","description":"Name for the new firewall rule.","required":true},"protocols":{"type":"array","description":"Network protocols the rule matches (for example, tcp, udp).","required":true,"items":{"type":"string"}},"source_ports":{"type":"array","description":"Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).","items":{"type":"string"}},"sources":{"type":"array","description":"Sources the rule matches, given as CIDR blocks or resource IDs.","required":true,"items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a VPC network, subnet, or VM. Mutually exclusive with cidr."}}}},"vpc_network_id":{"type":"string","description":"ID of the VPC network to create the rule in.","required":true}}},"example":{"action":["allow"],"destination_ports":["[80, 443, 3000-8080]"],"destinations":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]],"direction":["ingress"],"name":["my-firewall-rule"],"protocols":["[tcp, udp]"],"source_ports":["[80, 443, 3000-8080]"],"sources":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]],"vpc_network_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"]}}}}}},"/projects/{project_id}/networking/vpc-firewall-rules/operations":{"get":{"tags":["VPC Firewall Rule Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNetworkingVPCFirewallRulesOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules/operations"},"summary":"List VPC firewall rule async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe snapshots resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-firewall-rules/operations/{operation_id}":{"get":{"tags":["VPC Firewall Rule Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNetworkingVPCFirewallRulesOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules/operations/{operation_id}"},"summary":"Get VPC firewall rule async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe snapshots resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}":{"delete":{"tags":["VPC Firewall Rules"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_firewall_rule_id","in":"path","description":"ID of the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteVPCFirewallRule","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}"},"summary":"Deletes a VPC firewall rule from the project and returns the async operation","description":"Deletes a VPC firewall rule from the project and returns the async operation. | Deletes a VPC firewall rule from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["VPC Firewall Rules"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_firewall_rule_id","in":"path","description":"ID of the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getVPCFirewallRule","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}"},"summary":"Returns details for a single VPC firewall rule in the project","description":"Returns details for a single VPC firewall rule in the project. | Returns details for a single VPC firewall rule in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["VPC Firewall Rules"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_firewall_rule_id","in":"path","description":"ID of the VPC firewall rule.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/patchVPCFirewallRule","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}"},"summary":"Updates a VPC firewall rule in the project and returns the async operation","description":"Updates a VPC firewall rule in the project and returns the async operation. | Updates a VPC firewall rule in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"destination_ports":{"type":"array","description":"Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).","items":{"type":"string"}},"destinations":{"type":"array","description":"Destinations the rule matches, given as CIDR blocks or resource IDs.","items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a VPC network, subnet, or VM. Mutually exclusive with cidr."}}}},"name":{"type":"string","description":"New name for the firewall rule."},"protocols":{"type":"array","description":"Network protocols the rule matches (for example, tcp, udp).","items":{"type":"string"}},"source_ports":{"type":"array","description":"Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).","items":{"type":"string"}},"sources":{"type":"array","description":"Sources the rule matches, given as CIDR blocks or resource IDs.","items":{"type":"object","properties":{"cidr":{"type":"string","description":"CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id."},"resource_id":{"type":"string","description":"ID of a VPC network, subnet, or VM. Mutually exclusive with cidr."}}}}}},"example":{"destination_ports":["[80, 443, 3000-8080]"],"destinations":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]],"name":["my-firewall-rule"],"protocols":["[tcp, udp]"],"source_ports":["[80, 443, 3000-8080]"],"sources":[[{"cidr":"10.1.2.3/24","resource_id":"306aa10d-5570-4e47-88c9-46bf11bd8737"}]]}}}}}},"/projects/{project_id}/networking/vpc-networks":{"get":{"tags":["VPC Networks"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listVPCNetworks","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks"},"summary":"Lists all VPC networks in the project and returns their details","description":"Lists all VPC networks in the project and returns their details. | Lists all VPC networks in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["VPC Networks"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createVPCNetwork","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks"},"summary":"Creates a VPC network in the project and returns the created network","description":"Creates a VPC network in the project and returns the created network. | Creates a VPC network in the project and returns the created network. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"cidr":{"type":"string","description":"Address range for the VPC network, in CIDR notation (for example, 172.27.0.0/16).","required":true},"name":{"type":"string","description":"Name for the new VPC network.","required":true}}},"example":{"cidr":["172.27.0.0/16"],"name":["my-cool-vpc-network"]}}}}}},"/projects/{project_id}/networking/vpc-networks/operations":{"get":{"tags":["VPC Network Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNetworkingVPCNetworksOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks/operations"},"summary":"List VPC network async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe VPC Networks resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-networks/operations/{operation_id}":{"get":{"tags":["VPC Network Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNetworkingVPCNetworksOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks/operations/{operation_id}"},"summary":"Get VPC network async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe VPC Network resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-networks/{vpc_network_id}":{"delete":{"tags":["VPC Networks"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC network.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_network_id","in":"path","description":"ID of the VPC network.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteVPCNetwork","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks/{vpc_network_id}"},"summary":"Deletes a VPC network from the project and returns the async operation","description":"Deletes a VPC network from the project and returns the async operation. | Deletes a VPC network from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["VPC Networks"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC network.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_network_id","in":"path","description":"ID of the VPC network.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getVPCNetwork","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks/{vpc_network_id}"},"summary":"Returns details for a single VPC network in the project","description":"Returns details for a single VPC network in the project. | Returns details for a single VPC network in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["VPC Networks"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC network.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_network_id","in":"path","description":"ID of the VPC network.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/patchVPCNetwork","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-networks/{vpc_network_id}"},"summary":"Updates a VPC network in the project and returns the async operation","description":"Updates a VPC network in the project and returns the async operation. | Updates a VPC network in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"New name for the VPC network.","required":true}}},"example":{"name":["my-cool-vpc-network"]}}}}}},"/projects/{project_id}/networking/vpc-subnets":{"get":{"tags":["VPC Subnets"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listVPCSubnets","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets"},"summary":"Lists all VPC subnets in the project and returns their details","description":"Lists all VPC subnets in the project and returns their details. | Lists all VPC subnets in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["VPC Subnets"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createVPCSubnet","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets"},"summary":"Creates a VPC subnet in the project and returns the created subnet","description":"Creates a VPC subnet in the project and returns the created subnet. | Creates a VPC subnet in the project and returns the created subnet. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"cidr":{"type":"string","description":"Address range for the VPC subnet, in CIDR notation (for example, 172.27.0.0/16).","required":true},"location":{"type":"string","description":"Location to create the subnet in.","required":true},"name":{"type":"string","description":"Name for the new VPC subnet.","required":true},"nat_gateway_enabled":{"type":"boolean","description":"Whether to create a NAT gateway for the subnet.","required":true,"enum":[true,false]},"vpc_network_id":{"type":"string","description":"ID of the VPC network to create the subnet in.","required":true}}},"example":{"cidr":["172.27.0.0/16"],"location":["us-east"],"name":["my-cool-vpc-subnet"],"nat_gateway_enabled":[true],"vpc_network_id":["36c0b0d9-8b68-4869-addb-227b06b64ee0"]}}}}}},"/projects/{project_id}/networking/vpc-subnets/operations":{"get":{"tags":["VPC Subnet Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listNetworkingVPCSubnetsOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets/operations"},"summary":"List VPC subnet async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe VPC Networks resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-subnets/operations/{operation_id}":{"get":{"tags":["VPC Subnet Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getNetworkingVPCSubnetsOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets/operations/{operation_id}"},"summary":"Get VPC subnet async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe VPC Subnet resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}":{"delete":{"tags":["VPC Subnets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC subnet.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_subnet_id","in":"path","description":"ID of the VPC subnet.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteVPCSubnet","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}"},"summary":"Deletes a VPC subnet from the project and returns the async operation","description":"Deletes a VPC subnet from the project and returns the async operation. | Deletes a VPC subnet from the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["VPC Subnets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC subnet.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_subnet_id","in":"path","description":"ID of the VPC subnet.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getVPCSubnet","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}"},"summary":"Returns details for a single VPC subnet in the project","description":"Returns details for a single VPC subnet in the project. | Returns details for a single VPC subnet in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["VPC Subnets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the VPC subnet.","required":true,"schema":{"type":"string","example":""}},{"name":"vpc_subnet_id","in":"path","description":"ID of the VPC subnet.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/patchVPCSubnet","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}"},"summary":"Updates a VPC subnet in the project and returns the async operation","description":"Updates a VPC subnet in the project and returns the async operation. | Updates a VPC subnet in the project and returns the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"New name for the VPC subnet.","required":true},"nat_gateway_action":{"type":"string","description":"Action to take on the subnet's NAT gateway. \"enable\" creates a NAT gateway if one does not\nexist; \"disable\" deletes the NAT gateway if one exists. If omitted, the subnet's NAT gateway\nis left unchanged.\nenable NATGatewayActionEnable\ndisable NATGatewayActionDisable"}}},"example":{"name":["my-cool-vpc-subnet"],"nat_gateway_action":["enable"]}}}}}},"/projects/{project_id}/quotas":{"get":{"tags":["Quotas"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listProjectQuotas","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/quotas"},"summary":"List max and currently used project quotas","description":"List max and currently used project quotas. | List max and currently used project quotas. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/clusters":{"get":{"tags":["Slurm Clusters"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"location (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"names","in":"query","description":"names (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"slurm_cluster_ids","in":"query","description":"slurm_cluster_ids (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSlurmClusters","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters"},"summary":"Retrieve information about slurm clusters belonging to the project","description":"Retrieve information about slurm clusters belonging to the project. | Retrieve information about slurm clusters belonging to the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Slurm Clusters"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSlurmCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters"},"summary":"Create a new slurm cluster owned by the logged in user","description":"Create a new slurm cluster owned by the logged in user. | A successful response from this resource will contain the async operation ID. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"home_volume_size":{"type":"string","description":"Size of the shared home volume as a Kubernetes quantity string (e.g. \"10Ti\"). Set empty to omit."},"location":{"type":"string","description":"Location to create the Slurm cluster in.","required":true},"login_node_type":{"type":"string","description":"Node type to use for Slurm Controller and Login."},"login_replicas":{"type":"number","description":"Number of replica pods to use for LoginSet."},"name":{"type":"string","description":"Name of the Slurm cluster.","required":true},"root_ssh_pub_keys":{"type":"array","description":"An array of SSH public keys which will be used to allow access as root user.\nThis will be mounted as the \"root/.ssh/authorized_keys\" file.","required":true,"items":{"type":"string"}},"subnet_id":{"type":"string","description":"The ID of the subnet to deploy the Slurm cluster into."}}},"example":{"home_volume_size":["\"10Ti\""],"location":["us-northcentral1-a"],"login_node_type":["c1a.8x"],"login_replicas":[1],"name":["my-slurm-cluster"],"root_ssh_pub_keys":[["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D"]],"subnet_id":["string"]}}}}}},"/projects/{project_id}/slurm/clusters/operations":{"get":{"tags":["Slurm Cluster Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSlurmClusterOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters/operations"},"summary":"List Slurm cluster async operations","description":"Get status of asynchronous operations. | This resource retrieves information about the status of asynchronous operations for\nslurm clusters. Query parameters can be used to filter results by slurm cluster ID or operation state. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/clusters/operations/{operation_id}":{"get":{"tags":["Slurm Cluster Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSlurmClusterOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters/operations/{operation_id}"},"summary":"Get Slurm cluster async operation","description":"Get status of a single asynchronous operation. | This resource retrieves information about the status of an asynchronous operation\nfor a slurm cluster. Only information about the operation specified in the\npath will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/clusters/{slurm_cluster_id}":{"delete":{"tags":["Slurm Clusters"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSlurmCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters/{slurm_cluster_id}"},"summary":"Delete a slurm cluster that the logged in user owns","description":"Delete a slurm cluster that the logged in user owns. | Delete a slurm cluster that the logged in user owns. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Slurm Clusters"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSlurmCluster","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/clusters/{slurm_cluster_id}"},"summary":"Retrieve information about a particular slurm cluster belonged to the project","description":"Retrieve information about a particular slurm cluster belonged to the project. | Retrieve information about a particular slurm cluster belonged to the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets":{"get":{"tags":["Slurm Nodesets"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"name","in":"query","description":"name (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSlurmNodesets","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets"},"summary":"Retrieve information about slurm nodesets belonging to a project or cluster","description":"Retrieve information about slurm nodesets belonging to a project or cluster. | Retrieve information about slurm nodesets belonging to a project or cluster. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Slurm Nodesets"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSlurmNodeset","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets"},"summary":"Create a new slurm nodeset owned by the logged in user","description":"Create a new slurm nodeset owned by the logged in user. | A successful response from this resource will contain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"VM type of the nodeset.","required":true},"count":{"type":"number","description":"Count of nodes in the nodeset.","required":true},"name":{"type":"string","description":"Name of the nodeset.","required":true},"subnet_id":{"type":"string","description":"ID of the subnet."},"transport_partition_id":{"type":"string","description":"ID of the transport partition."},"vm_ssh_public_key":{"type":"string","description":"VM SSH public key."}}},"example":{"type":["a100.2x"],"count":[4],"name":["my-slurm-nodeset"],"subnet_id":["09ae8411-0fbb-411c-898c-2b8f19622ae1"],"transport_partition_id":["b1f86d1b-42d2-490d-adb0-cc1029abf653"],"vm_ssh_public_key":["ssh-rsa AAAA..."]}}}}}},"/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations":{"get":{"tags":["Slurm Nodeset Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listSlurmNodesetsOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations"},"summary":"List Slurm nodeset async operations","description":"Get status of asynchronous operations. | This resource retrieves information about the status of asynchronous operations for\nslurm nodesets. Query parameters can be used to filter results by slurm nodeset ID or operation state. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations/{operation_id}":{"get":{"tags":["Slurm Nodeset Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSlurmNodesetOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations/{operation_id}"},"summary":"Get Slurm nodeset async operation","description":"Get status of a single asynchronous operation. | This resource retrieves information about the status of an asynchronous operation\nfor a slurm nodeset. Only information about the operation specified in the\npath will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id}":{"delete":{"tags":["Slurm Nodesets"],"parameters":[{"name":"nodeset_id","in":"path","description":"nodeset_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSlurmNodeset","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id}"},"summary":"Delete a nodeset that the logged in user owns","description":"Delete a nodeset that the logged in user owns. | Delete a nodeset that the logged in user owns. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Slurm Nodesets"],"parameters":[{"name":"nodeset_id","in":"path","description":"nodeset_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSlurmNodeset","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id}"},"summary":"Retrieve information about a particular slurm nodeset belonging to the project","description":"Retrieve information about a particular slurm nodeset belonging to the project. | Retrieve information about a particular slurm nodeset belonging to the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Slurm Nodesets"],"parameters":[{"name":"nodeset_id","in":"path","description":"nodeset_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"slurm_cluster_id","in":"path","description":"slurm_cluster_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateSlurmNodeset","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id}"},"summary":"Update a nodeset that the logged in user owns","description":"Update a nodeset that the logged in user owns. | Update a nodeset that the logged in user owns. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"number","description":"Count of nodes in the nodeset.","required":true}}},"example":{"count":[8]}}}}}},"/projects/{project_id}/storage/disks":{"get":{"tags":["Disks"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the disks.","required":true,"schema":{"type":"string","example":""}},{"name":"disk_ids","in":"query","description":"Filters results to disks with these IDs.","required":false,"schema":{"type":"array","example":""}},{"name":"disk_names","in":"query","description":"Filters results to disks with these names.","required":false,"schema":{"type":"array","example":""}},{"name":"exclude_os","in":"query","description":"Excludes OS disks from the results when true.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"location","in":"query","description":"Filters results to disks in this location.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listDisks","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks"},"summary":"Lists all disks in the project and returns their details","description":"Lists all disks in the project and returns their details. | Size of disks will be in gibibytes (GiB) | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Disks"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createDisk","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks"},"summary":"Creates a disk in the project and returns the async operation","description":"Creates a disk in the project and returns the async operation. | Requires either a disk snapshot ID, or size and location, where size of disk\nshould be in gibibytes (GiB) or tebibytes (TiB) in the format [Size][Unit].\nE.g. 10GiB. Disk type must be one of: DISK_TYPE_PERSISTENT_SSD.\nA successful response from this resource will contain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Type of disk to create: persistent-ssd or shared-volume. Defaults to persistent-ssd."},"block_size":{"type":"number","description":"Block size for the new disk, in bytes: 512 or 4096."},"location":{"type":"string","description":"Location to create the disk in."},"name":{"type":"string","description":"Name for the new disk.","required":true},"size":{"type":"string","description":"Storage capacity for the new disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB."},"snapshot_id":{"type":"string","description":"ID of a disk snapshot to create the disk from."}}},"example":{"type":["persistent-ssd"],"block_size":[4096],"location":["us-northcentral1-a"],"name":["my-disk"],"size":["10GiB"],"snapshot_id":["123e4567-e89b-12d3-a456-426614174000"]}}}}}},"/projects/{project_id}/storage/disks/operations":{"get":{"tags":["Disk Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listStorageDisksOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks/operations"},"summary":"List disk async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe disks resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/disks/operations/{operation_id}":{"get":{"tags":["Disk Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getStorageDisksOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks/operations/{operation_id}"},"summary":"Get disk async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe disks resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/disks/{disk_id}":{"delete":{"tags":["Disks"],"parameters":[{"name":"disk_id","in":"path","description":"ID of the disk.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the disk.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteDisk","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks/{disk_id}"},"summary":"Deletes a disk from the project and returns the async operation","description":"Deletes a disk from the project and returns the async operation. | A successful response from this resource will contain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Disks"],"parameters":[{"name":"disk_id","in":"path","description":"ID of the disk.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the disk.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getDisk","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks/{disk_id}"},"summary":"Returns details for a single disk in the project","description":"Returns details for a single disk in the project. | Size of disk will be in gibibytes (GiB) | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Disks"],"parameters":[{"name":"disk_id","in":"path","description":"ID of the disk.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the disk.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/resizeDisk","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/disks/{disk_id}"},"summary":"Resizes a disk in the project and returns the async operation","description":"Resizes a disk in the project and returns the async operation. | Size should be in gibibytes (GiB) or tebibytes (TiB) in the format\n[Size][Unit]. E.g. 10GiB A successful response from this resource will\ncontain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"size":{"type":"string","description":"New storage capacity for the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.","required":true}}},"example":{"size":["10GiB"]}}}}}},"/projects/{project_id}/storage/s3/buckets":{"get":{"tags":["S3 Buckets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the buckets.","required":true,"schema":{"type":"string","example":""}},{"name":"next_page_token","in":"query","description":"Token that returns the next page of results.","required":false,"schema":{"type":"string","example":""}},{"name":"page_size","in":"query","description":"Maximum number of buckets to return per page.","required":false,"schema":{"type":"number","example":""}},{"name":"prev_page_token","in":"query","description":"Token that returns the previous page of results.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listS3Buckets","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets"},"summary":"Lists all S3 buckets in the project and returns their details","description":"Lists all S3 buckets in the project and returns their details. | Lists all S3 buckets in the project and returns their details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["S3 Buckets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project to create the bucket in.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createS3Bucket","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets"},"summary":"Creates an S3 bucket in the project and returns the created bucket","description":"Creates an S3 bucket in the project and returns the created bucket. | Creates an S3 bucket in the project and returns the created bucket. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"location":{"type":"string","description":"Location to create the bucket in.","required":true},"name":{"type":"string","description":"Name for the new bucket. Must be DNS-compliant: 3-63 characters, using lowercase letters, numbers, and hyphens.","required":true},"object_lock_enabled":{"type":"boolean","description":"Whether to enable object lock on the new bucket. Requires versioning to be\nenabled and cannot be disabled once enabled.","enum":[true,false]},"retention_period":{"type":"number","description":"Length of the object lock retention period, in the unit given by retention_period_unit."},"retention_period_unit":{"type":"string","description":"enum: days,years"},"tags":{"type":"object","description":"Tags to apply to the new bucket as key-value pairs.","properties":{}},"versioning_state":{"type":"string","description":"enum: disabled,enabled,suspended"}}},"example":{"location":["us-eaststaging1-a"],"name":["my-new-bucket"],"object_lock_enabled":[false],"retention_period":[30],"retention_period_unit":["string"],"tags":[{}],"versioning_state":["string"]}}}}}},"/projects/{project_id}/storage/s3/buckets/count":{"get":{"tags":["S3 Buckets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the buckets.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getS3BucketsCount","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/count"},"summary":"Returns the number of S3 buckets in the project","description":"Returns the number of S3 buckets in the project. | Returns the number of S3 buckets in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/s3/buckets/quota":{"get":{"tags":["S3 Buckets"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the buckets.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getS3BucketsQuotaRequest","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/quota"},"summary":"Returns the S3 bucket quota information for the project","description":"Returns the S3 bucket quota information for the project. | Returns the S3 bucket quota information for the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/s3/buckets/{bucket_name}":{"delete":{"tags":["S3 Buckets"],"parameters":[{"name":"bucket_name","in":"path","description":"Name of the bucket.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the bucket.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteS3Bucket","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/{bucket_name}"},"summary":"Deletes an S3 bucket from the project","description":"Deletes an S3 bucket from the project. | Deletes an S3 bucket from the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["S3 Buckets"],"parameters":[{"name":"bucket_name","in":"path","description":"Name of the bucket.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the bucket.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getS3Bucket","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/{bucket_name}"},"summary":"Returns details for a single S3 bucket in the project","description":"Returns details for a single S3 bucket in the project. | Returns details for a single S3 bucket in the project. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["S3 Buckets"],"parameters":[{"name":"bucket_name","in":"path","description":"Name of the bucket.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the bucket.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateS3BucketTags","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/{bucket_name}"},"summary":"Replaces the tags on an S3 bucket and returns the updated bucket","description":"Replaces the tags on an S3 bucket and returns the updated bucket. | Replaces the tags on an S3 bucket and returns the updated bucket. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"tags":{"type":"object","description":"New set of tags for the bucket, as key-value pairs. Replaces all existing tags.","required":true,"properties":{}}}},"example":{"tags":[{}]}}}}}},"/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock":{"post":{"tags":["S3 Buckets"],"parameters":[{"name":"bucket_name","in":"path","description":"Name of the bucket.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the bucket.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/enableS3BucketObjectLock","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock"},"summary":"Enables object lock on an S3 bucket and returns the updated bucket. Requires versioning to be enabled and cannot be disabled once enabled","description":"Enables object lock on an S3 bucket and returns the updated bucket. Requires versioning to be enabled and cannot be disabled once enabled. | Enables object lock on an S3 bucket and returns the updated bucket. Requires versioning to be enabled and cannot be disabled once enabled. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"retention_period":{"type":"number","description":"Length of the object lock retention period, in the unit given by retention_period_unit."},"retention_period_unit":{"type":"string","description":"enum: days,years"}}},"example":{"retention_period":[30],"retention_period_unit":["string"]}}}}}},"/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning":{"post":{"tags":["S3 Buckets"],"parameters":[{"name":"bucket_name","in":"path","description":"Name of the bucket.","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"ID of the project that owns the bucket.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/enableS3BucketVersioning","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning"},"summary":"Enables versioning on an S3 bucket and returns the updated bucket. Versioning cannot be disabled once enabled","description":"Enables versioning on an S3 bucket and returns the updated bucket. Versioning cannot be disabled once enabled. | Enables versioning on an S3 bucket and returns the updated bucket. Versioning cannot be disabled once enabled. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/projects/{project_id}/storage/snapshots":{"get":{"tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listDiskSnapshots","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots"},"summary":"Lists all disk snapshots in the project and returns their details","description":"Lists all disk snapshots in the project and returns their details. | Size of snapshots will be in bytes. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createDiskSnapshot","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots"},"summary":"Creates a disk snapshot in the project and returns the async operation","description":"Creates a disk snapshot in the project and returns the async operation. | A successful response from this resource will contain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"disk_id":{"type":"string","description":"ID of the disk to snapshot.","required":true},"name":{"type":"string","description":"Name for the new disk snapshot.","required":true}}},"example":{"disk_id":["123e4567-e89b-12d3-a456-426614174000"],"name":["my-snapshot-1"]}}}}}},"/projects/{project_id}/storage/snapshots/operations":{"get":{"tags":["Snapshot Operations"],"parameters":[{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"resource_id","in":"query","description":"resource_id (query parameter from the official API reference)","required":false,"schema":{"type":"string","example":""}},{"name":"state","in":"query","description":"state (query parameter from the official API reference)","required":false,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listStorageSnapshotsOperations","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots/operations"},"summary":"List snapshot async operations","description":"Get status of asynchronous operations | This resource retrieves information about the status of asynchronous operations initiated by\nthe snapshots resource. All operations that are either in-flight or completed but not yet\nqueried will be returned. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/snapshots/operations/{operation_id}":{"get":{"tags":["Snapshot Operations"],"parameters":[{"name":"operation_id","in":"path","description":"operation_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}},{"name":"project_id","in":"path","description":"project_id (path parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getStorageSnapshotsOperation","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots/operations/{operation_id}"},"summary":"Get snapshot async operation","description":"Get status of a single asynchronous operation | This resource retrieves information about the status of an asynchronous operation initiated by\nthe snapshots resource. Only information about the operation specified in the path will be returned,\nor an HTTP 403 will be returned if the operation does not exist, was not initiated by the logged\nin user, or has expired. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/projects/{project_id}/storage/snapshots/{snapshot_id}":{"delete":{"tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the disk snapshot.","required":true,"schema":{"type":"string","example":""}},{"name":"snapshot_id","in":"path","description":"ID of the disk snapshot.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteDiskSnapshot","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots/{snapshot_id}"},"summary":"Deletes a disk snapshot from the project and returns the async operation","description":"Deletes a disk snapshot from the project and returns the async operation. | A successful response from this resource will contain the async operation. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the disk snapshot.","required":true,"schema":{"type":"string","example":""}},{"name":"snapshot_id","in":"path","description":"ID of the disk snapshot.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getDiskSnapshot","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots/{snapshot_id}"},"summary":"Returns details for a single disk snapshot in the project","description":"Returns details for a single disk snapshot in the project. | Size of snapshot will be in bytes. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"patch":{"tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"ID of the project that owns the disk snapshot.","required":true,"schema":{"type":"string","example":""}},{"name":"snapshot_id","in":"path","description":"ID of the disk snapshot.","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/renameDiskSnapshot","api_endpoint":"https://api.cloud.crusoe.ai/v1/projects/{project_id}/storage/snapshots/{snapshot_id}"},"summary":"Renames a disk snapshot in the project and returns the updated snapshot","description":"Renames a disk snapshot in the project and returns the updated snapshot. | A successful response from this resource will contain the updated snapshot. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"New name for the disk snapshot.","required":true}}},"example":{"name":["my-snapshot"]}}}}}},"/storage/object-storage/supported-locations":{"get":{"tags":["S3 Buckets"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/listS3SupportedLocations","api_endpoint":"https://api.cloud.crusoe.ai/v1/storage/object-storage/supported-locations"},"summary":"Lists all locations where object storage (S3) is available","description":"Lists all locations where object storage (S3) is available. | Lists all locations where object storage (S3) is available. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]}},"/users/identities":{"get":{"tags":["Identities"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getUserIdentity","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/identities"},"summary":"Retrieve user details for the logged in user","description":"Retrieve user details for the logged in user. | Retrieve user details for the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"put":{"tags":["Identities"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateUserIdentity","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/identities"},"summary":"Update user details for the logged in user","description":"Update user details for the logged in user. | A successful response from this resource wil contain the updated user details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"body.name (string field from the documented request schema)","required":true},"role":{"type":"string","description":"body.role (string field from the documented request schema)"}}},"example":{"name":["John Doe"],"role":["Admin"]}}}}}},"/users/limited-usage-api-key":{"delete":{"tags":["Limited Usage Keys"],"parameters":[{"name":"key_id","in":"query","description":"key_id (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteLimitedUsageAPIKey","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/limited-usage-api-key"},"summary":"Delete a Limited Usage API Key owned by the logged in user","description":"Delete a Limited Usage API Key owned by the logged in user. | Delete a Limited Usage API Key owned by the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Limited Usage Keys"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getLimitedUsageAPIKeys","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/limited-usage-api-key"},"summary":"Retrieve all active/expired Limited Usage API Keys for the logged in user and their usage types","description":"Retrieve all active/expired Limited Usage API Keys for the logged in user and their usage types. | Retrieve all active/expired Limited Usage API Keys for the logged in user and their usage types. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Limited Usage Keys"],"parameters":[{"name":"usage","in":"query","description":"usage (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":"","items":{"type":"string","enum":["inference","observability"]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createLimitedUsageAPIKey","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/limited-usage-api-key"},"summary":"Create a new limited usage api key owned by the logged in user, of type specified by usage parameter","description":"Create a new limited usage api key owned by the logged in user, of type specified by usage parameter. | A successful response from this resource will contain json-encoded details of the limited usage API key.\nThis is the only time the customer will be able to view the api key associated with the API key id. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"alias":{"type":"string","description":"body.alias (string field from the documented request schema)"},"expires_at":{"type":"string","description":"body.expires_at (string field from the documented request schema)","required":true},"project_id":{"type":"string","description":"Optional project ID the token is scoped to"}}},"example":{"alias":["token1"],"expires_at":["2021-12-03T19:58:34Z"],"project_id":["f47ac10b-58cc-4372-a567-0e02b2c3d479"]}}}}}},"/users/ssh-keys":{"delete":{"tags":["SSH Keys"],"parameters":[{"name":"id","in":"query","description":"id (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteSSHKey","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/ssh-keys"},"summary":"Delete an SSH public key registered to the logged in user","description":"Delete an SSH public key registered to the logged in user. | Delete an SSH public key registered to the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["SSH Keys"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getSSHKeys","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/ssh-keys"},"summary":"Retrieve the list of SSH public keys registered to the logged in user","description":"Retrieve the list of SSH public keys registered to the logged in user. | Retrieve the list of SSH public keys registered to the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["SSH Keys"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createSSHKey","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/ssh-keys"},"summary":"Register a new SSH public key to the logged in user","description":"Register a new SSH public key to the logged in user. | A successful response from this resource wil contain the created SSH key details. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"body.name (string field from the documented request schema)","required":true},"public_key":{"type":"string","description":"body.public_key (string field from the documented request schema)","required":true}}},"example":{"name":["John Doe"],"public_key":["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E"]}}}}}},"/users/sso-enforcement":{"patch":{"tags":["SSO"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/updateUserSSOEnforcement","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/sso-enforcement"},"summary":"Update SSO for a user","description":"Update SSO for a user. | Update SSO for a user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"enforcement":{"type":"string","description":"body.enforcement (string field from the documented request schema)","required":true},"user_ids":{"type":"array","description":"body.user_ids (array field from the documented request schema)","required":true,"items":{"type":"string"}}}},"example":{"enforcement":["none"],"user_ids":["d62a74a8-e14e-41fd-81b6-9983f7ab9ba8"]}}}}}},"/users/tokens":{"delete":{"tags":["Tokens"],"parameters":[{"name":"access_key","in":"query","description":"access_key (query parameter from the official API reference)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/deleteToken","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/tokens"},"summary":"Delete an API token owned by the logged in user","description":"Delete an API token owned by the logged in user. | Delete an API token owned by the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"get":{"tags":["Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/getTokens","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/tokens"},"summary":"Retrieve all active/expired API tokens for the logged in user","description":"Retrieve all active/expired API tokens for the logged in user. | Retrieve all active/expired API tokens for the logged in user. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}]},"post":{"tags":["Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.crusoecloud.com/api/#operation/createToken","api_endpoint":"https://api.cloud.crusoe.ai/v1/users/tokens"},"summary":"Create a new token owned by the logged in user","description":"Create a new token owned by the logged in user. | A successful response from this resource will contain json-encoded details of API token.\nThis is the only time the customer will be able to view the secret key associated with the token. | Source: official OpenAPI spec at https://api.crusoecloud.com/v1/openapi.json","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"alias":{"type":"string","description":"body.alias (string field from the documented request schema)"},"expires_at":{"type":"string","description":"body.expires_at (string field from the documented request schema)","required":true}}},"example":{"alias":["token1"],"expires_at":["2021-12-03T19:58:34Z"]}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}