{ "swagger": "2.0", "info": { "description": "The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.", "title": "Crusoe Cloud API Gateway", "version": "v1" }, "host": "api.cloud.crusoe.ai", "basePath": "/v1", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/capacities": { "get": { "operationId": "listSliceCapacities", "parameters": [ { "example": "[a100.1x, a100.2x]", "in": "query", "items": { "type": "string" }, "name": "product_name", "type": "array", "x-go-name": "ProductNames" }, { "example": "[us-northcentral1-a, us-northcentral1-b]", "in": "query", "items": { "type": "string" }, "name": "location", "type": "array", "x-go-name": "Locations" } ], "responses": { "200": { "$ref": "#/responses/capacitiesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists available Crusoe Cloud capacity with optional filters on location and product name.", "tags": [ "Capacities" ] } }, "/ccr/supported-locations": { "get": { "operationId": "listSupportedLocations", "responses": { "200": { "$ref": "#/responses/ccrListSupportedLocationsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List locations where the container registry is hosted in the Crusoe Cloud.", "tags": [ "Ccr", "Container Registry" ] } }, "/ccr/supported-providers": { "get": { "operationId": "listSupportedProviders", "responses": { "200": { "$ref": "#/responses/ccrListSupportedProvidersResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns the list of supported upstream registry providers for pull-through-caches.", "tags": [ "Ccr", "Container Registry" ] } }, "/ccr/tokens": { "post": { "operationId": "createCcrToken", "parameters": [ { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/CCRTokenRequest" } } ], "responses": { "200": { "$ref": "#/responses/ccrTokenResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a container registry specific limited scope token for a user.", "tags": [ "Ccr", "Container Registry" ] } }, "/compute/images": { "get": { "operationId": "listImages", "parameters": [ { "description": "Optional filter to return only images compatible with the specified product group (e.g. \"a100\", \"h100\").", "example": "a100", "in": "query", "name": "product_group", "type": "string", "x-go-name": "ProductGroup" } ], "responses": { "200": { "$ref": "#/responses/listImagesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all VM images available for use.", "tags": [ "Images" ] } }, "/compute/images/{image_id}": { "get": { "operationId": "getImage", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" } ], "responses": { "200": { "$ref": "#/responses/getImageResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a VM image.", "tags": [ "Images" ] } }, "/featureflags": { "get": { "description": "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.", "operationId": "getFeatureFlags", "responses": { "200": { "description": "Feature flags retrieved successfully", "schema": { "$ref": "#/definitions/customerListFeatureFlagsResponse" } }, "401": { "description": "Authentication required", "schema": {} }, "500": { "description": "Internal server error", "schema": {} }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "summary": "Get feature flags for the currently logged in user.", "tags": [ "Feature Flags" ] } }, "/iam/role-bindings": { "get": { "operationId": "listRoleBindings", "parameters": [ { "in": "query", "name": "user_id", "type": "string", "x-go-name": "UserID" }, { "in": "query", "name": "role_id", "type": "string", "x-go-name": "RoleID" }, { "enum": [ "org", "project" ], "in": "query", "name": "scope_type", "type": "string", "x-go-name": "ScopeType" }, { "in": "query", "name": "scope_object_id", "type": "string", "x-go-name": "ScopeObjectID" } ], "responses": { "200": { "$ref": "#/responses/listRoleBindingsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists role bindings visible to the caller.", "tags": [ "RoleBindings" ] } }, "/iam/roles": { "get": { "operationId": "listRoles", "responses": { "200": { "$ref": "#/responses/listRolesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists role associated with the caller's organization.", "tags": [ "Roles" ] } }, "/iam/users/{user_id}/role-bindings": { "post": { "description": "If any creation or deletion fails, no changes are applied.", "operationId": "applyRoleBindings", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "user_id", "required": true, "type": "string", "x-go-name": "UserID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/ApplyRoleBindingRequest" } } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates and deletes role bindings for a user in a single atomic operation.", "tags": [ "RoleBindings" ] } }, "/locations": { "get": { "operationId": "listLocations", "responses": { "200": { "$ref": "#/responses/locationsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all Crusoe Cloud locations usable for resource hosting.", "tags": [ "Locations" ] } }, "/organizations/entities": { "get": { "operationId": "getOrganizations", "responses": { "200": { "$ref": "#/responses/organizationsGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all active organizations the logged in user belongs to.", "tags": [ "Entities" ] }, "put": { "description": "A successful response from this resource will contain the updated organization details.", "operationId": "updateOrganization", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/EntitiesPutPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/organizationsPutPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update details for an organization that the logged in user owns.", "tags": [ "Entities" ] } }, "/organizations/projects": { "get": { "description": "If querying for projects within an organization, the logged in user must be the owner of the organization.", "operationId": "listProjects", "parameters": [ { "example": "ee2a6bc3-aed5-4756-8995-9990a53d3a17", "in": "query", "name": "org_id", "type": "string", "x-go-name": "OrgID" }, { "example": "default", "in": "query", "name": "project_name", "type": "string", "x-go-name": "ProjectName" }, { "example": true, "in": "query", "name": "skip_loading_project_resources", "type": "boolean", "x-go-name": "SkipLoadingProjectResources" } ], "responses": { "200": { "$ref": "#/responses/listProjectsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about projects that the logged in user belongs to or owns.", "tags": [ "Projects" ] }, "post": { "description": "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.", "operationId": "createProject", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/ProjectsPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/projectsPutPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new project that will be owned by the logged in user.", "tags": [ "Projects" ] }, "put": { "description": "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.", "operationId": "updateProject", "parameters": [ { "example": "f058d0db-2fa4-4cf2-8cf1-dfbcfe05a814", "in": "query", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/ProjectsPutRequest" } } ], "responses": { "200": { "$ref": "#/responses/projectsPutPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update details for a project that the logged in user owns.", "tags": [ "Projects" ] } }, "/organizations/projects/{project_id}": { "delete": { "description": "Delete operations cascade to VMs created under that project.", "operationId": "deleteProject", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a project that the logged in user owns.", "tags": [ "Projects" ] }, "get": { "operationId": "getProject", "parameters": [ { "example": "ee2a6bc3-aed5-4756-8995-9990a53d3a17", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getProjectResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a project that the logged in user belongs to or owns.", "tags": [ "Projects" ] } }, "/organizations/{org_id}/scim/integrations": { "get": { "operationId": "listSCIMIntegrations", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/listSCIMIntegrationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List SCIM integrations for an organization.", "tags": [ "SCIM" ] }, "post": { "operationId": "createSCIMIntegration", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateSCIMIntegrationRequestBody" } } ], "responses": { "200": { "$ref": "#/responses/createSCIMIntegrationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new SCIM integration for an organization.", "tags": [ "SCIM" ] } }, "/organizations/{org_id}/scim/integrations/{integration_id}": { "delete": { "operationId": "deleteSCIMIntegration", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" } ], "responses": { "204": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a SCIM integration.", "tags": [ "SCIM" ] }, "get": { "operationId": "getSCIMIntegration", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" } ], "responses": { "200": { "$ref": "#/responses/getSCIMIntegrationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get a SCIM integration by ID.", "tags": [ "SCIM" ] }, "patch": { "operationId": "updateSCIMIntegration", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/UpdateSCIMIntegrationRequestBody" } } ], "responses": { "200": { "$ref": "#/responses/updateSCIMIntegrationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a SCIM integration.", "tags": [ "SCIM" ] } }, "/organizations/{org_id}/scim/integrations/{integration_id}/tokens": { "get": { "operationId": "listSCIMIntegrationTokens", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" } ], "responses": { "200": { "$ref": "#/responses/listSCIMIntegrationTokensResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List the tokens for a SCIM integration.", "tags": [ "SCIM" ] }, "post": { "operationId": "createSCIMIntegrationToken", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateSCIMTokenRequestBody" } } ], "responses": { "200": { "$ref": "#/responses/createSCIMIntegrationTokenResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a token for a SCIM integration.", "tags": [ "SCIM" ] } }, "/organizations/{org_id}/scim/integrations/{integration_id}/tokens/{access_key_id}": { "delete": { "operationId": "deleteSCIMIntegrationToken", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "integration_id", "required": true, "type": "string", "x-go-name": "IntegrationID" }, { "example": "R7p5XctCQMuGlpVBmVdqzA", "in": "path", "name": "access_key_id", "required": true, "type": "string", "x-go-name": "AccessKeyID" } ], "responses": { "204": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a token from a SCIM integration.", "tags": [ "SCIM" ] } }, "/organizations/{org_id}/storage/s3/keys": { "get": { "operationId": "listS3Keys", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/listS3KeysResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all S3 keys for a organization.", "tags": [ "S3Keys" ] }, "post": { "consumes": [ "application/json" ], "operationId": "createS3Key", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateS3KeyRequest" } } ], "responses": { "200": { "$ref": "#/responses/createS3KeyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a new S3 key and generates access/secret key pair.", "tags": [ "S3Keys" ] } }, "/organizations/{org_id}/storage/s3/keys/{access_key_id}": { "delete": { "consumes": [ "application/json" ], "operationId": "deleteS3Key", "parameters": [ { "description": "The ID of the organization", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "description": "The AccessKeyID of the S3 key to delete", "example": "CKIA493K6LOVDNNAR4SZ", "in": "path", "name": "access_key_id", "required": true, "type": "string", "x-go-name": "AccessKeyID" } ], "responses": { "204": { "$ref": "#/responses/okEmpty" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deletes an S3 key based on its ID.", "tags": [ "S3Keys" ] } }, "/organizations/{organization_id}/audit-logs": { "get": { "operationId": "getAuditLogs", "parameters": [ { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrganizationID" }, { "example": "f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d", "in": "query", "items": { "type": "string" }, "name": "project_ids", "type": "array", "x-go-name": "ProjectIDs" }, { "example": "2022-09-01T14:25:36-07:00", "in": "query", "name": "start_time", "type": "string", "x-go-name": "StartTime" }, { "example": "2022-09-06T14:25:36-07:00", "in": "query", "name": "end_time", "type": "string", "x-go-name": "EndTime" }, { "example": "Create,Update", "in": "query", "items": { "type": "string" }, "name": "actions", "type": "array", "x-go-name": "Actions" }, { "example": "f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d", "in": "query", "items": { "type": "string" }, "name": "actor_ids", "type": "array", "x-go-name": "ActorIDs" }, { "example": "hh26@xxx.com,xyz@yyy.ai, only support filter by user email, not by crusoe admin email.", "in": "query", "items": { "type": "string" }, "name": "actor_emails", "type": "array", "x-go-name": "ActorEmails" }, { "example": "User,Crusoe Admin, please ensure URL encoding for values with space.", "in": "query", "items": { "type": "string" }, "name": "actor_types", "type": "array", "x-go-name": "ActorTypes" }, { "example": "f934fbdb-7e3a-4b92-b7d2-da0f91d768e8,8c29f3f3-830f-4a44-9b6b-a51fcf6a6b5d", "in": "query", "items": { "type": "string" }, "name": "target_ids", "type": "array", "x-go-name": "TargetIDs" }, { "example": "VM,KubernetesCluster", "in": "query", "items": { "type": "string" }, "name": "target_types", "type": "array", "x-go-name": "TargetTypes" }, { "example": "my_vm1,my_vm2", "in": "query", "items": { "type": "string" }, "name": "target_names", "type": "array", "x-go-name": "TargetNames" }, { "example": "us-east1,us-northcentral1-a", "in": "query", "items": { "type": "string" }, "name": "locations", "type": "array", "x-go-name": "Locations" }, { "example": "OK,Bad Request", "in": "query", "items": { "type": "string" }, "name": "results", "type": "array", "x-go-name": "Results" }, { "example": "OK,Bad Request", "in": "query", "items": { "type": "string" }, "name": "results_not", "type": "array", "x-go-name": "ResultsNot" }, { "example": "Browser,Crusoe Terraform/v0.5.21 please make sure the values are URL encoded.", "in": "query", "items": { "type": "string" }, "name": "surfaces", "type": "array", "x-go-name": "Surfaces" }, { "example": "20", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_token", "type": "string", "x-go-name": "PrevToken" } ], "responses": { "200": { "$ref": "#/responses/auditLogsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get audit logs belonging to the specified organization. User must be part of the organization.", "tags": [ "Audit Logs" ] } }, "/organizations/{organization_id}/billing/costs": { "get": { "operationId": "getBillingCosts", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/billingCostsGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get the daily spend for a specified organization by project.", "tags": [ "Billing" ] } }, "/organizations/{organization_id}/billing/export-productline": { "get": { "operationId": "getBillingExportProductline", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "in": "query", "items": { "type": "string" }, "name": "projects", "type": "array", "x-go-name": "Projects" }, { "example": [ "persistent-ssd", "a40" ], "in": "query", "items": { "type": "string" }, "name": "product_lines", "type": "array", "x-go-name": "ProductLines" }, { "example": [ "us-east1", "us-northcentral1" ], "in": "query", "items": { "type": "string" }, "name": "regions", "type": "array", "x-go-name": "Regions" }, { "example": "\"2022-07-01\"", "in": "query", "name": "start_date", "required": true, "type": "string", "x-go-name": "StartDate" }, { "example": "\"2023-08-08\"", "in": "query", "name": "end_date", "required": true, "type": "string", "x-go-name": "EndDate" } ], "produces": [ "text/csv" ], "responses": { "200": { "$ref": "#/responses/getBillingExportProductlineResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Return a CSV containing the costs for resources in a given period.", "tags": [ "Billing" ] } }, "/organizations/{organization_id}/billing/options": { "get": { "operationId": "getBillingOptions", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "\"2025-05-01\"", "in": "query", "name": "start_date", "type": "string", "x-go-name": "StartDate" }, { "example": "\"2025-05-20\"", "in": "query", "name": "end_date", "type": "string", "x-go-name": "EndDate" } ], "responses": { "200": { "$ref": "#/responses/billingOptionsGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve data about an organizations recent Non-Reservation costs.", "tags": [ "Billing" ] } }, "/organizations/{organization_id}/quotas": { "get": { "operationId": "listOrgQuotas", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/listOrgQuotasResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List max and currently used organization quotas.", "tags": [ "Quotas" ] } }, "/organizations/{organization_id}/reservations": { "get": { "operationId": "getReservations", "parameters": [ { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrganizationID" }, { "example": "effective", "in": "query", "name": "status", "type": "string", "x-go-name": "Status" } ], "responses": { "200": { "$ref": "#/responses/reservationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get all reservations belonging to the specified organization. User must be part of the organization.", "tags": [ "Reservations" ] } }, "/organizations/{organization_id}/reservations/gpu-tracking": { "get": { "operationId": "getReservationsGPUTracking", "parameters": [ { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrganizationID" }, { "example": [ "gpu-hours" ], "in": "query", "items": { "type": "string" }, "name": "product_line", "type": "array", "x-go-name": "ProductLine" }, { "example": [ "us-east1", "us-northcentral1" ], "in": "query", "items": { "type": "string" }, "name": "region", "type": "array", "x-go-name": "Region" }, { "example": "\"2024-01-01T00:00:00Z\"", "in": "query", "name": "start_time", "type": "string", "x-go-name": "StartTime" }, { "example": "\"2024-01-31T23:59:59Z\"", "in": "query", "name": "end_time", "type": "string", "x-go-name": "EndTime" } ], "responses": { "200": { "$ref": "#/responses/reservationsGPUTrackingResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access.", "tags": [ "Reservations" ] } }, "/organizations/{organization_id}/reservations/gpu-tracking/latest": { "get": { "operationId": "getLatestGPUTracking", "parameters": [ { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrganizationID" }, { "example": [ "gpu-hours" ], "in": "query", "items": { "type": "string" }, "name": "product_line", "type": "array", "x-go-name": "ProductLine" }, { "example": [ "us-east1", "us-northcentral1" ], "in": "query", "items": { "type": "string" }, "name": "region", "type": "array", "x-go-name": "Region" } ], "responses": { "200": { "$ref": "#/responses/latestGPUTrackingResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get latest GPU tracking data for the specified organization. User must be part of the organization and have reservations feature access.", "tags": [ "Reservations" ] } }, "/organizations/{organization_id}/reservations/{reservation_id}": { "get": { "operationId": "getReservation", "parameters": [ { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrganizationID" }, { "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "in": "path", "name": "reservation_id", "required": true, "type": "string", "x-go-name": "ReservationID" } ], "responses": { "200": { "$ref": "#/responses/reservationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get reservation belonging to the specified organization and reservation ID. User must be part of the organization.", "tags": [ "Reservations" ] } }, "/organizations/{organization_id}/sso/providers": { "get": { "operationId": "listSSOProviders", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/listSSOProvidersResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns the active sso providers for a given orgID.", "tags": [ "SSO" ] }, "post": { "operationId": "createSSOProvider", "parameters": [ { "example": "d62a74a8-e14e-41fd-81b6-9983f7ab9ba8", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateSSOProviderRequest" } } ], "responses": { "200": { "$ref": "#/responses/createSSOProviderResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new SSO provider for a specific org.", "tags": [ "SSO" ] } }, "/organizations/{organization_id}/sso/providers/{provider_id}": { "delete": { "operationId": "deleteSSOProvider", "parameters": [ { "example": "d62a74a8-e14e-41fd-81b6-9983f7ab9ba8", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": "d62a74a8-e14e-41fd-81b6-9983f7ab9ba8", "in": "path", "name": "provider_id", "required": true, "type": "string", "x-go-name": "ProviderID" } ], "responses": { "200": { "$ref": "#/responses/deleteSSOProviderResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a specific SSO provider for a specific org.", "tags": [ "SSO" ] } }, "/organizations/{organization_id}/usage": { "get": { "operationId": "getUsage", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "in": "query", "items": { "type": "string" }, "name": "projects", "required": true, "type": "array", "x-go-name": "Projects" }, { "example": [ "persistent-ssd", "a40.1x" ], "in": "query", "items": { "type": "string" }, "name": "resource_types", "required": true, "type": "array", "x-go-name": "ResourceTypes" }, { "example": [ "us-east1", "us-northcentral1" ], "in": "query", "items": { "type": "string" }, "name": "regions", "required": true, "type": "array", "x-go-name": "Regions" }, { "example": "\"2022-07-01\"", "in": "query", "name": "start_date", "required": true, "type": "string", "x-go-name": "StartDate" }, { "example": "\"2023-08-08\"", "in": "query", "name": "end_date", "required": true, "type": "string", "x-go-name": "EndDate" } ], "responses": { "200": { "$ref": "#/responses/usageGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get project-level usage for products in Crusoe Cloud.", "tags": [ "Usage" ] } }, "/organizations/{organization_id}/usage/export": { "get": { "operationId": "getUsageExport", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "in": "query", "items": { "type": "string" }, "name": "projects", "required": true, "type": "array", "x-go-name": "Projects" }, { "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "in": "query", "items": { "type": "string" }, "name": "resources", "required": true, "type": "array", "x-go-name": "Resources" }, { "example": [ "persistent-ssd", "a40.1x" ], "in": "query", "items": { "type": "string" }, "name": "resource_types", "required": true, "type": "array", "x-go-name": "ResourceTypes" }, { "example": [ "us-east1", "us-northcentral1" ], "in": "query", "items": { "type": "string" }, "name": "regions", "required": true, "type": "array", "x-go-name": "Regions" }, { "example": "\"2022-07-01\"", "in": "query", "name": "start_date", "required": true, "type": "string", "x-go-name": "StartDate" }, { "example": "\"2023-08-08\"", "in": "query", "name": "end_date", "required": true, "type": "string", "x-go-name": "EndDate" } ], "produces": [ "text/csv" ], "responses": { "200": { "$ref": "#/responses/usageExportGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get resource-level usage for products in Crusoe Cloud.", "tags": [ "Usage" ] } }, "/organizations/{organization_id}/usage/options": { "get": { "operationId": "getUsageOptions", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "organization_id", "required": true, "type": "string", "x-go-name": "OrgID" } ], "responses": { "200": { "$ref": "#/responses/usageOptionsGetResponse" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get options which exist for filters for /usage and /usage/export routes.", "tags": [ "Usage" ] } }, "/projects/{project_id}/ccr/repositories": { "get": { "operationId": "listCcrRepositories", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "in": "query", "name": "sort_order", "type": "string", "x-go-name": "SortOrder" } ], "responses": { "200": { "$ref": "#/responses/ccrListRepositoriesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List all container registry repositories in a project.", "tags": [ "Ccr", "Container Registry" ] }, "post": { "operationId": "createCcrRepository", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/RepositoryRequest" } } ], "responses": { "201": { "$ref": "#/responses/ccrRepositoryResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a container registry repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}": { "delete": { "operationId": "deleteCcrRepository", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a container registry repository.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "getCcrRepository", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" } ], "responses": { "200": { "$ref": "#/responses/ccrRepositoryResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get a specific CCR repository.", "tags": [ "Ccr", "Container Registry" ] }, "patch": { "description": "Updates the username and password credentials for the upstream registry\nof a pull-through cache repository.", "operationId": "updateCcrRepositoryCredentials", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/UpstreamRegistryCredentials" } } ], "responses": { "204": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update upstream registry credentials for a repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/images": { "delete": { "operationId": "deleteCcrImage", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an image from a container registry repository.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "listCcrImages", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "in": "query", "name": "sort_order", "type": "string", "x-go-name": "SortOrder" } ], "responses": { "200": { "$ref": "#/responses/ccrListImagesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List all images in a container registry repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/manifests": { "delete": { "operationId": "deleteCcrManifest", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "query", "name": "tag", "type": "string", "x-go-name": "Tag" }, { "in": "query", "name": "digest", "type": "string", "x-go-name": "Digest" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a manifest from an image in a container registry repository.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "listCcrManifests", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "query", "name": "tag_contains", "type": "string", "x-go-name": "TagContains" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "in": "query", "name": "sort_order", "type": "string", "x-go-name": "SortOrder" } ], "responses": { "200": { "$ref": "#/responses/ccrListManifestsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List all manifests for an image in a container registry repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/usage": { "get": { "operationId": "getCcrRepositoryUsage", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" } ], "responses": { "200": { "$ref": "#/responses/ccrRepositoryQuotaResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get usage data for a specific container registry repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/compute/custom-images": { "get": { "operationId": "listCustomImages", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listImagesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List all custom VM images available for use.", "tags": [ "CustomImages" ] }, "post": { "operationId": "customImagePost", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CustomImagePostRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a custom image.", "tags": [ "CustomImages" ] } }, "/projects/{project_id}/compute/custom-images/operations": { "get": { "description": "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.", "operationId": "listCustomImagesOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Custom Image Operations" ] } }, "/projects/{project_id}/compute/custom-images/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getCustomImagesOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous custom image operation", "tags": [ "Custom Image Operations" ] } }, "/projects/{project_id}/compute/custom-images/{image_id}": { "delete": { "operationId": "customImageDelete", "parameters": [ { "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a custom image.", "tags": [ "CustomImages" ] }, "get": { "operationId": "getCustomImage", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getImageResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a VM image.", "tags": [ "CustomImages" ] }, "patch": { "operationId": "customImagePatch", "parameters": [ { "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CustomImagePatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a custom image.", "tags": [ "CustomImages" ] } }, "/projects/{project_id}/compute/custom-images/{image_id}/edit-tags": { "patch": { "operationId": "customImageEditTags", "parameters": [ { "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CustomImageEditTagsRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a custom image.", "tags": [ "CustomImages" ] } }, "/projects/{project_id}/compute/instance-groups": { "get": { "operationId": "listInstanceGroups", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listInstanceGroupsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all instance groups.", "tags": [ "Instance Groups" ] }, "post": { "operationId": "createInstanceGroup", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstanceGroupPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/createInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create an instance group.", "tags": [ "Instance Groups" ] } }, "/projects/{project_id}/compute/instance-groups/{instance_group_id}": { "delete": { "operationId": "deleteInstanceGroup", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "instance_group_id", "required": true, "type": "string", "x-go-name": "InstanceGroupID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an instance group.", "tags": [ "Instance Groups" ] }, "get": { "operationId": "getInstanceGroup", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "instance_group_id", "required": true, "type": "string", "x-go-name": "InstanceGroupID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about an instance group.", "tags": [ "Instance Groups" ] }, "patch": { "operationId": "patchInstanceGroup", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "instance_group_id", "required": true, "type": "string", "x-go-name": "InstanceGroupID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstanceGroupPatchRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/patchInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update an instance group.", "tags": [ "Instance Groups" ] } }, "/projects/{project_id}/compute/instance-templates": { "get": { "operationId": "listInstanceTemplates", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listInstanceTemplatesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all VM instance templates available for use.", "tags": [ "Instance Templates" ] }, "post": { "operationId": "createInstanceTemplate", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstanceTemplatePostRequestV1" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/createInstanceTemplateResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a VM instance template, for use in bulk VM creation.", "tags": [ "Instance Templates" ] } }, "/projects/{project_id}/compute/instance-templates/{instance_template_id}": { "delete": { "operationId": "deleteInstanceTemplate", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "instance_template_id", "required": true, "type": "string", "x-go-name": "InstanceTemplateID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a VM instance template.", "tags": [ "Instance Templates" ] }, "get": { "operationId": "getInstanceTemplate", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "instance_template_id", "required": true, "type": "string", "x-go-name": "InstanceTemplateID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getInstanceTemplateResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a VM instance template.", "tags": [ "Instance Templates" ] } }, "/projects/{project_id}/compute/vms/bulk-instances": { "post": { "operationId": "bulkCreateInstance", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/BulkInstancePostRequestV1" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create new VM instances owned by the logged in user.", "tags": [ "VMs" ] } }, "/projects/{project_id}/compute/vms/instances": { "get": { "operationId": "listInstances", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "ids", "type": "string", "x-go-name": "IDs" }, { "example": "my-first-vm", "in": "query", "name": "names", "type": "string", "x-go-name": "Names" }, { "example": "a40.2x,a100.8x", "in": "query", "name": "types", "type": "string", "x-go-name": "Types" }, { "example": "us-east1,us-northcentral1", "in": "query", "name": "locations", "type": "string", "x-go-name": "Locations" }, { "example": "STATE_RUNNING", "in": "query", "name": "states", "type": "string", "x-go-name": "States" }, { "example": "550e8400-e29b-41d4-a716-446655440000", "in": "query", "name": "nvlink_domain_ids", "type": "string", "x-go-name": "NvlinkDomainIds" }, { "example": "20", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" }, { "example": "name", "in": "query", "name": "sort", "type": "string", "x-go-name": "Sort" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_token", "type": "string", "x-go-name": "PrevToken" } ], "responses": { "200": { "$ref": "#/responses/listInstancesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all VMs that the logged in user owns or has access to.", "tags": [ "VMs" ] }, "post": { "operationId": "createInstance", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstancesPostRequestV1" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new VM instance owned by the logged in user.", "tags": [ "VMs" ] } }, "/projects/{project_id}/compute/vms/instances/operations": { "get": { "description": "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.", "operationId": "listComputeVMsInstancesOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "2021-12-03T19:58:34Z", "in": "query", "name": "lower_time_bound", "type": "string", "x-go-name": "LowerTimeBound" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "VM Operations" ] } }, "/projects/{project_id}/compute/vms/instances/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getComputeVMsInstancesOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get the status of a single asynchronous operation", "tags": [ "VM Operations" ] } }, "/projects/{project_id}/compute/vms/instances/{vm_id}": { "delete": { "operationId": "deleteInstance", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a VM that the logged in user owns.", "tags": [ "VMs" ] }, "get": { "operationId": "getInstance", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/getInstanceResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a particular VM.", "tags": [ "VMs" ] }, "patch": { "operationId": "updateInstance", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstancesPatchRequestV1" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Change the state of a VM the logged in user owns.", "tags": [ "VMs" ] } }, "/projects/{project_id}/compute/vms/instances/{vm_id}/attach-disks": { "post": { "operationId": "updateInstanceAttachDisks", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstancesAttachDiskPostRequestV1" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Attach disks to a VM the logged in user owns.", "tags": [ "VMs" ] } }, "/projects/{project_id}/compute/vms/instances/{vm_id}/detach-disks": { "post": { "operationId": "updateInstanceDetachDisks", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstancesDetachDiskPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Detach disks from a VM the logged in user owns.", "tags": [ "VMs" ] } }, "/projects/{project_id}/compute/vms/types": { "get": { "operationId": "getVMTypes", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/typesGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about the types of VMs that are available.", "tags": [ "VMs" ] } }, "/projects/{project_id}/kubernetes/autocluster-operations": { "get": { "operationId": "listAutoClusterOperations", "parameters": [ { "description": "Project ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "in": "query", "name": "cluster_id", "type": "string", "x-go-name": "ClusterID" }, { "example": "5f9c5d6a-2d15-4a2c-8a2a-9b0f4e1d3b21", "in": "query", "name": "operation_id", "type": "string", "x-go-name": "OperationID" }, { "example": "IN_PROGRESS", "in": "query", "name": "state", "type": "string", "x-go-name": "State" }, { "example": "RESET_VM", "in": "query", "name": "operation_type", "type": "string", "x-go-name": "OperationType" }, { "example": "PREPARED", "in": "query", "name": "remediation_state", "type": "string", "x-go-name": "RemediationState" }, { "example": "2025-10-01T00:00:00Z", "in": "query", "name": "lower_bound", "type": "string", "x-go-name": "LowerBound" }, { "example": "2025-10-31T23:59:59Z", "in": "query", "name": "upper_bound", "type": "string", "x-go-name": "UpperBound" } ], "responses": { "200": { "$ref": "#/responses/listAutoClusterOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about AutoCluster operations for a project.", "tags": [ "AutoCluster Operations" ] } }, "/projects/{project_id}/kubernetes/autocluster-operations/{operation_id}": { "get": { "operationId": "getAutoClusterOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getAutoClusterOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a specific AutoCluster operation.", "tags": [ "AutoCluster Operations" ] } }, "/projects/{project_id}/kubernetes/clusters": { "get": { "operationId": "listClusters", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "cluster_id", "type": "string", "x-go-name": "ClusterID" }, { "example": "my-first-cluster", "in": "query", "name": "cluster_name", "type": "string", "x-go-name": "ClusterName" }, { "example": "a40.2x,a100.8x", "in": "query", "items": { "type": "string" }, "name": "cluster_search_names", "type": "array", "x-go-name": "ClusterSearchNames" }, { "example": "us-east1,us-northcentral1", "in": "query", "items": { "type": "string" }, "name": "locations", "type": "array", "x-go-name": "Locations" }, { "example": "STATE_RUNNING", "in": "query", "items": { "type": "string" }, "name": "states", "type": "array", "x-go-name": "States" }, { "example": "1.30", "in": "query", "items": { "type": "string" }, "name": "versions", "type": "array", "x-go-name": "Versions" }, { "example": "name, -name", "in": "query", "name": "sort", "type": "string", "x-go-name": "SortBy" }, { "example": true, "in": "query", "name": "show_inactive", "type": "boolean", "x-go-name": "ShowInactive" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_token", "type": "string", "x-go-name": "PrevToken" } ], "responses": { "200": { "$ref": "#/responses/listKubernetesClustersResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about Kubernetes clusters belonged to the project.", "tags": [ "Kubernetes Clusters" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createCluster", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesClusterPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new Kubernetes cluster owned by the logged in user.", "tags": [ "Kubernetes Clusters" ] } }, "/projects/{project_id}/kubernetes/clusters/operations": { "get": { "description": "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.", "operationId": "listKubernetesClustersOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Kubernetes Cluster Operations" ] } }, "/projects/{project_id}/kubernetes/clusters/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getKubernetesClustersOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "Kubernetes Cluster Operations" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}": { "delete": { "operationId": "deleteCluster", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a cluster that the logged in user owns.", "tags": [ "Kubernetes Clusters" ] }, "get": { "operationId": "getCluster", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" } ], "responses": { "200": { "$ref": "#/responses/getKubernetesClusterResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a particular Kubernetes cluster belonged to the project.", "tags": [ "Kubernetes Clusters" ] }, "patch": { "operationId": "updateCluster", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesClusterPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a cluster that the logged in user owns.", "tags": [ "Kubernetes Clusters" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config": { "get": { "description": "Returns the cluster's Autoclusters configuration including alert handling defaults and any customer overrides.", "operationId": "getAutoClustersConfig", "parameters": [ { "description": "Project ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Cluster ID", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" } ], "responses": { "200": { "$ref": "#/responses/getAutoClustersConfigResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve the AutoClusters configuration for a specific cluster.", "tags": [ "AutoClusters" ] }, "patch": { "description": "Allows setting or removing remediation overrides and configuring project reservation fallback.", "operationId": "updateAutoClustersConfig", "parameters": [ { "description": "Project ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Cluster ID", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "description": "Request body", "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/UpdateAutoClustersConfigRequest" } } ], "responses": { "200": { "$ref": "#/responses/updateAutoClustersConfigResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update the AutoClusters configuration for a specific cluster.", "tags": [ "AutoClusters" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate": { "post": { "description": "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.", "operationId": "remediateVM", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vm_id", "required": true, "type": "string", "x-go-name": "VMID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Trigger VM remediation.", "tags": [ "AutoClusters" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}/get-credentials": { "post": { "operationId": "getClusterCredentials", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "enum": [ "oidc", "admin_cert" ], "in": "query", "name": "auth_type", "type": "string", "x-go-name": "AuthType" } ], "responses": { "200": { "$ref": "#/responses/getKubernetesClusterCredentialsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve credentials for the user to authenticate to the specified cluster.", "tags": [ "Kubernetes Clusters" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings": { "get": { "operationId": "getSupportSettings", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" } ], "responses": { "200": { "$ref": "#/responses/getSupportSettingsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve support access settings for a Kubernetes cluster.", "tags": [ "Kubernetes Support Access" ] }, "patch": { "operationId": "updateSupportSettings", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesClusterSupportSettingsRequest" } } ], "responses": { "200": { "$ref": "#/responses/updateSupportSettingsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update support access settings for a Kubernetes cluster.", "tags": [ "Kubernetes Support Access" ] } }, "/projects/{project_id}/kubernetes/nodepools": { "get": { "operationId": "listNodePools", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "cluster_id", "type": "string", "x-go-name": "ClusterID" }, { "example": "created_at, -created_at", "in": "query", "name": "sort", "type": "string", "x-go-name": "SortBy" } ], "responses": { "200": { "$ref": "#/responses/listKubernetesNodePoolsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about Kubernetes node pools belonging to a project or cluster.", "tags": [ "Kubernetes Node Pools" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createNodePool", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesNodePoolPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new Kubernetes node pool owned by the logged in user.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/operations": { "get": { "description": "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.", "operationId": "listKubernetesNodePoolsOperations", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Kubernetes Node Pool Operations" ] } }, "/projects/{project_id}/kubernetes/nodepools/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getKubernetesNodePoolsOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "Kubernetes Node Pool Operations" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}": { "delete": { "operationId": "deleteNodePool", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a node pool that the logged in user owns.", "tags": [ "Kubernetes Node Pools" ] }, "get": { "operationId": "getNodePool", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" } ], "responses": { "200": { "$ref": "#/responses/getKubernetesNodePoolResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a particular Kubernetes node pool belonging to the project.", "tags": [ "Kubernetes Node Pools" ] }, "patch": { "operationId": "updateNodePool", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesNodePoolPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a node pool that the logged in user owns.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate": { "post": { "operationId": "cancelNodePoolRotate", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" } ], "responses": { "200": { "$ref": "#/responses/cancelNodePoolRotateResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Cancel an in-progress rotation of the specified Kubernetes node pool.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate": { "get": { "operationId": "getNodePoolRotateStatus", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" } ], "responses": { "200": { "$ref": "#/responses/getNodePoolRotateStatusResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get the rotate status of the specified Kubernetes ndoe pool.", "tags": [ "Kubernetes Node Pools" ] }, "post": { "description": "A successful response returns an async operation you can poll.", "operationId": "rotateNodePool", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesNodePoolRotateStartRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Start a rotation of the specified Kubernetes node pool.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/versions": { "get": { "operationId": "listKubernetesVersions", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": true, "in": "query", "name": "show_deprecated", "type": "boolean", "x-go-name": "ShowDeprecated" }, { "example": "a100.2x", "in": "query", "name": "product_name", "type": "string", "x-go-name": "ProductName" } ], "responses": { "200": { "$ref": "#/responses/listKubernetesVersionsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about available Kubernetes versions.", "tags": [ "Kubernetes Versions" ] } }, "/projects/{project_id}/metrics/scrape": { "get": { "description": "This endpoint proxies to VictoriaMetrics /federate endpoint and returns metrics\nin Prometheus text exposition format for scraping by external monitoring systems.\n\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)\n\nInternal metrics and provisioned throughput metrics are always excluded.\n\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.", "operationId": "scrapeMetrics", "parameters": [ { "description": "The project ID to scrape metrics from. User must have read access to the project.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Filter by metric name. Supports comma-separated values (e.g., metric_name=http_requests_total,http_response_time).", "example": "crusoe_vm_cpu_seconds_total,crusoe_vm_disk_writes_completed_total", "in": "query", "items": { "type": "string" }, "name": "metric_name", "type": "array", "x-go-name": "MetricName" }, { "description": "Filter by metric category. 'system' returns Crusoe-collected metrics.\n'custom' returns user-defined metrics with metrics_source=custom-metrics label.", "enum": [ "system", " custom" ], "example": "system", "in": "query", "name": "metric_category", "type": "string", "x-go-name": "MetricCategory" }, { "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)", "example": "job:api,region:us-east", "in": "query", "items": { "type": "string" }, "name": "labels", "type": "array", "x-go-name": "Labels" }, { "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'.", "example": "true", "in": "query", "name": "compress", "type": "string", "x-go-name": "Compress" }, { "description": "Response format. Default Prometheus text. Set to \"openmetrics\" to receive application/openmetrics-text (1.0) with # EOF marker.", "enum": [ "prometheus", "openmetrics" ], "example": "openmetrics", "in": "query", "name": "format", "type": "string", "x-go-name": "Format" } ], "responses": { "200": { "$ref": "#/responses/scrapeMetricsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "429": { "$ref": "#/responses/rateLimitError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Export metrics in Prometheus text format (default) or OpenMetrics format for scraping.", "tags": [ "Observability" ] } }, "/projects/{project_id}/metrics/timeseries": { "get": { "operationId": "queryTimeseriesSimplified", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "shareddisk", "in": "query", "name": "resource_type", "required": true, "type": "string", "x-go-name": "ResourceType" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "description": "Start timestamp, inclusive.", "example": "\u003crfc3339 | unix_timestamp\u003e", "in": "query", "name": "start", "required": true, "type": "string", "x-go-name": "Start" }, { "description": "End timestamp, inclusive.", "example": "\u003crfc3339 | unix_timestamp\u003e", "in": "query", "name": "end", "required": true, "type": "string", "x-go-name": "End" }, { "description": "Query resolution step width in duration format or float number of seconds.", "example": "5m | 30.0", "in": "query", "name": "step", "required": true, "type": "string", "x-go-name": "Step" } ], "responses": { "200": { "$ref": "#/responses/timeseriesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Query timeseries for a resource (in development).", "tags": [ "Observability" ] } }, "/projects/{project_id}/metrics/timeseries/api/v1/query": { "get": { "operationId": "queryTimeseries", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Prometheus expression query string.", "example": "metric[label=value]", "in": "query", "name": "query", "required": true, "type": "string", "x-go-name": "Query" }, { "description": "Evaluation timestamp.", "example": "\u003crfc3339 | unix_timestamp\u003e", "in": "query", "name": "time", "type": "string", "x-go-name": "Time" }, { "description": "Evaluation timeout. Defaults to and is capped by the value of the -query.timeout flag.", "example": "30s", "in": "query", "name": "timeout", "type": "string", "x-go-name": "Timeout" }, { "description": "Maximum number of returned series. 0 means disabled.", "example": "5", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" } ], "responses": { "200": { "$ref": "#/responses/timeseriesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Query timeseries at an instant via PromQL.", "tags": [ "Observability" ] } }, "/projects/{project_id}/metrics/timeseries/api/v1/query-range": { "get": { "operationId": "queryTimeseriesRange", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Prometheus expression query string.", "example": "metric[label=value]", "in": "query", "name": "query", "required": true, "type": "string", "x-go-name": "Query" }, { "description": "Start timestamp, inclusive.", "example": "\u003crfc3339 | unix_timestamp\u003e", "in": "query", "name": "start", "required": true, "type": "string", "x-go-name": "Start" }, { "description": "End timestamp, inclusive.", "example": "\u003crfc3339 | unix_timestamp\u003e", "in": "query", "name": "end", "required": true, "type": "string", "x-go-name": "End" }, { "description": "Query resolution step width in duration format or float number of seconds.", "example": "5m | 30.0", "in": "query", "name": "step", "required": true, "type": "string", "x-go-name": "Step" }, { "description": "Evaluation timeout. Defaults to and is capped by the value of the -query.timeout flag.", "example": "30s", "in": "query", "name": "timeout", "type": "string", "x-go-name": "Timeout" }, { "description": "Maximum number of returned series. 0 means disabled.", "example": "5", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" } ], "responses": { "200": { "$ref": "#/responses/timeseriesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Query timeseries over a time range via PromQL.", "tags": [ "Observability" ] } }, "/projects/{project_id}/metrics/timeseries/query-parameters": { "get": { "operationId": "queryTimeseriesWithParameters", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the metric to query.", "example": "cpu_usage_seconds_total", "in": "query", "name": "metric", "required": true, "type": "string", "x-go-name": "Metric" }, { "description": "Labels to filter the metric by. Multiple labels can be provided as comma-separated key=value pairs.", "example": "instance=server1,job=node", "in": "query", "items": { "type": "string" }, "name": "label", "type": "array", "x-go-name": "Label" }, { "description": "Function to use (e.g., rate, avg). Multiple functions are separated by comma and applied in that order", "example": "function=rate,avg", "in": "query", "name": "function", "type": "string", "x-go-name": "Function" }, { "description": "Range to use with some functions (e.g., rate).", "example": "range=3600", "in": "query", "name": "range", "type": "string", "x-go-name": "Range" }, { "description": "Start timestamp, inclusive.", "example": "2024-01-22T10:00:00Z", "in": "query", "name": "start", "required": true, "type": "string", "x-go-name": "Start" }, { "description": "End timestamp, inclusive.", "example": "2024-01-22T11:00:00Z", "in": "query", "name": "end", "required": true, "type": "string", "x-go-name": "End" }, { "default": "3600", "description": "Query resolution step width in duration format or float number of seconds.", "example": "60", "in": "query", "name": "step", "type": "string", "x-go-name": "Step" } ], "responses": { "200": { "$ref": "#/responses/timeseriesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Query timeseries by passing various metric parameters.", "tags": [ "Observability" ] } }, "/projects/{project_id}/networking/ib-networks": { "get": { "operationId": "listIBNetworks", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listIbNetworksResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for all Infiniband networks.", "tags": [ "IB Networks" ] } }, "/projects/{project_id}/networking/ib-networks/{ib_network_id}": { "get": { "operationId": "getIBNetwork", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "ib_network_id", "required": true, "type": "string", "x-go-name": "IBNetworkID" } ], "responses": { "200": { "$ref": "#/responses/getIbNetworkResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for an Infiniband network.", "tags": [ "IB Networks" ] } }, "/projects/{project_id}/networking/ib-partitions": { "get": { "operationId": "listIBPartitions", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listIBPartitionsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for all Infiniband partitions that belongs to the user.", "tags": [ "IB Partitions" ] }, "post": { "operationId": "createIBPartition", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/IBPartitionsPostRequestV1" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/ibPartitionsPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new Infiniband partition owned by the logged in user.", "tags": [ "IB Partitions" ] } }, "/projects/{project_id}/networking/ib-partitions/{ib_partition_id}": { "delete": { "operationId": "deleteIBPartition", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "ib_partition_id", "required": true, "type": "string", "x-go-name": "IBPartitionID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an Infiniband partition owned by the logged in user.", "tags": [ "IB Partitions" ] }, "get": { "operationId": "getIBPartition", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "ib_partition_id", "required": true, "type": "string", "x-go-name": "IBPartitionID" } ], "responses": { "200": { "$ref": "#/responses/getIbPartitionResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for an Infiniband partition that belongs to the user.", "tags": [ "IB Partitions" ] } }, "/projects/{project_id}/networking/internal-load-balancers": { "get": { "operationId": "listLoadBalancers", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listLoadBalancersResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all load balancers that belong to the logged in user.", "tags": [ "Internal Load Balancers" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createLoadBalancer", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/LoadBalancersPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new load balancer owned by the logged in user.", "tags": [ "Internal Load Balancers" ] } }, "/projects/{project_id}/networking/internal-load-balancers/operations": { "get": { "description": "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.", "operationId": "listNetworkingLoadBalancersOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Internal Load Balancer Operations" ] } }, "/projects/{project_id}/networking/internal-load-balancers/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getNetworkingLoadBalancersOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "Internal Load Balancer Operations" ] } }, "/projects/{project_id}/networking/internal-load-balancers/{load_balancer_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteLoadBalancer", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a load balancer owned by the logged in user.", "tags": [ "Internal Load Balancers" ] }, "get": { "operationId": "getLoadBalancer", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" } ], "responses": { "200": { "$ref": "#/responses/getLoadBalancerResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a load balancer that belongs to the logged in user.", "tags": [ "Internal Load Balancers" ] }, "patch": { "description": "A successful response from this resource will contain the async operation.\nTo disable health checking, pass \"health_check\": {\"port\": 0}", "operationId": "patchLoadBalancer", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/LoadBalancersPatchRequestV1" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Patch (update) a load balancer owned by the logged in user.", "tags": [ "Internal Load Balancers" ] } }, "/projects/{project_id}/networking/load-balancers": { "get": { "operationId": "listExternalLoadBalancers", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "us-east1", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "vpc_network_id", "type": "string", "x-go-name": "VPCNetworkID" }, { "example": "my-loadbalancer-test", "in": "query", "name": "name", "type": "string", "x-go-name": "Name" } ], "responses": { "200": { "$ref": "#/responses/listExternalLoadBalancersResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about external load balancers belonging to the project.", "tags": [ "Load Balancers" ] }, "post": { "description": "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.", "operationId": "createExternalLoadBalancer", "parameters": [ { "description": "The project ID to which the external load balancer belongs.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Request body for creating the external load balancer.", "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/ExternalLoadBalancerPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new external load balancer.", "tags": [ "Load Balancers" ] } }, "/projects/{project_id}/networking/load-balancers/operations": { "get": { "description": "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.", "operationId": "listExternalLoadBalancerOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations.", "tags": [ "Load Balancer Operations" ] } }, "/projects/{project_id}/networking/load-balancers/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getExternalLoadBalancerOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation.", "tags": [ "Load Balancer Operations" ] } }, "/projects/{project_id}/networking/load-balancers/{load_balancer_id}": { "delete": { "description": "This endpoint deletes an external load balancer identified by its ID within the specified project. No request body or query parameters are required.", "operationId": "deleteExternalLoadBalancer", "parameters": [ { "description": "The project ID to which the external load balancer belongs.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The ID of the external load balancer to delete.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an external load balancer.", "tags": [ "Load Balancers" ] }, "get": { "operationId": "getExternalLoadBalancer", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" } ], "responses": { "200": { "$ref": "#/responses/getExternalLoadBalancerResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a particular external load balancer belonging to the project.", "tags": [ "Load Balancers" ] }, "patch": { "description": "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.", "operationId": "updateExternalLoadBalancer", "parameters": [ { "description": "The project ID to which the external load balancer belongs.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The ID of the external load balancer to update.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "load_balancer_id", "required": true, "type": "string", "x-go-name": "LoadBalancerID" }, { "description": "Request body for updating the external load balancer.", "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/ExternalLoadBalancerPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update an existing external load balancer.", "tags": [ "Load Balancers" ] } }, "/projects/{project_id}/networking/nvlink-domains": { "get": { "operationId": "listNvlinkDomains", "parameters": [ { "description": "Project ID", "format": "uuid", "in": "path", "name": "project_id", "required": true, "type": "string" } ], "responses": { "200": { "$ref": "#/responses/listNvlinkDomainsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all NVLink domains available for the project.", "tags": [ "NVLink Domains" ] } }, "/projects/{project_id}/networking/vpc-firewall-rules": { "get": { "operationId": "listVPCFirewallRules", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listVpcFirewallRulesResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all VPC firewall rules that belong to the logged in user.", "tags": [ "VPC Firewall Rules" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createVPCFirewallRule", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCFirewallRulesPostRequestV1" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new VPC firewall rule owned by the logged in user.", "tags": [ "VPC Firewall Rules" ] } }, "/projects/{project_id}/networking/vpc-firewall-rules/operations": { "get": { "description": "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.", "operationId": "listNetworkingVPCFirewallRulesOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "VPC Firewall Rule Operations" ] } }, "/projects/{project_id}/networking/vpc-firewall-rules/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getNetworkingVPCFirewallRulesOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "VPC Firewall Rule Operations" ] } }, "/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteVPCFirewallRule", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_firewall_rule_id", "required": true, "type": "string", "x-go-name": "VPCFirewallRuleID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a VPC firewall rule owned by the logged in user.", "tags": [ "VPC Firewall Rules" ] }, "get": { "operationId": "getVPCFirewallRule", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_firewall_rule_id", "required": true, "type": "string", "x-go-name": "VPCFirewallRuleID" } ], "responses": { "200": { "$ref": "#/responses/getVpcFirewallRuleResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a VPC firewall rule that belongs to the logged in user.", "tags": [ "VPC Firewall Rules" ] }, "patch": { "description": "A successful response from this resource will contain the async operation.", "operationId": "patchVPCFirewallRule", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_firewall_rule_id", "required": true, "type": "string", "x-go-name": "VPCFirewallRuleID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCFirewallRulesPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Patch (update) a VPC firewall rule owned by the logged in user.", "tags": [ "VPC Firewall Rules" ] } }, "/projects/{project_id}/networking/vpc-networks": { "get": { "operationId": "listVPCNetworks", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listVPCNetworksResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all VPC networks that belong to the logged in user.", "tags": [ "VPC Networks" ] }, "post": { "description": "A successful response from this resource will contain information regarding the created VPC network.", "operationId": "createVPCNetwork", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCNetworkPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/vpcNetworkPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new VPC network owned by the logged in user.", "tags": [ "VPC Networks" ] } }, "/projects/{project_id}/networking/vpc-networks/operations": { "get": { "description": "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.", "operationId": "listNetworkingVPCNetworksOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "VPC Network Operations" ] } }, "/projects/{project_id}/networking/vpc-networks/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getNetworkingVPCNetworksOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "VPC Network Operations" ] } }, "/projects/{project_id}/networking/vpc-networks/{vpc_network_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteVPCNetwork", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_network_id", "required": true, "type": "string", "x-go-name": "VPCNetworkID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a VPC network owned by the logged in user.", "tags": [ "VPC Networks" ] }, "get": { "operationId": "getVPCNetwork", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_network_id", "required": true, "type": "string", "x-go-name": "VPCNetworkID" } ], "responses": { "200": { "$ref": "#/responses/getVPCNetworkResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a VPC network that belongs to the logged in user.", "tags": [ "VPC Networks" ] }, "patch": { "description": "A successful response from this resource will contain the async operation.", "operationId": "patchVPCNetwork", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_network_id", "required": true, "type": "string", "x-go-name": "VPCNetworkID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCNetworkPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Patch (update) a VPC network owned by the logged in user.", "tags": [ "VPC Networks" ] } }, "/projects/{project_id}/networking/vpc-subnets": { "get": { "operationId": "listVPCSubnets", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listVpcSubnetsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all VPC subnets that belong to the logged in user.", "tags": [ "VPC Subnets" ] }, "post": { "description": "A successful response from this resource will contain information regarding the created subnet.", "operationId": "createVPCSubnet", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCSubnetPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/vpcSubnetPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new VPC subnet owned by the logged in user.", "tags": [ "VPC Subnets" ] } }, "/projects/{project_id}/networking/vpc-subnets/operations": { "get": { "description": "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.", "operationId": "listNetworkingVPCSubnetsOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "VPC Subnet Operations" ] } }, "/projects/{project_id}/networking/vpc-subnets/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getNetworkingVPCSubnetsOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "VPC Subnet Operations" ] } }, "/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteVPCSubnet", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_subnet_id", "required": true, "type": "string", "x-go-name": "VPCSubnetID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a VPC subnet owned by the logged in user.", "tags": [ "VPC Subnets" ] }, "get": { "operationId": "getVPCSubnet", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_subnet_id", "required": true, "type": "string", "x-go-name": "VPCSubnetID" } ], "responses": { "200": { "$ref": "#/responses/getVpcSubnetResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a VPC subnet that belongs to the logged in user.", "tags": [ "VPC Subnets" ] }, "patch": { "description": "A successful response from this resource will contain the async operation.", "operationId": "patchVPCSubnet", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "vpc_subnet_id", "required": true, "type": "string", "x-go-name": "VPCSubnetID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCSubnetPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Patch (update) a VPC subnet owned by the logged in user.", "tags": [ "VPC Subnets" ] } }, "/projects/{project_id}/quotas": { "get": { "operationId": "listProjectQuotas", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listProjectQuotasResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List max and currently used project quotas.", "tags": [ "Quotas" ] } }, "/projects/{project_id}/slurm/clusters": { "get": { "operationId": "listSlurmClusters", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "my-slurm-cluster", "in": "query", "items": { "type": "string" }, "name": "names", "type": "array", "x-go-name": "Names" }, { "example": "us-east-1", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "example": "running", "in": "query", "name": "state", "type": "string", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "items": { "type": "string" }, "name": "slurm_cluster_ids", "type": "array", "x-go-name": "SlurmClusterIDs" } ], "responses": { "200": { "$ref": "#/responses/listSlurmClustersResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about slurm clusters belonging to the project.", "tags": [ "Slurm Clusters" ] }, "post": { "description": "A successful response from this resource will contain the async operation ID.", "operationId": "createSlurmCluster", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/SlurmClusterPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new slurm cluster owned by the logged in user.", "tags": [ "Slurm Clusters" ] } }, "/projects/{project_id}/slurm/clusters/operations": { "get": { "description": "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.", "operationId": "listSlurmClusterOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations.", "tags": [ "Slurm Cluster Operations" ] } }, "/projects/{project_id}/slurm/clusters/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getSlurmClusterOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation.", "tags": [ "Slurm Cluster Operations" ] } }, "/projects/{project_id}/slurm/clusters/{slurm_cluster_id}": { "delete": { "operationId": "deleteSlurmCluster", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a slurm cluster that the logged in user owns.", "tags": [ "Slurm Clusters" ] }, "get": { "operationId": "getSlurmCluster", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" } ], "responses": { "200": { "$ref": "#/responses/getSlurmClusterResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a particular slurm cluster belonged to the project.", "tags": [ "Slurm Clusters" ] } }, "/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets": { "get": { "operationId": "listSlurmNodesets", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" }, { "example": "my-slurm-node-pool", "in": "query", "name": "name", "type": "string", "x-go-name": "Name" } ], "responses": { "200": { "$ref": "#/responses/listSlurmNodesetsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about slurm nodesets belonging to a project or cluster.", "tags": [ "Slurm Nodesets" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createSlurmNodeset", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/SlurmNodesetPostRequest" } }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new slurm nodeset owned by the logged in user.", "tags": [ "Slurm Nodesets" ] } }, "/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations": { "get": { "description": "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.", "operationId": "listSlurmNodesetsOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations.", "tags": [ "Slurm Nodeset Operations" ] } }, "/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getSlurmNodesetOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation.", "tags": [ "Slurm Nodeset Operations" ] } }, "/projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id}": { "delete": { "operationId": "deleteSlurmNodeset", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "nodeset_id", "required": true, "type": "string", "x-go-name": "NodesetID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a nodeset that the logged in user owns.", "tags": [ "Slurm Nodesets" ] }, "get": { "operationId": "getSlurmNodeset", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "nodeset_id", "required": true, "type": "string", "x-go-name": "NodesetID" } ], "responses": { "200": { "$ref": "#/responses/getSlurmNodesetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve information about a particular slurm nodeset belonging to the project.", "tags": [ "Slurm Nodesets" ] }, "patch": { "operationId": "updateSlurmNodeset", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "slurm_cluster_id", "required": true, "type": "string", "x-go-name": "SlurmClusterID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "nodeset_id", "required": true, "type": "string", "x-go-name": "NodesetID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/SlurmNodesetPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update a nodeset that the logged in user owns.", "tags": [ "Slurm Nodesets" ] } }, "/projects/{project_id}/storage/disks": { "get": { "description": "Size of disks will be in gibibytes (GiB)", "operationId": "listDisks", "parameters": [ { "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "query", "items": { "type": "string" }, "name": "disk_ids", "type": "array", "x-go-name": "DiskIds" }, { "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "in": "query", "items": { "type": "string" }, "name": "disk_names", "type": "array", "x-go-name": "DiskNames" }, { "in": "query", "name": "exclude_os", "type": "boolean", "x-go-name": "ExcludeOs" } ], "responses": { "200": { "$ref": "#/responses/listDisksResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all disks that belong to the logged in user.", "tags": [ "Disks" ] }, "post": { "description": "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.", "operationId": "createDisk", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/DisksPostRequestV1" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new disk owned by the logged in user.", "tags": [ "Disks" ] } }, "/projects/{project_id}/storage/disks/operations": { "get": { "description": "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.", "operationId": "listStorageDisksOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Disk Operations" ] } }, "/projects/{project_id}/storage/disks/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getStorageDisksOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "Disk Operations" ] } }, "/projects/{project_id}/storage/disks/{disk_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteDisk", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "disk_id", "required": true, "type": "string", "x-go-name": "DiskID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a disk owned by the logged in user.", "tags": [ "Disks" ] }, "get": { "description": "Size of disk will be in gibibytes (GiB)", "operationId": "getDisk", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "disk_id", "required": true, "type": "string", "x-go-name": "DiskID" } ], "responses": { "200": { "$ref": "#/responses/getDiskResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a disk that belongs to the logged in user.", "tags": [ "Disks" ] }, "patch": { "description": "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.", "operationId": "resizeDisk", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "disk_id", "required": true, "type": "string", "x-go-name": "DiskID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/DisksPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Resize a disk that the logged in user owns.", "tags": [ "Disks" ] } }, "/projects/{project_id}/storage/s3/buckets": { "get": { "operationId": "listS3Buckets", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_page_token", "type": "string", "x-go-name": "NextPageToken" }, { "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_page_token", "type": "string", "x-go-name": "PrevPageToken" }, { "default": 20, "example": 10, "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" } ], "responses": { "200": { "$ref": "#/responses/listS3BucketsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all S3 buckets that belong to the project.", "tags": [ "S3Buckets" ] }, "post": { "operationId": "createS3Bucket", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateS3BucketRequest" } } ], "responses": { "200": { "$ref": "#/responses/getS3BucketResponse", "description": "// Returns the created bucket" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new S3 bucket for a customer.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/count": { "get": { "operationId": "getS3BucketsCount", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getS3BucketsCountResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve the count of S3 buckets that belong to the project.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/quota": { "get": { "operationId": "getS3BucketsQuotaRequest", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/getS3BucketsQuotaResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve the quota information for S3 buckets that belong to the project.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}": { "delete": { "operationId": "deleteS3Bucket", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The name of the S3 bucket", "example": "my-awesome-bucket", "in": "path", "name": "bucket_name", "required": true, "type": "string", "x-go-name": "BucketName" } ], "responses": { "204": { "$ref": "#/responses/okEmpty" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deletes an S3 bucket for a customer.", "tags": [ "S3Buckets" ] }, "get": { "operationId": "getS3Bucket", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The name of the S3 bucket", "example": "my-awesome-bucket", "in": "path", "name": "bucket_name", "required": true, "type": "string", "x-go-name": "BucketName" } ], "responses": { "200": { "$ref": "#/responses/getS3BucketResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details for a specific S3 bucket.", "tags": [ "S3Buckets" ] }, "patch": { "operationId": "updateS3BucketTags", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The name of the S3 bucket", "example": "my-awesome-bucket", "in": "path", "name": "bucket_name", "required": true, "type": "string", "x-go-name": "BucketName" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/UpdateS3BucketTagsRequest" } } ], "responses": { "200": { "$ref": "#/responses/getS3BucketResponse", "description": "// Returns the updated bucket" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Sets the list of tags for a particular bucket.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock": { "post": { "operationId": "enableS3BucketObjectLock", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The name of the S3 bucket", "example": "my-awesome-bucket", "in": "path", "name": "bucket_name", "required": true, "type": "string", "x-go-name": "BucketName" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/EnableS3BucketObjectLockRequest" } } ], "responses": { "200": { "$ref": "#/responses/getS3BucketResponse", "description": "// Returns the updated bucket" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Irreversible operation to enable object lock for a bucket.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning": { "post": { "operationId": "enableS3BucketVersioning", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "The name of the S3 bucket", "example": "my-awesome-bucket", "in": "path", "name": "bucket_name", "required": true, "type": "string", "x-go-name": "BucketName" } ], "responses": { "200": { "$ref": "#/responses/getS3BucketResponse", "description": "// Returns the updated bucket" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Irreversible operation to enable versioning for a bucket.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/snapshots": { "get": { "description": "Size of snapshots will be in bytes.", "operationId": "listDiskSnapshots", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listDiskSnapshotsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about all disk snapshots that belong to the logged in user.", "tags": [ "Snapshots" ] }, "post": { "description": "A successful response from this resource will contain the async operation.", "operationId": "createDiskSnapshot", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/DiskSnapshotPostRequestV1" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new snapshot for a disk owned by the logged in user.", "tags": [ "Snapshots" ] } }, "/projects/{project_id}/storage/snapshots/operations": { "get": { "description": "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.", "operationId": "listStorageSnapshotsOperations", "parameters": [ { "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "in": "query", "name": "resource_id", "type": "string", "x-go-name": "ResourceID" }, { "example": [ "IN_PROGRESS" ], "in": "query", "items": { "type": "string" }, "name": "state", "type": "array", "x-go-name": "State" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of asynchronous operations", "tags": [ "Snapshot Operations" ] } }, "/projects/{project_id}/storage/snapshots/operations/{operation_id}": { "get": { "description": "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.", "operationId": "getStorageSnapshotsOperation", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "operation_id", "required": true, "type": "string", "x-go-name": "OperationID" } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Get status of a single asynchronous operation", "tags": [ "Snapshot Operations" ] } }, "/projects/{project_id}/storage/snapshots/{snapshot_id}": { "delete": { "description": "A successful response from this resource will contain the async operation.", "operationId": "deleteDiskSnapshot", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "snapshot_id", "required": true, "type": "string", "x-go-name": "SnapshotID" } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a disk snapshot owned by the logged in user.", "tags": [ "Snapshots" ] }, "get": { "description": "Size of snapshot will be in bytes.", "operationId": "getDiskSnapshot", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "snapshot_id", "required": true, "type": "string", "x-go-name": "SnapshotID" } ], "responses": { "200": { "$ref": "#/responses/getSnapshotResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve details about a disk snapshot that belongs to the logged in user.", "tags": [ "Snapshots" ] }, "patch": { "description": "A successful response from this resource will contain the updated snapshot.", "operationId": "renameDiskSnapshot", "parameters": [ { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "snapshot_id", "required": true, "type": "string", "x-go-name": "SnapshotID" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/DiskSnapshotPatchRequest" } } ], "responses": { "200": { "$ref": "#/responses/syncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Rename a disk snapshot owned by the logged in user.", "tags": [ "Snapshots" ] } }, "/storage/object-storage/supported-locations": { "get": { "operationId": "listS3SupportedLocations", "responses": { "200": { "$ref": "#/responses/listS3SupportedLocationsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "List locations where object storage (S3) is enabled.", "tags": [ "S3Buckets" ] } }, "/users/identities": { "get": { "operationId": "getUserIdentity", "responses": { "200": { "$ref": "#/responses/usersGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve user details for the logged in user.", "tags": [ "Identities" ] }, "put": { "description": "A successful response from this resource wil contain the updated user details.", "operationId": "updateUserIdentity", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/IdentityPutRequest" } } ], "responses": { "200": { "$ref": "#/responses/usersPutResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update user details for the logged in user.", "tags": [ "Identities" ] } }, "/users/limited-usage-api-key": { "delete": { "operationId": "deleteLimitedUsageAPIKey", "parameters": [ { "example": "WTUzcGibQ82y9_01h4MCdQ", "in": "query", "name": "key_id", "required": true, "type": "string", "x-go-name": "KeyID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete a Limited Usage API Key owned by the logged in user.", "tags": [ "LimitedUsageAPIKey" ] }, "get": { "operationId": "getLimitedUsageAPIKeys", "responses": { "200": { "$ref": "#/responses/limitedUsageAPIKeyGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve all active/expired Limited Usage API Keys for the logged in user and their usage types.", "tags": [ "LimitedUsageAPIKey" ] }, "post": { "description": "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.", "operationId": "createLimitedUsageAPIKey", "parameters": [ { "enum": [ "inference", "observability" ], "in": "query", "name": "usage", "required": true, "type": "string", "x-go-name": "Usage" }, { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateLimitedUsageAPIKeyRequest" } } ], "responses": { "200": { "$ref": "#/responses/limitedUsageAPIKeyPostResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new limited usage api key owned by the logged in user, of type specified by usage parameter.", "tags": [ "LimitedUsageAPIKey" ] } }, "/users/ssh-keys": { "delete": { "operationId": "deleteSSHKey", "parameters": [ { "example": "6e28cad3-98e6-47a9-a9fc-1cd83a7f25c1", "in": "query", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an SSH public key registered to the logged in user.", "tags": [ "SSH Keys" ] }, "get": { "operationId": "getSSHKeys", "responses": { "200": { "$ref": "#/responses/getSSHKeysResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve the list of SSH public keys registered to the logged in user.", "tags": [ "SSH Keys" ] }, "post": { "description": "A successful response from this resource wil contain the created SSH key details.", "operationId": "createSSHKey", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateSSHKeyRequest" } } ], "responses": { "200": { "$ref": "#/responses/createSSHKeysResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Register a new SSH public key to the logged in user.", "tags": [ "SSH Keys" ] } }, "/users/sso-enforcement": { "patch": { "operationId": "updateUserSSOEnforcement", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserSSOEnforcementRequest" } } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Update SSO for a user.", "tags": [ "SSO" ] } }, "/users/tokens": { "delete": { "operationId": "deleteToken", "parameters": [ { "example": "WTUzcGibQ82y9_01h4MCdQ", "in": "query", "name": "access_key", "required": true, "type": "string", "x-go-name": "AccessKey" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Delete an API token owned by the logged in user.", "tags": [ "Tokens" ] }, "get": { "operationId": "getTokens", "responses": { "200": { "$ref": "#/responses/tokensGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Retrieve all active/expired API tokens for the logged in user.", "tags": [ "Tokens" ] }, "post": { "description": "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.", "operationId": "createToken", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/CreateTokenRequest" } } ], "responses": { "200": { "$ref": "#/responses/tokensPostResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Create a new token owned by the logged in user.", "tags": [ "Tokens" ] } } }, "definitions": { "AggregateMetrics": { "properties": { "cpu_utilization_avg": { "description": "Average CPU utilization (%) across VMs in this group.", "example": 0, "format": "double", "type": "number", "x-go-name": "CPUUtilizationAvg" }, "gpu_utilization_avg": { "description": "Average GPU utilization (%) across VMs in this group.", "example": 82, "format": "double", "type": "number", "x-go-name": "GPUUtilizationAvg" }, "p95_power_watts": { "description": "P95 GPU power draw in watts across VMs in this group.", "example": 425, "format": "double", "type": "number", "x-go-name": "P95PowerWatts" }, "p95_temperature_celsius": { "description": "P95 GPU temperature in Celsius across VMs in this group.", "example": 81, "format": "double", "type": "number", "x-go-name": "P95TemperatureCelsius" } }, "title": "AggregateMetrics contains pre-computed metric aggregates for a pod or cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ApplyRoleBindingRequest": { "properties": { "bindings_to_create": { "items": { "$ref": "#/definitions/RoleBindingInput" }, "type": "array", "x-go-name": "BindingsToCreate" }, "bindings_to_delete": { "items": { "type": "string" }, "type": "array", "x-go-name": "BindingsToDelete" } }, "required": [ "bindings_to_create", "bindings_to_delete" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AsyncOperationResponse": { "properties": { "operation": { "$ref": "#/definitions/Operation" } }, "required": [ "operation" ], "title": "AsyncOperationResponse is the response type for endpoints which return async operations.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/schemas/utils/fetch" }, "AttachedDiskV1": { "properties": { "attachment_type": { "example": "os | data", "type": "string", "x-go-name": "AttachmentType" }, "block_size": { "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "location": { "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "mode": { "example": "read-write | read-only", "type": "string", "x-go-name": "Mode" }, "name": { "example": "my-disk", "type": "string", "x-go-name": "Name" }, "serial_number": { "example": "96FD14FDBCF7E21E8EC", "type": "string", "x-go-name": "SerialNumber" }, "size": { "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "example": "persistent-ssd", "type": "string", "x-go-name": "Type" }, "updated_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "id", "name", "type", "size", "location", "block_size", "created_at", "updated_at", "serial_number", "attachment_type", "mode" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AuditLogsGetResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/LogEntry" }, "type": "array", "x-go-name": "Items" }, "next_page_token": { "description": "Base64 encoded token representing the starting of the next page of log entry.\nEmpty if currently on the last page.", "example": "bXktbGFzdC12bQ", "type": "string", "x-go-name": "NextPageToken" }, "prev_page_token": { "description": "Base64 encoded token representing the starting previous page of log entry.\nEmpty if currently on the first page.", "example": "bXktZmlyc3Qtdm0", "type": "string", "x-go-name": "PrevPageToken" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AuthCheckGetResponse": { "properties": { "continue_to": { "$ref": "#/definitions/ContinueToEnum" }, "providers": { "items": { "$ref": "#/definitions/AuthCheckProvider" }, "type": "array", "x-go-name": "Providers" } }, "required": [ "continue_to" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AuthCheckProvider": { "properties": { "id": { "type": "string", "x-go-name": "ID" }, "issuer_uri": { "type": "string", "x-go-name": "IssuerURI" }, "org_name": { "type": "string", "x-go-name": "OrgName" } }, "required": [ "id", "issuer_uri", "org_name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AutoClustersConfigResponse": { "properties": { "fallback_to_project_reservations": { "description": "Whether to use project's unused reservations as fallback when Crusoe spares are exhausted.", "example": false, "type": "boolean", "x-go-name": "FallbackToProjectReservations" }, "remediation_configs": { "description": "Per-issue configuration showing defaults and any user overrides.", "items": { "$ref": "#/definitions/RemediationConfig" }, "type": "array", "x-go-name": "RemediationConfigs" }, "updated_at": { "description": "When this config was last updated.", "example": "2025-01-15T10:30:00Z", "format": "date-time", "type": "string", "x-go-name": "UpdatedAt" } }, "title": "AutoClustersConfigResponse represents the cluster configuration in the API response.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "AutoRemediation": { "description": "example: REPLACE_NODE\nenum: REPLACE_NODE,OFF", "title": "AutoRemediation represents the auto remediation action type for an issue.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Backend": { "properties": { "ip": { "description": "IP address of the backend server.", "example": "192.168.1.2", "type": "string", "x-go-name": "IP" }, "port": { "description": "Port on which the backend server listens.", "example": 8080, "format": "int64", "type": "integer", "x-go-name": "Port" }, "status": { "description": "Status of the backend server.", "example": "ONLINE", "type": "string", "x-go-name": "Status" } }, "required": [ "ip", "port", "status" ], "title": "Backend defines the backend server configuration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Billing": { "properties": { "balance": { "example": "$1000.00", "type": "string", "x-go-name": "Balance" }, "billing_method": { "enum": [ "stripe", "manual" ], "type": "string", "x-go-name": "BillingMethod" }, "delinquent": { "example": false, "type": "boolean", "x-go-name": "Delinquent" }, "has_valid_payment_method": { "example": true, "type": "boolean", "x-go-name": "HasValidPaymentMethod" } }, "required": [ "balance", "has_valid_payment_method", "delinquent" ], "title": "Billing contains information about the billing status of an organization.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAddress": { "properties": { "address_line1": { "example": "123 Main Street", "type": "string", "x-go-name": "AddressLine1" }, "address_line2": { "example": "Suite 400", "type": "string", "x-go-name": "AddressLine2" }, "city": { "example": "Denver", "type": "string", "x-go-name": "City" }, "country": { "example": "US", "type": "string", "x-go-name": "Country" }, "postal_code": { "example": "80202", "type": "string", "x-go-name": "PostalCode" }, "state_or_region": { "example": "Colorado", "type": "string", "x-go-name": "StateOrRegion" } }, "required": [ "address_line1", "city", "state_or_region", "postal_code", "country" ], "title": "BillingAddress contains sensitive information related to the billing address for an entity.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlert": { "properties": { "active": { "description": "Whether the billing alert is active or paused.", "example": true, "type": "boolean", "x-go-name": "Active" }, "created_at": { "description": "The date at which the billing alert was created.", "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "CreatedAt" }, "custom_interval_days": { "description": "Custom interval in days when frequency is custom.", "example": 14, "format": "int32", "type": "integer", "x-go-name": "CustomIntervalDays" }, "customer_ids": { "description": "The custom recipients belonging to the billing alert.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479, 1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6", "items": { "type": "string" }, "type": "array", "x-go-name": "CustomerIDs" }, "expiration_date": { "description": "The date at which the billing alert expires for a billing alert with custom date range.", "example": "2025-08-14T09:00:35Z", "type": "string", "x-go-name": "ExpirationDate" }, "frequency": { "description": "The frequency at which the billing alert is triggered.", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly", "custom" ], "type": "string", "x-go-name": "Frequency" }, "id": { "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "type": "string", "x-go-name": "ID" }, "name": { "description": "The name of the billing alert.", "example": "billing alert 1", "type": "string", "x-go-name": "Name" }, "object_id": { "description": "The object ID associated with the scope of the billing alert if the scope is product line or project.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ObjectID" }, "percentage": { "description": "The percentage of the threshold at which the user is alerted.", "example": 50, "format": "int32", "type": "integer", "x-go-name": "Percentage" }, "percentage_at": { "description": "The percentage of the threshold that has been billed during the current billing time period.", "example": 50, "format": "int32", "type": "integer", "x-go-name": "PercentageAt" }, "recipients": { "description": "The recipient group of the billing alert (e.g. admins, editors, viewers).", "items": { "enum": [ "admins", "editors", "viewers" ], "type": "string" }, "type": "array", "x-go-name": "Recipients" }, "repeating": { "description": "Whether the billing alert repeats every frequency period.", "example": true, "type": "boolean", "x-go-name": "Repeating" }, "scope": { "description": "The scope of the billing alert (e.g. organization, project, product line).", "enum": [ "organization", "product_line", "project" ], "type": "string", "x-go-name": "Scope" }, "start_date": { "description": "The date at which the billing alert starts for a billing alert with custom date range.", "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "StartDate" }, "threshold": { "description": "The quantity of resources that can be used before the alert is triggered, along with the currency.", "example": 105050.5, "format": "double", "type": "number", "x-go-name": "Threshold" } }, "required": [ "id", "frequency", "threshold", "repeating", "scope", "percentage", "name", "percentage_at", "active", "created_at" ], "title": "Billing Alert contains information about a customer billing alert.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertGetResponse": { "properties": { "item": { "$ref": "#/definitions/BillingAlert" } }, "required": [ "item" ], "title": "BillingAlertGetResponse is a response type for GET requests to the billing alert endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertListResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/BillingAlert" }, "type": "array", "x-go-name": "Items" }, "next_page_token": { "description": "Base64 encoded token representing the next page of billing alerts.\nEmpty if currently on the last page.", "example": "bXktbGFzdC1ub2Rl", "type": "string", "x-go-name": "NextPageToken" }, "prev_page_token": { "description": "Base64 encoded token representing the previous page of billing alerts.\nEmpty if currently on the first page.", "example": "bXktZmlyc3Qtbm9kZQ", "type": "string", "x-go-name": "PrevPageToken" } }, "required": [ "items" ], "title": "BillingAlertListResponse is a response type for GET requests to the billing alert endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertPostRequest": { "properties": { "custom_interval_days": { "description": "Custom interval in days when frequency is custom.", "example": 14, "format": "int32", "type": "integer", "x-go-name": "CustomIntervalDays" }, "customer_ids": { "description": "The custom recipients belonging to the billing alert.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479, 1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6", "items": { "type": "string" }, "type": "array", "x-go-name": "CustomerIDs" }, "expiration_date": { "description": "The date at which the billing alert expires.", "example": "2025-08-14T09:00:35Z", "type": "string", "x-go-name": "ExpirationDate" }, "frequency": { "description": "The frequency at which the billing alert is triggered.", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly", "custom" ], "type": "string", "x-go-name": "Frequency" }, "name": { "description": "The name of the billing alert.", "example": "billing alert 1", "type": "string", "x-go-name": "Name" }, "object_id": { "description": "The object ID associated with the scope of the billing alert if the scope is product line or project.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ObjectID" }, "percentage": { "description": "The percentage of the threshold at which the user is alerted.", "example": 80, "format": "int32", "type": "integer", "x-go-name": "Percentage" }, "recipients": { "description": "The recipient group of the billing alert (e.g. admins, editors, viewers).", "items": { "enum": [ "admins", "editors", "viewers" ], "type": "string" }, "type": "array", "x-go-name": "Recipients" }, "repeating": { "description": "Whether the billing alert repeats every frequency period.", "example": true, "type": "boolean", "x-go-name": "Repeating" }, "scope": { "description": "The scope of the billing alert (e.g., organization, project, product line).", "enum": [ "organization", "product_line", "project" ], "type": "string", "x-go-name": "Scope" }, "start_date": { "description": "The date at which the billing alert starts for a billing alert with custom date range.", "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "StartDate" }, "threshold": { "description": "The quantity of resources that can be used before the alert is triggered, along with the currency.", "example": 105050.5, "format": "double", "type": "number", "x-go-name": "Threshold" } }, "required": [ "frequency", "threshold", "repeating", "scope", "percentage", "name" ], "title": "BillingAlertPostRequest defines the specifications of the billing alert to be created.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertPostResponse": { "properties": { "item": { "$ref": "#/definitions/BillingAlert" } }, "required": [ "item" ], "title": "BillingAlertPostResponse is the response type for PUT requests to the billing alert endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertPutRequest": { "properties": { "active": { "description": "Whether the billing alert is active or paused.", "example": true, "type": "boolean", "x-go-name": "Active" }, "custom_interval_days": { "description": "Custom interval in days when frequency is custom.", "example": 14, "format": "int32", "type": "integer", "x-go-name": "CustomIntervalDays" }, "customer_ids": { "description": "The custom recipients belonging to the billing alert.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479, 1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6", "items": { "type": "string" }, "type": "array", "x-go-name": "CustomerIDs" }, "expiration_date": { "description": "The date at which the billing alert expires for a billing alert with custom date range.", "example": "2025-08-14T09:00:35Z", "type": "string", "x-go-name": "ExpirationDate" }, "frequency": { "description": "The frequency at which the billing alert is triggered.", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly", "custom" ], "type": "string", "x-go-name": "Frequency" }, "name": { "description": "The name of the billing alert.", "example": "'billing alert 1'", "type": "string", "x-go-name": "Name" }, "object_id": { "description": "The object ID associated with the scope of the billing alert if the scope is product line or project.", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ObjectID" }, "percentage": { "description": "The percentage of the threshold at which the user is alerted.", "example": 80, "format": "int32", "type": "integer", "x-go-name": "Percentage" }, "recipients": { "description": "The recipient group of the billing alert (e.g. admins, editors, viewers).", "items": { "enum": [ "admins", "editors", "viewers" ], "type": "string" }, "type": "array", "x-go-name": "Recipients" }, "repeating": { "description": "Whether the billing alert repeats every frequency period.", "example": true, "type": "boolean", "x-go-name": "Repeating" }, "scope": { "description": "The scope of the billing alert (e.g. organization, project, product line).", "enum": [ "organization", "product_line", "project" ], "type": "string", "x-go-name": "Scope" }, "start_date": { "description": "The date at which the billing alert starts for a billing alert with custom date range.", "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "StartDate" }, "threshold": { "description": "The quantity of resources that can be used before the alert is triggered, along with the currency.", "example": 105050.5, "format": "double", "type": "number", "x-go-name": "Threshold" } }, "required": [ "frequency", "threshold", "repeating", "scope", "percentage", "name" ], "title": "BillingAlertPutRequest defines the specifications of the billing alert to be created.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingAlertPutResponse": { "properties": { "item": { "$ref": "#/definitions/BillingAlert" } }, "required": [ "item" ], "title": "BillingAlertPutResponse is the response type for PUT requests to the billing alert endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingCostData": { "properties": { "data": { "items": { "$ref": "#/definitions/BillingCostDatum" }, "type": "array", "x-go-name": "Data" }, "last_updated": { "type": "string", "x-go-name": "LastUpdated" } }, "required": [ "data" ], "title": "UsageByProjectGetResponse is the response type for GET requests to the usage.usageByProject endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingCostDatum": { "properties": { "billable_metric": { "example": "\"gpu-hours\"", "type": "string", "x-go-name": "BillableMetric" }, "cost": { "example": 12.34, "format": "double", "type": "number", "x-go-name": "Cost" }, "date": { "example": "\"2022-07-01\"", "type": "string", "x-go-name": "Date" }, "project_id": { "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"", "type": "string", "x-go-name": "ProjectID" }, "quantity": { "example": 2.123, "format": "double", "type": "number", "x-go-name": "Quantity" }, "region": { "example": "\"us-northcentral1\"", "type": "string", "x-go-name": "Region" }, "resource_type": { "example": "\"a40.1x\"", "type": "string", "x-go-name": "ResourceType" }, "unit_price": { "example": 1.23, "format": "double", "type": "number", "x-go-name": "UnitPrice" } }, "required": [ "resource_type", "project_id", "region", "date", "quantity", "billable_metric" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingIntentGetResponse": { "properties": { "intent": { "example": "https://billing.stripe.com/session/{SESSION_SECRET}", "type": "string", "x-go-name": "Intent" } }, "required": [ "intent" ], "title": "BillingIntentGetResponse is the response type for Get requests to the entities/billing/intent endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingResourceDatum": { "properties": { "billable_metric": { "example": "\"instance-hours\"", "type": "string", "x-go-name": "BillableMetric" }, "date": { "example": "\"2025-07-04\"", "type": "string", "x-go-name": "Date" }, "project_id": { "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"", "type": "string", "x-go-name": "ProjectID" }, "project_name": { "example": "\"Apollo 11\"", "type": "string", "x-go-name": "ProjectName" }, "quantity": { "example": "\"2.123\"", "type": "string", "x-go-name": "Quantity" }, "region": { "example": "\"us-northcentral1\"", "type": "string", "x-go-name": "Region" }, "resource_id": { "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"", "type": "string", "x-go-name": "ResourceID" }, "resource_name": { "example": "\"My H200\"", "type": "string", "x-go-name": "ResourceName" }, "resource_type": { "example": "\"h200-141gb-sxm-ib.8x\"", "type": "string", "x-go-name": "ResourceType" }, "total_price": { "example": "\"12.34\"", "type": "string", "x-go-name": "TotalPrice" }, "unit_price": { "example": "\"1.23\"", "type": "string", "x-go-name": "UnitPrice" } }, "required": [ "date", "project_name", "project_id", "resource_name", "resource_id", "resource_type", "region", "quantity", "billable_metric" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BillingResourcesResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/BillingResourceDatum" }, "type": "array", "x-go-name": "Data" } }, "required": [ "data" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BulkCreateLocationInfo": { "properties": { "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartitionID" }, "location": { "description": "The location to create the VMs in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "subnet_id": { "description": "The 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.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "The ID of the Infiniband or RoCE partition to create the VMs in, if a transport type was specified.\nMust be in the same location as the VMs.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "TransportPartitionID" } }, "required": [ "location" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "BulkInstancePostRequestV1": { "properties": { "count": { "description": "The number of VMs to create. If multiple locations are specified, this will be the number of VMs\ncreated in each location.", "example": 6, "format": "int64", "type": "integer", "x-go-name": "Count" }, "crusoe_watch_agent_install_mode": { "description": "optional field to specify the Crusoe Watch Agent installation mode (defaults to \"docker\")", "enum": [ "docker", "native" ], "type": "string", "x-go-name": "CrusoeWatchAgentInstallMode" }, "install_crusoe_watch_agent": { "description": "optional field to control whether the Crusoe Watch Agent is installed (defaults to true)", "type": "boolean", "x-go-name": "InstallCrusoeWatchAgent", "x-nullable": true }, "instance_group_id": { "description": "The ID of the instance group the VMs will be created in.", "example": "cda562c4-6162-4565-95f3-ce06a8220c07", "type": "string", "x-go-name": "InstanceGroupID" }, "instance_template": { "$ref": "#/definitions/InstanceTemplatePostRequestV1" }, "instance_template_id": { "description": "The ID of the instance template to use for creating the VMs.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "InstanceTemplateID" }, "locations": { "description": "The locations to create the VMs in. This will override any location specified in the instance template.", "items": { "$ref": "#/definitions/BulkCreateLocationInfo" }, "type": "array", "x-go-name": "Locations" }, "name_prefix": { "description": "The name prefix for the VMs to be created. E.g. \"my-vm\" will create VMs with names \"my-vm-1\",", "example": "my-vm", "type": "string", "x-go-name": "NamePrefix" }, "nvlink_domain_id": { "description": "optional field for specifying an NVLink domain ID", "type": "string", "x-go-name": "NvlinkDomainID" }, "reservation_specification": { "$ref": "#/definitions/ReservationSpecification" } }, "required": [ "name_prefix", "count" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CCRTokenRequest": { "properties": { "alias": { "type": "string", "x-go-name": "Alias" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CCRTokenResponse": { "properties": { "token": { "type": "string", "x-go-name": "Token" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CapacityV1": { "properties": { "location": { "example": "us-east", "type": "string", "x-go-name": "Location" }, "num_slices": { "description": "NumSlices is the number of slices that make up the resource", "example": 1, "format": "uint32", "type": "integer", "x-go-name": "NumSlices" }, "quantity": { "example": 8, "format": "uint32", "type": "integer", "x-go-name": "Quantity" }, "quota_type": { "description": "QuotaType is the enum string for the quota type consumed by this resource", "example": "PROJECT_QUOTA_TYPE_MAXIMUM_VM_SLICES_VCPU_6_MEM_60_A40_PCIE_48GB_1", "type": "string", "x-go-name": "QuotaType" }, "type": { "example": "a100.2x", "type": "string", "x-go-name": "Type" } }, "required": [ "location", "quantity" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CardTransaction": { "properties": { "amount": { "format": "int64", "type": "integer", "x-go-name": "Amount" }, "created": { "type": "string", "x-go-name": "Created" }, "currency": { "type": "string", "x-go-name": "Currency" }, "failure_message": { "type": "string", "x-go-name": "FailureMessage" }, "id": { "type": "string", "x-go-name": "ID" }, "invoice_url": { "type": "string", "x-go-name": "InvoiceURL" }, "payment_method": { "$ref": "#/definitions/CardTransactionPaymentMethod" }, "receipt_url": { "type": "string", "x-go-name": "ReceiptURL" }, "resources": { "items": { "type": "string" }, "type": "array", "x-go-name": "Resources" }, "status": { "type": "string", "x-go-name": "Status" } }, "title": "CardTransaction represents a single Stripe charge for an org.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CardTransactionPaymentMethod": { "properties": { "brand": { "type": "string", "x-go-name": "Brand" }, "last4": { "type": "string", "x-go-name": "Last4" } }, "title": "CardTransactionPaymentMethod holds card details for a charge.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CcrImage": { "properties": { "manifest_count": { "format": "int64", "type": "integer", "x-go-name": "ManifestCount" }, "name": { "type": "string", "x-go-name": "Name" }, "pull_count": { "format": "int64", "type": "integer", "x-go-name": "PullCount" }, "updated_at": { "format": "date-time", "type": "string", "x-go-name": "LastUpdatedTimestampUTC" }, "url": { "type": "string", "x-go-name": "URL" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ClusterOverview": { "properties": { "cluster_id": { "description": "Cluster UUID. Empty string for standalone VMs.", "example": "f2d6f4ed-5dd3-4bc7-8765-22f1d7a05877", "type": "string", "x-go-name": "ClusterID" }, "cluster_name": { "description": "Cluster display name. Empty string for standalone VMs.", "example": "cmk-training-a", "type": "string", "x-go-name": "ClusterName" }, "metrics": { "$ref": "#/definitions/AggregateMetrics" }, "vms": { "description": "VMs in this cluster.", "items": { "$ref": "#/definitions/VMDetail" }, "type": "array", "x-go-name": "VMs" } }, "required": [ "vms" ], "title": "ClusterOverview contains the data for a single cluster within a pod (IB) or at the top level (non-IB).", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ContinueToEnum": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateLimitedUsageAPIKeyRequest": { "properties": { "alias": { "example": "token1", "type": "string", "x-go-name": "Alias" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "project_id": { "description": "Optional project ID the token is scoped to", "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ProjectID" } }, "required": [ "expires_at" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateS3BucketRequest": { "properties": { "location": { "description": "Location of the bucket.", "example": "us-eaststaging1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the bucket.", "example": "my-new-bucket", "type": "string", "x-go-name": "Name" }, "object_lock_enabled": { "description": "Whether object lock is enabled or not.", "example": false, "type": "boolean", "x-go-name": "ObjectLockEnabled" }, "retention_period": { "description": "How long objects are retained.", "example": 30, "format": "int32", "type": "integer", "x-go-name": "RetentionPeriod" }, "retention_period_unit": { "$ref": "#/definitions/S3RetentionPeriodUnit" }, "tags": { "additionalProperties": { "type": "string" }, "description": "List of tags for this bucket.", "type": "object", "x-go-name": "Tags" }, "versioning_state": { "$ref": "#/definitions/S3VersioningState" } }, "required": [ "name", "location" ], "title": "CreateS3BucketRequest is the request body for creating a new S3 bucket.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateS3KeyRequest": { "properties": { "alias": { "description": "Alias for the access key.", "example": "my-service-account", "type": "string", "x-go-name": "Alias" }, "expire_at": { "description": "Formatted timestamp for when the access keys expire.", "example": "2022-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpireAt" } }, "title": "CreateS3KeyRequest is the request body for creating a new S3 access key for a user.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateS3KeyResponse": { "description": "It includes the one-time-only secret key.", "properties": { "access_key_id": { "description": "The Access Key ID for S3 operations.", "example": "S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab", "type": "string", "x-go-name": "AccessKeyID" }, "expire_at": { "description": "Formatted timestamp for when the user access key expire.", "example": "2022-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpireAt" }, "secret_key": { "description": "The secret key. This is only shown once.", "example": "K7i+q0...", "type": "string", "x-go-name": "SecretKey" } }, "required": [ "access_key_id", "secret_key" ], "title": "CreateS3KeyResponse is the response body after creating a new S3 access key for a user.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSCIMIntegrationRequestBody": { "properties": { "identity_provider": { "example": "okta", "type": "string", "x-go-name": "IdentityProvider" }, "name": { "example": "Okta SCIM Integration", "type": "string", "x-go-name": "Name" }, "token": { "$ref": "#/definitions/CreateSCIMTokenRequestBody" } }, "required": [ "name", "identity_provider" ], "title": "CreateSCIMIntegrationRequestBody is the JSON request body for creating a SCIM integration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSCIMIntegrationResponse": { "description": "optionally including an inline token when requested.", "properties": { "api_key_info": { "$ref": "#/definitions/GeneratedLimitedUsageAPIKey" }, "integration": { "$ref": "#/definitions/SCIMIntegrationResponse" } }, "required": [ "integration" ], "title": "CreateSCIMIntegrationResponse is the JSON response for creating a SCIM integration,", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSCIMTokenRequestBody": { "properties": { "alias": { "example": "my-scim-token", "type": "string", "x-go-name": "Alias" }, "expires_at": { "example": "2025-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" } }, "required": [ "alias", "expires_at" ], "title": "CreateSCIMTokenRequestBody is the JSON request body for creating a SCIM integration token.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSSHKeyRequest": { "properties": { "name": { "example": "John Doe", "type": "string", "x-go-name": "Name" }, "public_key": { "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E", "type": "string", "x-go-name": "PublicKey" } }, "required": [ "name", "public_key" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSSHKeyResponse": { "properties": { "ssh_key": { "$ref": "#/definitions/SSHKey" } }, "required": [ "ssh_key" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateSSOProviderRequest": { "properties": { "client_id": { "type": "string", "x-go-name": "ClientID" }, "email_domains": { "items": { "type": "string" }, "type": "array", "x-go-name": "EmailDomains" }, "issuer_uri": { "type": "string", "x-go-name": "IssuerURI" } }, "required": [ "client_id", "issuer_uri", "email_domains" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateTokenRequest": { "properties": { "alias": { "example": "token1", "type": "string", "x-go-name": "Alias" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" } }, "required": [ "expires_at" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CredentialsResponse": { "properties": { "credentials": { "description": "Credentials will be deprecated", "items": { "type": "string" }, "type": "array", "x-go-name": "Credentials" }, "credentials_map": { "additionalProperties": { "$ref": "#/definitions/IdentityCredential" }, "type": "object", "x-go-name": "CredentialsMap" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Credit": { "properties": { "amount": { "example": "\"12.34\"", "type": "string", "x-go-name": "Amount" }, "balance": { "example": "\"12.34\"", "type": "string", "x-go-name": "Balance" }, "date": { "example": "\"2025-02-14T12:00:00Z\"", "type": "string", "x-go-name": "Date" } }, "required": [ "amount", "balance", "date" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CustomImageEditTagsRequest": { "properties": { "tags": { "example": "[latest]", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" } }, "required": [ "tags" ], "title": "CustomImagesEditTagsRequest is the request type for PATCH requests to the /custom-images{id}/edit-tags endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CustomImagePatchRequest": { "properties": { "description": { "example": "\"Ubuntu is the modern, open source operating system on Linux for ...\"", "type": "string", "x-go-name": "Description" } }, "required": [ "description" ], "title": "CustomImagePatchRequest is the request type for PATCH requests to the /custom-images/{id} endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CustomImagePostRequest": { "properties": { "DiskID": { "example": "182d01c7-d3fe-424b-af13-8775aeead194", "type": "string" }, "description": { "example": "Ubuntu is the modern, open source operating system on Linux for ...", "type": "string", "x-go-name": "Description" }, "name": { "example": "ubuntu", "type": "string", "x-go-name": "Name" }, "tags": { "example": "22.04,latest", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" } }, "required": [ "DiskID", "name" ], "title": "CustomImagePostRequest is the request type for POST requests to the /custom-images endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DesiredCount": { "properties": { "value": { "format": "int64", "type": "integer", "x-go-name": "Value" } }, "title": "DesiredCount defines a wrapper struct for the desired count of VMs in the instance group.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiagnosticResponse": { "properties": { "already_pending": { "example": false, "type": "boolean", "x-go-name": "AlreadyPending" }, "id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" } }, "required": [ "id", "already_pending" ], "title": "DiagnosticResponse is the REST response for creating a diagnostic.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiagnosticStatusResponse": { "properties": { "created_at": { "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "CreatedAt" }, "status": { "example": "completed", "type": "string", "x-go-name": "Status" }, "type": { "example": "nvidia_bug_report", "type": "string", "x-go-name": "Type" }, "updated_at": { "example": "2024-01-15T10:35:00Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "type", "status", "created_at", "updated_at" ], "title": "DiagnosticStatusResponse is the REST response for diagnostic status.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskAttachment": { "properties": { "attachment_type": { "enum": [ "os", "data" ], "example": "data", "type": "string", "x-go-name": "AttachmentType" }, "disk_id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "DiskID" }, "mode": { "enum": [ "read-only", "read-write" ], "example": "read-only, read-write", "type": "string", "x-go-name": "Mode" } }, "required": [ "disk_id", "mode", "attachment_type" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskModeType": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskSnapshot": { "properties": { "block_size": { "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "created_from": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "CreatedFrom" }, "id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "name": { "example": "my-snapshot", "type": "string", "x-go-name": "Name" }, "size": { "example": "10457 bytes", "type": "string", "x-go-name": "Size" }, "updated_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "id", "created_at", "updated_at", "created_from", "size", "block_size" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskSnapshotPatchRequest": { "properties": { "name": { "example": "my-snapshot", "type": "string", "x-go-name": "Name" } }, "required": [ "name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskSnapshotPostRequestV1": { "properties": { "disk_id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "DiskID" }, "name": { "example": "my-snapshot-1", "type": "string", "x-go-name": "Name" } }, "required": [ "disk_id", "name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskTemplate": { "properties": { "size": { "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "enum": [ "persistent-ssd", "shared-volume" ], "example": "persistent-ssd", "type": "string", "x-go-name": "Type" } }, "required": [ "size", "type" ], "title": "DiskTemplate defines a disk to create for each VM during bulk VM creation.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskV1": { "properties": { "attached_to": { "items": { "$ref": "#/definitions/VMAttachmentV1" }, "type": "array", "x-go-name": "AttachedTo" }, "block_size": { "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "dns_name": { "example": "nfs.crusoecloudcompute.com", "type": "string", "x-go-name": "DNSName" }, "id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "location": { "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-disk", "type": "string", "x-go-name": "Name" }, "serial_number": { "example": "96FD14FDBCF7E21E8EC", "type": "string", "x-go-name": "SerialNumber" }, "size": { "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "example": "persistent-ssd", "type": "string", "x-go-name": "Type" }, "updated_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "vips": { "example": [ "1.2.3.4", "1.2.3.8" ], "items": { "type": "string" }, "type": "array", "x-go-name": "VIPAddrs" } }, "required": [ "id", "name", "type", "size", "location", "block_size", "created_at", "updated_at", "serial_number", "attached_to" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DisksPatchRequest": { "properties": { "size": { "example": "10GiB", "type": "string", "x-go-name": "Size" } }, "required": [ "size" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DisksPostRequestV1": { "properties": { "block_size": { "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "location": { "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-disk", "type": "string", "x-go-name": "Name" }, "size": { "example": "10GiB", "type": "string", "x-go-name": "Size" }, "snapshot_id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "DiskSnapshotID" }, "type": { "default": "persistent-ssd", "enum": [ "persistent-ssd", "shared-volume" ], "example": "persistent-ssd", "type": "string", "x-go-name": "Type" } }, "required": [ "name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "EditOrgMFARequest": { "properties": { "intended_methods": { "items": { "type": "string" }, "type": "array", "x-go-name": "IntendedMethods" } }, "required": [ "intended_methods" ], "title": "EditOrgMFARequest is the request type for PATCH requests to the org mfa endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "EnableS3BucketObjectLockRequest": { "properties": { "retention_period": { "description": "How long objects are retained.", "example": 30, "format": "int32", "type": "integer", "x-go-name": "RetentionPeriod" }, "retention_period_unit": { "$ref": "#/definitions/S3RetentionPeriodUnit" } }, "title": "EnableS3BucketObjectLockRequest defines the body for enabling object lock.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "EntitiesInvitesPatchRequest": { "properties": { "customer_id": { "example": "465a1fb5-f37e-4483-ad36-bf994efcb170", "type": "string", "x-go-name": "CustomerID" } }, "required": [ "customer_id" ], "title": "EntitiesInvitesPatchRequest is the request type for PATCH requests to the entities.customers endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "EntitiesPutPostRequest": { "properties": { "billing_addr": { "$ref": "#/definitions/BillingAddress" }, "company_name": { "example": "mycompany", "type": "string", "x-go-name": "CompanyName" }, "organization_name": { "example": "Crusoe Energy", "type": "string", "x-go-name": "OrganizationName" }, "tax_id": { "example": "51-2144346", "type": "string", "x-go-name": "TaxID" }, "tax_id_type": { "enum": [ "EIN", "VAT" ], "type": "string", "x-go-name": "TaxIDType" } }, "title": "EntitiesPutPostRequest is the request type for PUT and POST requests to the entities endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "EntitiesPutPostResponse": { "properties": { "entity": { "$ref": "#/definitions/Entity" } }, "required": [ "entity" ], "title": "EntitiesPutPostResponse is the response type for PUT and POST requests to the entities endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Entity": { "properties": { "billing": { "$ref": "#/definitions/Billing" }, "billing_addr": { "$ref": "#/definitions/BillingAddress" }, "company_name": { "example": "mycompany", "type": "string", "x-go-name": "CompanyName" }, "features": { "additionalProperties": {}, "type": "object", "x-go-name": "Features" }, "id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "mfa_methods": { "items": { "$ref": "#/definitions/OrganizationMFA" }, "type": "array", "x-go-name": "MFAMethods" }, "name": { "example": "Crusoe Energy", "type": "string", "x-go-name": "Name" }, "organization_type": { "enum": [ "standard", "enterprise", "limited" ], "type": "string", "x-go-name": "OrganizationType" }, "registration_type": { "example": "waitlist", "type": "string", "x-go-name": "RegistrationType" }, "relation": { "example": "owner", "type": "string", "x-go-name": "Relation" }, "state": { "type": "string", "x-go-name": "State" }, "state_reason": { "type": "string", "x-go-name": "StateReason" }, "tax_id": { "example": "51-2144346", "type": "string", "x-go-name": "TaxID" }, "tax_id_type": { "enum": [ "EIN" ], "type": "string", "x-go-name": "TaxIDType" } }, "required": [ "id", "name", "relation", "billing", "features", "state", "state_reason" ], "title": "Entity contains identifying information for an organization.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ErrorBody": { "properties": { "code": { "type": "string", "x-go-name": "Code" }, "error_id": { "type": "string", "x-go-name": "ErrorID" }, "message": { "type": "string", "x-go-name": "Message" }, "reason": { "type": "string", "x-go-name": "Reason" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/schemas/utils/rpc/httperror" }, "ExternalLoadBalancer": { "properties": { "health_check_options": { "$ref": "#/definitions/HealthCheckOptionsExternalLB" }, "id": { "description": "ID of the External Load Balancer.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "listen_ports_and_backends": { "description": "Listen ports and backends configuration.", "items": { "$ref": "#/definitions/ListenPortAndBackend" }, "type": "array", "x-go-name": "ListenPortsAndBackends" }, "location": { "description": "Location of the External Load Balancer.", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the External Load Balancer.", "example": "my-external-load-balancer", "type": "string", "x-go-name": "Name" }, "project_id": { "description": "The ID of the project this External Load Balancer belongs to.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ProjectID" }, "protocol": { "description": "The protocol of the External Load Balancer.", "type": "string", "x-go-name": "Protocol" }, "vip": { "description": "Virtual IP (VIP) of the External Load Balancer.", "example": "192.168.1.1", "type": "string", "x-go-name": "VIP" }, "vpc_id": { "description": "The ID of the vpc network this External Load Balancer belongs to.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "VPCID" } }, "required": [ "id", "project_id", "vpc_id", "name", "location", "protocol", "vip", "listen_ports_and_backends", "health_check_options" ], "title": "ExternalLoadBalancer defines the specifications of the External Load Balancer.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ExternalLoadBalancerPatchRequest": { "properties": { "health_check_options": { "$ref": "#/definitions/HealthCheckOptionsExternalLB" }, "listen_ports_and_backends": { "description": "Listen ports and associated backends configuration.", "items": { "$ref": "#/definitions/ListenPortAndBackend" }, "type": "array", "x-go-name": "ListenPortsAndBackends" } }, "required": [ "listen_ports_and_backends" ], "title": "ExternalLoadBalancerPatchRequest defines the structure of the request body for patching an external load balancer.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ExternalLoadBalancerPostRequest": { "properties": { "health_check_options": { "$ref": "#/definitions/HealthCheckOptionsExternalLB" }, "listen_ports_and_backends": { "description": "Listen ports and associated backends configuration.", "items": { "$ref": "#/definitions/ListenPortAndBackend" }, "type": "array", "x-go-name": "ListenPortsAndBackends" }, "location": { "description": "Location of the External Load Balancer.", "example": "us-east1", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the External Load Balancer.", "example": "my-external-load-balancer", "type": "string", "x-go-name": "Name" }, "protocol": { "description": "The protocol of the External Load Balancer.", "example": "LOAD_BALANCER_PROTOCOL_TCP", "type": "string", "x-go-name": "Protocol" }, "vpc_id": { "description": "The ID of the VPC network this External Load Balancer belongs to.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "VPCID" } }, "required": [ "protocol", "vpc_id", "name", "location", "listen_ports_and_backends" ], "title": "ExternalLoadBalancerPostRequest defines the structure of the request body for creating an external load balancer.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "FeatureFlagsGetResponse": { "properties": { "feature_flags": { "additionalProperties": {}, "example": { "curated-images": true, "infiniband": false }, "type": "object", "x-go-name": "FeatureFlags" } }, "required": [ "feature_flags" ], "title": "FeatureFlagsGetResponse is the response type for GET requests to the feature flags endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Fingerprints": { "properties": { "md5": { "example": "bf:60:fa:cc:9f:42:1f:5e:23:9e:ed:d2:69:d8:76:93", "type": "string", "x-go-name": "MD5" }, "sha256": { "example": "tARFxQkVHeqm6TzqpI897QsHVdgZlxgL2/YhVltmEUk", "type": "string", "x-go-name": "SHA256" } }, "required": [ "md5", "sha256" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "FirewallRuleObject": { "description": "It has two fields: CIDR and ResourceID. The CIDR field may either be a\nCIDR or an IP address. If an IP, it will be converted to a CIDR. Resource ids\nof VPC networks, Subnets, and VMs are the only allowed. Only one of the two\nfields can be non empty.", "properties": { "cidr": { "example": "10.1.2.3/24", "type": "string", "x-go-name": "CIDR" }, "resource_id": { "example": "306aa10d-5570-4e47-88c9-46bf11bd8737", "type": "string", "x-go-name": "ResourceID" } }, "title": "FirewallRuleObject specifies the source or destination of a firewall rule.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GPUTrackingDatum": { "properties": { "event_time": { "type": "string", "x-go-name": "EventTime" }, "global_capacity": { "format": "int64", "type": "integer", "x-go-name": "GlobalCapacity" }, "gpu_usage": { "format": "int64", "type": "integer", "x-go-name": "GPUUsage" }, "on_demand_count": { "format": "int64", "type": "integer", "x-go-name": "OnDemandCount" }, "organization_id": { "type": "string", "x-go-name": "OrganizationID" }, "price": { "format": "double", "type": "number", "x-go-name": "Price" }, "product_line": { "type": "string", "x-go-name": "ProductLine" }, "region": { "type": "string", "x-go-name": "Region" }, "regional_capacity": { "format": "int64", "type": "integer", "x-go-name": "RegionalCapacity" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GPUTrackingDatumMod": { "properties": { "event_time": { "type": "string", "x-go-name": "EventTime" }, "global_reservation_capacity": { "format": "int64", "type": "integer", "x-go-name": "GlobalCapacity" }, "organization_id": { "type": "string", "x-go-name": "OrganizationID" }, "overage_count": { "format": "int64", "type": "integer", "x-go-name": "OnDemandCount" }, "price": { "format": "double", "type": "number", "x-go-name": "Price" }, "product_line": { "type": "string", "x-go-name": "ProductLine" }, "region": { "type": "string", "x-go-name": "Region" }, "regional_reservation_capacity": { "format": "int64", "type": "integer", "x-go-name": "RegionalCapacity" }, "running_compute_unit_count": { "format": "int64", "type": "integer", "x-go-name": "GPUUsage" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GPUTrackingResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/GPUTrackingDatum" }, "type": "array", "x-go-name": "Data" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GeneratedLimitedUsageAPIKey": { "properties": { "alias": { "example": "newAPIKey", "type": "string", "x-go-name": "Alias" }, "api_key": { "example": "R7p5XctCQMuGlpVBmVdqzA", "type": "string", "x-go-name": "APIKey" }, "created_at": { "example": "2021-11-03T22:16:27Z", "type": "string", "x-go-name": "CreatedAt" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "key_id": { "example": "R7p5XctCQMuGlpVBmVdqzA", "type": "string", "x-go-name": "KeyID" }, "project_id": { "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ProjectID" }, "usage": { "enum": [ "inference", "observability" ], "example": "inference", "type": "string", "x-go-name": "Usage" } }, "required": [ "usage", "key_id", "api_key", "created_at", "expires_at" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GeneratedToken": { "description": "These are the fields returned from a PUT request.", "properties": { "access_key": { "example": "R7p5XctCQMuGlpVBmVdqzA", "type": "string", "x-go-name": "AccessKey" }, "alias": { "example": "newtoken", "type": "string", "x-go-name": "Alias" }, "created_at": { "example": "2021-11-03T22:16:27Z", "type": "string", "x-go-name": "CreatedAt" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "secret_key": { "example": "HrbZ3VTUb2YNAq53Md1EsA", "type": "string", "x-go-name": "SecretKey" } }, "required": [ "access_key", "secret_key", "created_at", "expires_at" ], "title": "GeneratedToken contains the Traits Island stores for a Token inside of Kratos.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GetBillingMonthlySummaryResponseV1": { "properties": { "credits_balance": { "description": "Amount of credits the customer has", "example": "\"12.34\"", "type": "string", "x-go-name": "CreditsBalance" }, "currency": { "description": "Currency used by all the fields above", "example": "\"usd\"", "type": "string", "x-go-name": "Currency" }, "current_month_charges": { "description": "Total Non-Reservation charges for the current month (so far)", "example": "\"12.34\"", "type": "string", "x-go-name": "CurrentMonthCharges" }, "current_month_credits_used": { "description": "Amount of credits used this month", "example": "\"12.34\"", "type": "string", "x-go-name": "CurrentMonthCreditsUsed" }, "forecasted_credits_used": { "description": "Predicted number of credits used this month", "example": "\"12.34\"", "type": "string", "x-go-name": "ForecastedCreditsUsed" }, "forecasted_monthly_charges": { "description": "Predicted Non-Reservation charges by the end of the month", "example": "\"12.34\"", "type": "string", "x-go-name": "ForecastedMonthlyCharges" }, "pct_diff_forecasted_month": { "description": "Predicted change in costs between forecasted month and previous month", "example": 8.5, "format": "float", "type": "number", "x-go-name": "PctDiffForecastedMonth" }, "pct_diff_prev_month": { "description": "Percentage change in costs between current month and previous month", "example": 8.5, "format": "float", "type": "number", "x-go-name": "PctDiffPrevMonth" }, "prior_month_charges": { "description": "Total Non-Reservation charges for last month", "example": "\"12.34\"", "type": "string", "x-go-name": "PriorMonthCharges" }, "prior_month_credits_used": { "description": "Amount of credits used last month", "example": "\"12.34\"", "type": "string", "x-go-name": "PriorMonthCreditsUsed" }, "total_credits_used": { "description": "Amount of credits used ever", "example": "\"12.34\"", "type": "string", "x-go-name": "TotalCreditsUsed" } }, "title": "This API is internal use and won't be exposed to customers.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GetCreditsResponseV1": { "properties": { "credits": { "items": { "$ref": "#/definitions/Credit" }, "type": "array", "x-go-name": "Credits" }, "currency": { "example": "\"usd\"", "type": "string", "x-go-name": "Currency" } }, "required": [ "credits", "currency" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GetOrgMFAResponse": { "properties": { "mfa_methods": { "items": { "$ref": "#/definitions/OrganizationMFA" }, "type": "array", "x-go-name": "MFAMethods" } }, "required": [ "mfa_methods" ], "title": "GetOrgMFAResponse is the response type for GET requests to the org mfa endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "GetTopologyResponse": { "properties": { "ib_networks": { "items": { "$ref": "#/definitions/IbNetworkInfo" }, "type": "array", "x-go-name": "IbNetworks" } }, "title": "GetTopologyResponse is the gateway response for cluster topology.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "HealthCheckOptions": { "properties": { "failure_count": { "example": "3", "type": "string", "x-go-name": "FailureCount" }, "interval": { "example": "60", "type": "string", "x-go-name": "Interval" }, "port": { "example": "8080", "type": "string", "x-go-name": "Port" }, "success_count": { "example": "2", "type": "string", "x-go-name": "SuccessCount" }, "timeout": { "example": "20", "type": "string", "x-go-name": "Timeout" } }, "required": [ "port" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "HealthCheckOptionsExternalLB": { "properties": { "failure_count": { "description": "Number of allowed failures before considering the backend unhealthy.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "FailureCount" }, "interval": { "description": "Interval between health checks (in seconds).", "example": 10, "format": "int64", "type": "integer", "x-go-name": "Interval" }, "success_count": { "description": "Number of successful checks required to consider the backend healthy.", "example": 2, "format": "int64", "type": "integer", "x-go-name": "SuccessCount" }, "timeout": { "description": "Timeout for health check responses (in seconds).", "example": 5, "format": "int64", "type": "integer", "x-go-name": "Timeout" } }, "required": [ "failure_count", "interval", "success_count", "timeout" ], "title": "HealthCheckOptions defines the health check configuration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "HealthCounts": { "properties": { "degraded": { "description": "Number of degraded VMs.", "example": 1, "format": "int64", "type": "integer", "x-go-name": "Degraded" }, "healthy": { "description": "Number of healthy VMs.", "example": 5, "format": "int64", "type": "integer", "x-go-name": "Healthy" }, "non_healthy_vms": { "description": "VMs that are degraded or unhealthy, with reason details.", "items": { "$ref": "#/definitions/NonHealthyVM" }, "type": "array", "x-go-name": "NonHealthyVMs" }, "not_evaluated": { "description": "Number of VMs whose health could not be evaluated.", "example": 2, "format": "int64", "type": "integer", "x-go-name": "NotEvaluated" }, "not_evaluated_vms": { "description": "VMs whose health could not be evaluated, with reason details.", "items": { "$ref": "#/definitions/NonHealthyVM" }, "type": "array", "x-go-name": "NotEvaluatedVMs" }, "unhealthy": { "description": "Number of unhealthy VMs.", "example": 0, "format": "int64", "type": "integer", "x-go-name": "Unhealthy" } }, "required": [ "healthy", "degraded", "unhealthy", "not_evaluated", "non_healthy_vms", "not_evaluated_vms" ], "title": "HealthCounts contains the count of VMs by health status.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "HostChannelAdapter": { "properties": { "guid": { "example": "946d:ae03:0021:69aa", "type": "string", "x-go-name": "GUID" }, "ib_network_id": { "type": "string", "x-go-name": "IBNetworkID" }, "ib_partition_id": { "type": "string", "x-go-name": "IBPartitionID" }, "transport_network_id": { "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "TransportNetworkID" }, "transport_partition_id": { "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "example": "infiniband", "type": "string", "x-go-name": "Type" } }, "required": [ "type", "guid", "ib_network_id", "ib_partition_id", "transport_network_id", "transport_partition_id" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IBNetwork": { "properties": { "capacities": { "items": { "$ref": "#/definitions/IBNetworkCapacity" }, "type": "array", "x-go-name": "Capacities" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "location": { "example": "us-east", "type": "string", "x-go-name": "Location" }, "name": { "example": "ib-network-1", "type": "string", "x-go-name": "Name" } }, "required": [ "id", "name", "location", "capacities" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IBNetworkCapacity": { "properties": { "quantity": { "example": 8, "format": "uint32", "type": "integer", "x-go-name": "Quantity" }, "slice_type": { "example": "16 vCPUs \u0026 125GB RAM \u0026 1 A100 (40GB) GPU", "type": "string", "x-go-name": "SliceType" } }, "required": [ "quantity", "slice_type" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IBPartition": { "properties": { "ib_network_id": { "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0", "type": "string", "x-go-name": "IBNetworkID" }, "id": { "example": "44701f9e-845c-4005-9240-adee6401b8d3", "type": "string", "x-go-name": "ID" }, "name": { "example": "my-ib-partition", "type": "string", "x-go-name": "Name" } }, "required": [ "id", "name", "ib_network_id" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IBPartitionsPostRequestV1": { "properties": { "ib_network_id": { "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0", "type": "string", "x-go-name": "IBNetworkID" }, "name": { "example": "my-ib-partition", "type": "string", "x-go-name": "Name" } }, "required": [ "name", "ib_network_id" ], "title": "IBPartitionsPostRequestV1 is the request type for POST requests to the IB Partitions endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IPAddresses": { "properties": { "private_ipv4": { "$ref": "#/definitions/PrivateIPv4Address" }, "public_ipv4": { "$ref": "#/definitions/PublicIPv4Address" } }, "required": [ "private_ipv4", "public_ipv4" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IbNetworkInfo": { "properties": { "ib_network_id": { "type": "string", "x-go-name": "IbNetworkID" }, "ib_network_name": { "type": "string", "x-go-name": "IbNetworkName" }, "nodepool_infos": { "items": { "$ref": "#/definitions/NodepoolInfo" }, "type": "array", "x-go-name": "NodepoolInfos" } }, "title": "IbNetworkInfo contains information about an InfiniBand network.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Identity": { "description": "Identity contains the information stored for a User. These are\nthe fields returned from a GET or PUT request.", "properties": { "accepted_tos": { "example": true, "type": "boolean", "x-go-name": "AcceptedTos" }, "company_name": { "example": "Crusoe", "type": "string", "x-go-name": "CompanyName" }, "email": { "example": "john.doe@crusoeenergy.com", "type": "string", "x-go-name": "Email" }, "id": { "type": "string", "x-go-name": "ID" }, "is_recovery": { "example": true, "type": "boolean", "x-go-name": "IsRecoveryFlow" }, "managed_by": { "example": "scim_okta", "type": "string", "x-go-name": "ManagedBy" }, "name": { "example": "John Doe", "type": "string", "x-go-name": "Name" }, "org_role": { "example": "org-member, org-admin", "type": "string", "x-go-name": "OrgRole" }, "registration_type": { "example": "waitlist", "type": "string", "x-go-name": "RegistrationType" }, "role": { "example": "Admin", "type": "string", "x-go-name": "Role" }, "role_bindings": { "items": { "$ref": "#/definitions/RoleBinding" }, "type": "array", "x-go-name": "RoleBindings" }, "sso_enforcement": { "enum": [ "required", "none" ], "example": "none", "type": "string", "x-go-name": "SSOEnforcement" }, "user_state": { "$ref": "#/definitions/UserStateEnum" } }, "required": [ "id", "email", "name", "role" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "IdentityCredential": { "properties": { "created_at": { "format": "date-time", "type": "string", "x-go-name": "CreatedAt" }, "type": { "type": "string", "x-go-name": "Type" }, "updated_at": { "format": "date-time", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "type", "created_at", "updated_at" ], "title": "IdentityCredential represents a specific Kratos credential type, sanitized to expose to customers.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/auth-gateway/pkg/authmodels" }, "IdentityPutRequest": { "properties": { "name": { "example": "John Doe", "type": "string", "x-go-name": "Name" }, "role": { "example": "Admin", "type": "string", "x-go-name": "Role" } }, "required": [ "name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Image": { "properties": { "created_at": { "example": "2023-06-29T20:03:26Z", "type": "string", "x-go-name": "CreatedAt" }, "description": { "example": "base Ubuntu 20.04 image", "type": "string", "x-go-name": "Description" }, "id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ID" }, "locations": { "example": "[us-east1, us-northcentral1]", "items": { "type": "string" }, "type": "array", "x-go-name": "Locations" }, "name": { "example": "ubuntu", "type": "string", "x-go-name": "Name" }, "tags": { "example": "[20.4, latest]", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" } }, "required": [ "id", "name", "description", "tags", "created_at", "locations" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceDetails": { "properties": { "id": { "description": "Unique identifier (UUID) of the instance.", "type": "string", "x-go-name": "ID" }, "using_latest_config": { "description": "Whether or not the instance was created with the current node pool configuration.", "example": true, "type": "boolean", "x-go-name": "UsingLatestConfig" } }, "required": [ "id", "using_latest_config" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceGroup": { "properties": { "active_instances": { "description": "A list of IDs of running instances in the instance group.", "example": [ "066ce497-889e-4899-b53e-400df3fb7c0e" ], "items": { "type": "string" }, "type": "array", "x-go-name": "ActiveInstances" }, "created_at": { "description": "Time the instance template was created.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "CreatedAt" }, "desired_count": { "description": "Desired VM Count for the instance group.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "DesiredCount" }, "id": { "description": "ID of the instance group.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "inactive_instances": { "description": "A list of IDs of non-running instances in the instance group.", "example": [ "066ce497-889e-4899-b53e-400df3fb7c0e" ], "items": { "type": "string" }, "type": "array", "x-go-name": "InactiveInstances" }, "instances": { "description": "[To be deprecated] A list of IDs of running instances in the instance group.", "example": [ "066ce497-889e-4899-b53e-400df3fb7c0e" ], "items": { "type": "string" }, "type": "array", "x-go-name": "Instances" }, "name": { "description": "Name of the instance group.", "example": "my-instance-group", "type": "string", "x-go-name": "Name" }, "project_id": { "description": "Project ID of the project this instance template belongs to.", "example": "b67aec22-2908-4427-994c-4e32be87477e", "type": "string", "x-go-name": "ProjectID" }, "running_instance_count": { "description": "The number of running instances currently in the Instance Group.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "RunningInstanceCount" }, "state": { "description": "State of the instance group.", "example": "HEALTHY", "type": "string", "x-go-name": "State" }, "template_id": { "description": "Instance Template ID currently associated with the instance group.", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc", "type": "string", "x-go-name": "TemplateID" }, "updated_at": { "description": "Most recent time the instance group was updated.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "name", "id", "template_id", "created_at", "updated_at", "project_id", "state", "running_instance_count", "instances", "active_instances", "inactive_instances", "desired_count" ], "title": "InstanceGroup defines the specification of an instance group.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceGroupPatchRequest": { "description": "This is a separate type from InstanceGroupPostRequest for clearer documentation, as these fields are not required\nin the PATCH endpoint.", "properties": { "desired_count": { "$ref": "#/definitions/DesiredCount" }, "name": { "description": "Name of the instance group.", "example": "my-instance-group", "type": "string", "x-go-name": "Name" }, "template_id": { "description": "Instance Template ID to be associated with the instance group.", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc", "type": "string", "x-go-name": "TemplateID" } }, "title": "InstanceGroupPatchRequest defines the specifications of the updates to be made to the instance group.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceGroupPostRequest": { "properties": { "desired_count": { "description": "Desired VM Count for the instance group.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "DesiredCount" }, "name": { "description": "Name of the instance group.", "example": "my-instance-group", "type": "string", "x-go-name": "Name" }, "template_id": { "description": "Instance Template ID to be associated with the instance group.", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc", "type": "string", "x-go-name": "TemplateID" } }, "required": [ "name", "template_id", "desired_count" ], "title": "InstanceGroupPostRequest defines the specifications of the instance group to be created.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTemplate": { "properties": { "created_at": { "description": "Time the instance template was created.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "CreatedAt" }, "custom_image_name": { "description": "OS Image to use for all VMs created from this instance template.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "CustomImage" }, "disks": { "description": "Disks to create for all VMs created from this instance template.", "items": { "$ref": "#/definitions/DiskTemplate" }, "type": "array", "x-go-name": "Disks" }, "ib_partition_id": { "type": "string", "x-go-name": "IBPartition" }, "id": { "description": "ID of the instance template.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "image_name": { "description": "OS Image to use for all VMs created from this instance template.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "Image" }, "location": { "description": "Location to use for all VMs created from this instance template.\nMay be empty if we do not want to bind this template to a location.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "description": "The VM Host Maintenance Policy", "enum": [ "manual", "stop-vm", "unspecified" ], "type": "string", "x-go-name": "MaintenancePolicy" }, "name": { "description": "Name of the instance template. (This is not the name of the VMs created from this instance template.)", "example": "my-instance-template", "type": "string", "x-go-name": "Name" }, "nvlink_domain_id": { "description": "NVLink domain ID assigned to this instance template", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "placement_policy": { "description": "The VM Placement Policy", "enum": [ "spread", "unspecified" ], "type": "string", "x-go-name": "PlacementPolicy" }, "project_id": { "description": "Project ID of the project this instance template belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ProjectID" }, "public_ip_address_type": { "description": "Public IP address type to use for all VMs created from this instance template. Must either be \"static\" or \"dynamic\".", "example": "static", "type": "string", "x-go-name": "PublicIPAddressType" }, "reservation_id": { "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "shutdown_script": { "description": "Shutdown script to use for all VMs created from this instance template.", "example": "#!/bin/bash\\necho'goodbye'", "type": "string", "x-go-name": "ShutdownScript" }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this instance template.", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D", "type": "string", "x-go-name": "SSHPubKey" }, "startup_script": { "description": "Startup script to use for all VMs created from this instance template.", "example": "#!/bin/bash\\necho'hello'", "type": "string", "x-go-name": "StartupScript" }, "subnet_id": { "description": "SubnetID to use for all VMs created from this instance template.\nOnly used if template has a location.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "IB or RoCE partition to use for all VMs created from this instance template.\nOnly used for transport-enabled VM types. Empty if template has no location.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "description": "Product name of the VM type we want to create from this instance template.", "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "required": [ "name", "id", "type", "ssh_public_key", "startup_script", "shutdown_script", "image_name", "ib_partition_id", "transport_partition_id", "subnet_id", "location", "project_id", "created_at", "public_ip_address_type", "placement_policy", "maintenance_policy" ], "title": "InstanceTemplate defines the specifications of VMs to be created during bulk VM creation.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTemplatePostRequestV1": { "properties": { "custom_image_name": { "description": "Custom image to use for all VMs created from this instance template.\nOnly one of Image or CustomImage should be supplied at once.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "CustomImage" }, "disks": { "description": "Disks to create for all VMs created from this instance template.", "items": { "$ref": "#/definitions/DiskTemplate" }, "type": "array", "x-go-name": "Disks" }, "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartition" }, "image_name": { "description": "OS Image to use for all VMs created from this instance template.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "Image" }, "location": { "description": "Location to use for all VMs created from this instance template.\nIf provided, all location-specific resources must also be provided.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "description": "THe Host Maintenance Policy to use.", "example": "manual,auto-stop,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "nvlink_domain_id": { "description": "Optional NVLink domain ID to assign to VMs", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "placement_policy": { "description": "The VM Placement Policy to use.", "example": "spread", "type": "string", "x-go-name": "PlacementPolicy" }, "public_ip_address_type": { "description": "Public IP address type to use for all VMs created from this instance template. Must either be \"static\" or \"dynamic\".", "example": "static", "type": "string", "x-go-name": "PublicIPAddressType" }, "reservation_id": { "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "shutdown_script": { "description": "Shutdown script to use for all VMs created from this instance template.", "example": "\"#!/bin/bash\\necho'goodbye'\"", "type": "string", "x-go-name": "ShutdownScript" }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this instance template.", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D", "type": "string", "x-go-name": "SSHPublicKey" }, "startup_script": { "description": "Startup script to use for all VMs created from this instance template.", "example": "\"#!/bin/bash\\necho'hello'\"", "type": "string", "x-go-name": "StartupScript" }, "subnet_id": { "description": "Subnet to use for all VMs created from this instance template.\nThis is location-specific and must be provided if location is provided.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "Subnet" }, "template_name": { "description": "Name of the instance template. (This is not the name of the VMs created from this instance template.)", "example": "my-instance-template", "type": "string", "x-go-name": "TemplateName" }, "transport_partition_id": { "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.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "description": "Product name of the VM type we want to create from this instance template.", "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "required": [ "template_name", "type", "ssh_public_key" ], "title": "InstanceTemplate defines the specifications of VMs to be created during bulk VM creation.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTypeDetailResponse": { "description": "The layout field determines which section is populated: network_topology (IB) or clusters (non-IB).", "properties": { "clusters": { "description": "Clusters with VMs. Populated for non-IB layouts only.", "items": { "$ref": "#/definitions/ClusterOverview" }, "type": "array", "x-go-name": "Clusters" }, "instance_type": { "description": "The instance type name.", "example": "gb200-186gb-nvl-ib.4x", "type": "string", "x-go-name": "InstanceType" }, "layout": { "description": "The layout type: \"ib-instances\" or \"non-ib-instances\".", "example": "ib-instances", "type": "string", "x-go-name": "Layout" }, "network_topology": { "description": "Network topology with pods and clusters. Populated for IB layouts only.", "items": { "$ref": "#/definitions/PodOverview" }, "type": "array", "x-go-name": "NetworkTopology" }, "summary": { "$ref": "#/definitions/InstanceTypeSummary" } }, "required": [ "layout", "instance_type", "summary" ], "title": "InstanceTypeDetailResponse is the gateway response for the instance type detail view.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTypeMetrics": { "properties": { "cpu_utilization_avg": { "description": "Average CPU utilization across all VMs of this instance type (0-100).", "example": 45.2, "format": "double", "type": "number", "x-go-name": "CPUUtilizationAvg" }, "gpu_utilization_avg": { "description": "Average GPU utilization across all VMs of this instance type (0-100).", "example": 72.5, "format": "double", "type": "number", "x-go-name": "GPUUtilizationAvg" }, "health": { "$ref": "#/definitions/HealthCounts" }, "p95_power_watts": { "description": "P95 GPU power draw in watts across all VMs of this instance type.", "example": 320, "format": "double", "type": "number", "x-go-name": "P95PowerWatts" }, "p95_temperature_celsius": { "description": "P95 GPU temperature in Celsius across all VMs of this instance type.", "example": 68, "format": "double", "type": "number", "x-go-name": "P95TemperatureCelsius" } }, "required": [ "health" ], "title": "InstanceTypeMetrics contains the metric values for an instance type.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTypeOverview": { "properties": { "instance_count": { "description": "The number of VMs of this instance type.", "example": 8, "format": "int64", "type": "integer", "x-go-name": "InstanceCount" }, "instance_type": { "description": "The instance type name.", "example": "h100-80gb-sxm-ib.8x", "type": "string", "x-go-name": "InstanceType" }, "metrics": { "$ref": "#/definitions/InstanceTypeMetrics" }, "remediation": { "$ref": "#/definitions/RemediationCounts" } }, "required": [ "instance_type", "instance_count", "metrics" ], "title": "InstanceTypeOverview contains summary metrics for a single instance type.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceTypeSummary": { "properties": { "cpu_utilization_avg": { "description": "Average CPU utilization (%) across all VMs of this instance type.", "example": 45, "format": "double", "type": "number", "x-go-name": "CPUUtilizationAvg" }, "gpu_utilization_avg": { "description": "Average GPU utilization (%) across all VMs of this instance type.", "example": 84.2, "format": "double", "type": "number", "x-go-name": "GPUUtilizationAvg" }, "p95_power_watts": { "description": "P95 GPU power draw in watts across all VMs of this instance type.", "example": 425, "format": "double", "type": "number", "x-go-name": "P95PowerWatts" }, "p95_temperature_celsius": { "description": "P95 GPU temperature in Celsius across all VMs of this instance type.", "example": 81, "format": "double", "type": "number", "x-go-name": "P95TemperatureCelsius" } }, "title": "InstanceTypeSummary contains the top-level summary metrics for an instance type.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstanceV1": { "description": "InstanceV1 contains identifying information about a vm instance for\nvms.instances endpoints.", "properties": { "billing_type": { "description": "values: On-demand, Spot, PoC", "type": "string", "x-go-name": "BillingType" }, "commitment_end": { "type": "string", "x-go-name": "CommitmentEnd" }, "commitment_period": { "description": "commitment is no longer supported", "format": "int64", "type": "integer", "x-go-name": "CommitmentPeriod" }, "created_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "disks": { "items": { "$ref": "#/definitions/AttachedDiskV1" }, "type": "array", "x-go-name": "Disks" }, "host_channel_adapters": { "items": { "$ref": "#/definitions/HostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "id": { "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "instance_group_id": { "example": "707749bd-ecad-4de8-aa00-1ae2fdb99e19", "type": "string", "x-go-name": "InstanceGroupID" }, "instance_template_id": { "example": "75c6712a-8da8-463c-a72d-fc65cf922959", "type": "string", "x-go-name": "InstanceTemplateID" }, "location": { "example": "us-centralnorth1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "enum": [ "manual", "stop-vm", "unspecified" ], "type": "string", "x-go-name": "MaintenancePolicy" }, "name": { "example": "my-first-vm", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "nvlink_domain_id": { "description": "optional field for specifying an NVLink domain ID", "type": "string", "x-go-name": "NvlinkDomainID" }, "pod_id": { "example": "29d20dc4-90ad-4365-ab05-83f5f5e52d94", "type": "string", "x-go-name": "PodID" }, "project_id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ProjectID" }, "reservation_id": { "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "state": { "example": "RUNNING", "type": "string", "x-go-name": "State" }, "type": { "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "updated_at": { "example": "2023-08-14T09:00:35Z", "type": "string", "x-go-name": "UpdatedAt" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "required": [ "id", "project_id", "type", "state", "created_at", "updated_at", "name", "location", "disks", "network_interfaces", "host_channel_adapters", "maintenance_policy" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstancesAttachDiskPostRequestV1": { "description": "InstancesAttachDiskPostRequestV1 is the request type for POST requests to the\nvms.instances.attach-disk endpoint.", "properties": { "attach_disks": { "example": "[{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\"}]", "items": { "$ref": "#/definitions/DiskAttachment" }, "type": "array", "x-go-name": "AttachDisks" } }, "required": [ "attach_disks" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstancesDetachDiskPostRequest": { "description": "InstancesDetachDiskPostRequest is the request type for POST requests to the\nvms.instances.detach-disk endpoint.", "properties": { "detach_disks": { "example": [ "09ae8411-0fbb-411c-898c-2b8f19622ae1", "123e4567-e89b-12d3-a456-426614174000" ], "items": { "type": "string" }, "type": "array", "x-go-name": "DetachDisks" } }, "required": [ "detach_disks" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstancesPatchRequestV1": { "properties": { "action": { "description": "The action to perform on the VM. RESERVE and UNRESERVE operations are done synchronously,\nand so will have succeeded with a 200 response.", "enum": [ "START", "STOP", "RESET", "RESERVE", "UNRESERVE", "UPDATE" ], "example": "START", "type": "string", "x-go-name": "Action" }, "commitment_period": { "description": "CommitmentPeriod is deprecated, please use reservationID instead", "format": "int64", "type": "integer", "x-go-name": "CommitmentPeriod" }, "host_channel_adapters": { "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "maintenance_policy": { "description": "The host maintenance policy to use.", "example": "manual,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "network_interfaces": { "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "reservation_id": { "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "type": { "example": "a100.2x", "type": "string", "x-go-name": "Type" } }, "required": [ "action" ], "title": "InstancesPatchRequestV1 is the request type for PATCH requests to the vms.instances endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "InstancesPostRequestV1": { "description": "InstancesPostRequestV1 is the request type for POST requests to the\nvms.instances endpoint.", "properties": { "commitment_period": { "description": "commitment is no longer supported", "format": "int64", "type": "integer", "x-go-name": "CommitmentPeriod" }, "crusoe_watch_agent_install_mode": { "description": "optional field to specify the Crusoe Watch Agent installation mode (defaults to \"docker\")", "enum": [ "docker", "native" ], "type": "string", "x-go-name": "CrusoeWatchAgentInstallMode" }, "custom_image": { "description": "either image or custom image should be supplied, not both.", "type": "string", "x-go-name": "CustomImage" }, "disks": { "example": "[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attach_type: \"data\"},", "items": { "$ref": "#/definitions/DiskAttachment" }, "type": "array", "x-go-name": "Disks" }, "host_channel_adapters": { "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "image": { "example": "ubuntu:20.04", "type": "string", "x-go-name": "Image" }, "install_crusoe_watch_agent": { "description": "optional field to control whether the Crusoe Watch Agent is installed (defaults to true)", "type": "boolean", "x-go-name": "InstallCrusoeWatchAgent", "x-nullable": true }, "location": { "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "description": "The Host Maintenance Policy to use.", "example": "manual,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "name": { "example": "my-first-vm", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "nvlink_domain_id": { "description": "optional field for specifying an NVLink domain ID", "type": "string", "x-go-name": "NvlinkDomainID" }, "reservation_specification": { "$ref": "#/definitions/ReservationSpecification" }, "shutdown_script": { "example": "#!/bin/bash\\necho'goodbye'", "type": "string", "x-go-name": "ShutdownScript" }, "ssh_public_key": { "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D", "type": "string", "x-go-name": "SSHPublicKey" }, "startup_script": { "example": "#!/bin/bash\\necho'hello'", "type": "string", "x-go-name": "StartupScript" }, "type": { "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "required": [ "type", "ssh_public_key", "name", "location" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesAuthenticationDetails": { "description": "It supports both the new kubeconfig-based and legacy certificate-based authentication.", "properties": { "cluster_address": { "description": "Address of the Kubernetes cluster to authenticate to", "type": "string", "x-go-name": "ClusterAddress" }, "cluster_ca_certificate": { "description": "CA Certificate of the Kubernetes cluster to authenticate to", "type": "string", "x-go-name": "ClusterCACert" }, "cluster_name": { "description": "Name of the Kubernetes cluster to authenticate to", "type": "string", "x-go-name": "ClusterName" }, "kube_config": { "description": "Kubeconfig of the Kubernetes cluster to authenticate to", "type": "string", "x-go-name": "KubeConfig" }, "user_client_certificate": { "description": "User's Client certificate for authenticating to the cluster.", "type": "string", "x-go-name": "UserClientCert" }, "user_client_key": { "description": "The private key associated with the user's Client certificate.", "type": "string", "x-go-name": "UserClientKey" }, "user_name": { "description": "Name of the authenticating user", "type": "string", "x-go-name": "UserName" } }, "required": [ "cluster_name", "cluster_address", "cluster_ca_certificate", "user_name", "user_client_certificate", "user_client_key" ], "title": "KubernetesAuthenticationDetails contains credentials to authenticate to a Kubernetes cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesCancelNodePoolRotateResponse": { "properties": { "no_rotate_in_progress": { "description": "True if there is no rotate operation to cancel.", "type": "boolean", "x-go-name": "NoRotateInProgress" } }, "required": [ "no_rotate_in_progress" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesCluster": { "properties": { "add_ons": { "description": "List of add-ons associated with the cluster.", "example": [ "crusoe_csi" ], "items": { "type": "string" }, "type": "array", "x-go-name": "AddOns" }, "apiserver_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments passed to the kube-apiserver control plane component.", "example": { "audit-log-maxage": "30" }, "type": "object", "x-go-name": "ApiserverExtraArgs" }, "auth_config": { "$ref": "#/definitions/KubernetesClusterAuthConfig" }, "cluster_cidr": { "description": "The range of IP Addresses allocated to pods scheduled on worker nodes", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ClusterCIDR" }, "configuration": { "description": "Configuration setting of the Kubernetes cluster.", "enum": [ "ha" ], "example": "ha", "type": "string", "x-go-name": "Configuration" }, "controller_manager_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments passed to the kube-controller-manager control plane component.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "ControllerManagerExtraArgs" }, "created_at": { "description": "The time when the cluster was created", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "dns_name": { "description": "DNS name of the cluster", "example": "my-kubernetes-cluster.crusoecloudcompute.com", "type": "string", "x-go-name": "DNSName" }, "id": { "description": "ID of the Kubernetes cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "kubelogin_args": { "additionalProperties": { "type": "string" }, "description": "Arguments for kubectl oidc-login plugin.", "example": { "force-refresh": "", "oidc-extra-scope": "email groups" }, "type": "object", "x-go-name": "KubeloginArgs" }, "location": { "description": "Location of the Kubernetes cluster.", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the Kubernetes cluster.", "example": "my-kubernetes-cluster", "type": "string", "x-go-name": "Name" }, "node_cidr_mask_size": { "description": "The mask size for cluster cidr", "example": 24, "format": "int32", "type": "integer", "x-go-name": "NodeCIDRMask" }, "node_pools": { "description": "List of IDs of node pools within the Kubernetes cluster.", "example": [ "1d2b3a4c-5e6f-7b9d-8c9a-0e1f2d3b4c5d" ], "items": { "type": "string" }, "type": "array", "x-go-name": "NodePools" }, "private": { "description": "Whether the cluster is private or not", "example": true, "type": "boolean", "x-go-name": "Private" }, "project_id": { "description": "The ID of the project this Kubernetes cluster belongs to.", "example": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f", "type": "string", "x-go-name": "ProjectID" }, "scheduler_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments passed to the kube-scheduler control plane component.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "SchedulerExtraArgs" }, "service_cluster_ip_range": { "description": "The range of IP Addresses allocated to K8s services", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ServiceClusterCIDR" }, "state": { "description": "State of the cluster", "example": "STATE_RUNNING", "type": "string", "x-go-name": "State" }, "subnet_id": { "description": "The ID of the subnet this Kubernetes cluster belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "updated_at": { "description": "The time when the cluster was last updated", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "version": { "description": "Version of the crusoe Kubernetes image of the Kubernetes cluster.", "example": "1.29.5-crusoe.0", "type": "string", "x-go-name": "Version" } }, "required": [ "id", "name", "location", "version", "configuration", "subnet_id", "project_id", "node_pools", "add_ons", "state", "dns_name", "created_at", "updated_at", "kubelogin_args" ], "title": "KubernetesCluster defines the specifications of the Kubernetes cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClusterAuthConfig": { "description": "This configures how users authenticate to the Kubernetes API server.\nexample: {\"oidc\": {\"issuer_url\": \"https://oauth2.example.com\", \"client_id\": \"kubernetes\"}}", "properties": { "oidc": { "$ref": "#/definitions/OIDCAuthConfig" } }, "title": "KubernetesClusterAuthConfig defines authentication configuration for the cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClusterPatchRequest": { "properties": { "apiserver_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments to pass to the kube-apiserver control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.", "example": { "audit-log-maxage": "30" }, "type": "object", "x-go-name": "ApiserverExtraArgs" }, "configuration": { "description": "Configuration setting is deprecated, defaults to HA configuration.", "enum": [ "ha" ], "example": "ha", "type": "string", "x-go-name": "Configuration" }, "controller_manager_extra_args": { "additionalProperties": { "type": "string" }, "description": "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.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "ControllerManagerExtraArgs" }, "kubelogin_args": { "additionalProperties": { "type": "string" }, "description": "Arguments for kubectl oidc-login plugin.", "example": { "force-refresh": "", "oidc-extra-scope": "email groups" }, "type": "object", "x-go-name": "KubeloginArgs", "x-redocly-optional": true }, "scheduler_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments to pass to the kube-scheduler control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "SchedulerExtraArgs" } }, "required": [ "kubelogin_args" ], "title": "KubernetesClusterPatchRequest defines the specifications of the cluster to be updated.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClusterPostRequest": { "properties": { "add_ons": { "description": "List of add-ons to be included to the cluster.", "example": [ "crusoe_csi", "nvidia_gpu_operator", "nvidia_network_operator" ], "items": { "type": "string" }, "type": "array", "x-go-name": "AddOns" }, "apiserver_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments to pass to the kube-apiserver control plane component.", "example": { "audit-log-maxage": "30" }, "type": "object", "x-go-name": "ApiserverExtraArgs" }, "auth_config": { "$ref": "#/definitions/KubernetesClusterAuthConfig" }, "cluster_cidr": { "description": "defines: the range of IP Addresses allocated to pods scheduled on worker nodes", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ClusterCIDR" }, "configuration": { "description": "Configuration setting is deprecated, defaults to HA configuration.", "enum": [ "ha" ], "example": "ha", "type": "string", "x-go-name": "Configuration" }, "controller_manager_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments to pass to the kube-controller-manager control plane component.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "ControllerManagerExtraArgs" }, "kubelogin_args": { "additionalProperties": { "type": "string" }, "description": "Arguments for kubectl oidc-login plugin.", "example": { "force-refresh": "", "oidc-extra-scope": "email groups" }, "type": "object", "x-go-name": "KubeloginArgs" }, "location": { "description": "Location to create the Kubernetes cluster in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the Kubernetes cluster.", "example": "my-kubernetes-cluster", "type": "string", "x-go-name": "Name" }, "node_cidr_mask_size": { "description": "defines: the mask size for cluster cidr", "example": 24, "format": "int32", "type": "integer", "x-go-name": "NodeCIDRMask" }, "private": { "description": "Whether the cluster should be private (without a public IP). Default is false.", "example": true, "type": "boolean", "x-go-name": "Private" }, "scheduler_extra_args": { "additionalProperties": { "type": "string" }, "description": "Extra arguments to pass to the kube-scheduler control plane component.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "SchedulerExtraArgs" }, "service_cluster_ip_range": { "description": "defines: the range of IP Addresses allocated to K8s services", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ServiceClusterCIDR" }, "subnet_id": { "description": "The ID of the subnet to create the cluster in. Must be in the location\nspecified. If not provided, the default subnet for the location will be\nused, if there is one.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "version": { "description": "Version of the Crusoe Kubernetes image to create the cluster with.", "example": "1.29.5-crusoe.0", "type": "string", "x-go-name": "Version" } }, "required": [ "name", "location", "version" ], "title": "KubernetesClusterPostRequest defines the specifications of the cluster to be created.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClusterSupportSettingsRequest": { "description": "KubernetesClusterSupportSettingsRequest defines the request for updating\nsupport access settings for a Kubernetes cluster.", "properties": { "access_enabled": { "description": "Support access enabled master toggle", "example": true, "type": "boolean", "x-go-name": "AccessEnabled" }, "enabled_roles": { "description": "Enabled support access roles", "example": [ "operator", "readonly" ], "items": { "type": "string" }, "type": "array", "x-go-name": "EnabledRoles" } }, "required": [ "access_enabled" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClusterSupportSettingsResponse": { "description": "KubernetesClusterSupportSettingsResponse defines the response for getting\nor setting support access settings for a Kubernetes cluster.", "properties": { "access_enabled": { "description": "Support access enabled master toggle", "example": true, "type": "boolean", "x-go-name": "AccessEnabled" }, "active_requests": { "description": "List of current active requests", "items": { "$ref": "#/definitions/KubernetesSupportAccessRequest" }, "type": "array", "x-go-name": "ActiveRequests" }, "enabled_roles": { "description": "Enabled support access roles", "example": [ "operator", "readonly" ], "items": { "type": "string" }, "type": "array", "x-go-name": "EnabledRoles" } }, "required": [ "access_enabled", "enabled_roles" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesClustersVersionInfo": { "properties": { "cluster_version_name": { "description": "The version name of Crusoe's Kubernetes clusters.", "type": "string", "x-go-name": "ClusterVersionName" }, "supported_features": { "description": "Features supported by this cluster version. Possible values today: \"oidc\",\n\"autoclusters\", \"active_health_checks\". New feature names may be added over time.\nAPI consumers should ignore unrecognized feature names.", "items": { "type": "string" }, "type": "array", "x-go-name": "SupportedFeatures" }, "tags": { "description": "A list of tags associated with the version.", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" }, "version_details": { "$ref": "#/definitions/VersionDetails" } }, "required": [ "cluster_version_name", "tags", "version_details", "supported_features" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesGetNodePoolRotateStatusResponse": { "properties": { "out_of_sync_instances": { "description": "List of out of sync instance ids.", "items": { "type": "string" }, "type": "array", "x-go-name": "OutOfSyncInstances" }, "state": { "description": "Current state of the node pool.", "type": "string", "x-go-name": "State" } }, "required": [ "state", "out_of_sync_instances" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePool": { "properties": { "cluster_id": { "description": "The ID of the Kubernetes cluster this node pool belongs to.", "example": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f", "type": "string", "x-go-name": "ClusterID" }, "count": { "description": "Number of nodes within the node pool.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count" }, "created_at": { "description": "The time when the cluster was created", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "ephemeral_storage_for_containerd": { "description": "Indicates whether the first local ephemeral NVMe disk should be used for containerd storage.", "example": true, "type": "boolean", "x-go-name": "EphemeralStorageForContainerd" }, "id": { "description": "ID of the node pool.", "example": "0a1b3c2d-5e6f-8b9c-4d7e-1a2b3c4d5e6f", "type": "string", "x-go-name": "ID" }, "image_id": { "description": "Image Unique identifier for the Kubernetes node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ImageID" }, "instance_details": { "description": "Details about instances within the Kubernetes node pool.", "items": { "$ref": "#/definitions/InstanceDetails" }, "type": "array", "x-go-name": "InstanceDetails" }, "instance_ids": { "description": "List of IDs of instances within the node pool.", "example": [ "ca39e669-47ee-456b-968d-303234fbf99f" ], "items": { "type": "string" }, "type": "array", "x-go-name": "InstanceIDs" }, "name": { "description": "Name of the node pool.", "example": "crusoe-node-pool", "type": "string", "x-go-name": "Name" }, "node_labels": { "additionalProperties": { "type": "string" }, "description": "Labels associated with the node pool.", "example": "\"nvidia.a100\"", "type": "object", "x-go-name": "NodeLabels" }, "node_taints": { "description": "Taints applied to nodes in the node pool.", "example": [ { "effect": "NoSchedule", "key": "gpu", "value": "true" } ], "items": { "$ref": "#/definitions/KubernetesNodeTaint" }, "type": "array", "x-go-name": "NodeTaints" }, "nvlink_domain_id": { "description": "NVLink domain ID assigned to this node pool", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "project_id": { "description": "The ID of the project this Kubernetes node pool belongs to.", "example": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f", "type": "string", "x-go-name": "ProjectID" }, "public_ip_type": { "default": "dynamic", "description": "Public IP type for nodepool nodes. Possible values: dynamic, static, none", "example": "dynamic", "type": "string", "x-go-name": "PublicIPType" }, "reservation_id": { "description": "The ID of the billing reservation associated with the node pool", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ReservationID" }, "state": { "description": "State of the node pool", "example": "STATE_RUNNING", "type": "string", "x-go-name": "State" }, "subnet_id": { "description": "The ID of the subnet this node pool belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "type": { "description": "VM type of the node pool", "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "updated_at": { "description": "The time when the cluster was last updated", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "id", "name", "count", "project_id", "cluster_id", "image_id", "node_labels", "node_taints", "subnet_id", "instance_ids", "state", "type", "created_at", "updated_at", "reservation_id", "ephemeral_storage_for_containerd" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePoolPatchRequest": { "properties": { "action": { "default": "UPDATE", "description": "The action to perform on the NodePool. RESERVE and UNRESERVE operations are done synchronously,\nand so will have succeeded with a 200 response. Defaults to UPDATE if no action specified.", "enum": [ "RESERVE", "UNRESERVE", "UPDATE" ], "example": "UPDATE", "type": "string", "x-go-name": "Action", "x-redocly-optional": true }, "count": { "description": "The desired number of nodes in the node pool.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count", "x-redocly-optional": true }, "ephemeral_storage_for_containerd": { "description": "Indicates whether the first local ephemeral NVMe disk should be used for containerd storage.", "example": true, "type": "boolean", "x-go-name": "EphemeralStorageForContainerd", "x-redocly-optional": true }, "node_labels": { "additionalProperties": { "type": "string" }, "description": "Labels assigned to the node pool. Labels provided in the PATCH request will not modify existing nodes,\nbut will apply to any newly created nodes.", "example": { "label": "my_node" }, "type": "object", "x-go-name": "NodeLabels", "x-redocly-optional": true }, "node_pool_version": { "description": "Version of the Kubernetes node pool for newly created vms.", "example": "1.30", "type": "string", "x-go-name": "NodePoolVersion", "x-redocly-optional": true }, "node_taints": { "description": "Taints to apply to nodes in this node pool. Taints provided in the PATCH request will not modify existing nodes,\nbut will 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.", "example": [ { "effect": "NoSchedule", "key": "gpu-type", "value": "h100" } ], "items": { "$ref": "#/definitions/KubernetesNodeTaint" }, "type": "array", "x-go-name": "NodeTaints", "x-redocly-optional": true }, "reservation_id": { "description": "The reservation ID of the node pool.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ReservationID", "x-redocly-optional": true }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this node pool.", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D", "type": "string", "x-go-name": "SSHPublicKey", "x-redocly-optional": true } }, "required": [ "count", "node_labels", "node_taints", "reservation_id", "action", "ephemeral_storage_for_containerd", "node_pool_version", "ssh_public_key" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePoolPostRequest": { "properties": { "cluster_id": { "description": "Cluster ID of the cluster this node pool belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ClusterID" }, "count": { "description": "The number of nodes to be created.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count" }, "ephemeral_storage_for_containerd": { "description": "Indicates whether the first local ephemeral NVMe disk should be used for containerd storage.", "example": true, "type": "boolean", "x-go-name": "EphemeralStorageForContainerd" }, "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartitionID" }, "name": { "description": "Name of the Kubernetes node pool.", "example": "my-kubernetes-node-pool", "type": "string", "x-go-name": "Name" }, "node_labels": { "additionalProperties": { "type": "string" }, "description": "Labels assigned to the node pool", "example": { "label": "my_node" }, "type": "object", "x-go-name": "NodeLabels" }, "node_pool_version": { "description": "Version of the Kubernetes node pool.", "example": "1.30", "type": "string", "x-go-name": "NodePoolVersion" }, "node_taints": { "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.", "example": [ { "effect": "NoSchedule", "key": "gpu-type", "value": "h100" } ], "items": { "$ref": "#/definitions/KubernetesNodeTaint" }, "type": "array", "x-go-name": "NodeTaints" }, "nvlink_domain_id": { "description": "Optional NVLink domain ID to assign to nodes in this node pool", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "placement_policy": { "default": "unspecified", "description": "Placement policy for VMs in the node pool. Possible values: spread, unspecified.\nIgnored for GPU node types (one VM per host is already enforced for GPUs).", "enum": [ "spread", "unspecified" ], "example": "spread", "type": "string", "x-go-name": "PlacementPolicy" }, "product_name": { "description": "Product name of the VM type to be created within this node pool.", "example": "a100.2x", "type": "string", "x-go-name": "ProductName" }, "public_ip_type": { "default": "dynamic", "description": "Public IP type for nodepool nodes. Possible values: dynamic, static, none", "example": "dynamic", "type": "string", "x-go-name": "PublicIPType" }, "reservation_specification": { "$ref": "#/definitions/ReservationSpecification" }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this node pool.", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8", "type": "string", "x-go-name": "SSHPublicKey" }, "subnet_id": { "description": "The 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 will be used, if there is one.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "The ID of the Infiniband or RoCE partition to create node pool in. Must be in the location\nof the cluster if specified.", "example": "b1f86d1b-42d2-490d-adb0-cc1029abf653", "type": "string", "x-go-name": "TransportPartitionID" } }, "required": [ "name", "product_name", "count", "cluster_id" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePoolResponse": { "properties": { "details": { "$ref": "#/definitions/OperationDetails" }, "node_pool": { "$ref": "#/definitions/KubernetesNodePool" } }, "required": [ "node_pool" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePoolRotateStartRequest": { "properties": { "count": { "description": "Number of nodes to replace at a time if the strategy is 'count'.", "example": 2, "format": "int64", "type": "integer", "x-go-name": "Count" }, "percentage": { "description": "Percentage of nodes to replace at a time if the strategy is 'percentage'.", "example": 20, "format": "int64", "type": "integer", "x-go-name": "Percentage" }, "strategy": { "description": "Strategy of the rotation to perform.", "enum": [ "count", "percentage" ], "example": "'count'", "type": "string", "x-go-name": "Strategy" } }, "required": [ "strategy", "count", "percentage" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodePoolsVersionInfo": { "properties": { "node_pool_version_name": { "description": "The version name of Crusoe's Kubernetes node pools.", "type": "string", "x-go-name": "NodePoolVersionName" }, "supported_features": { "description": "Features supported by this node pool version. Possible values today: \"node_taints\",\n\"ephemeral_storage_for_containerd\". New feature names may be added over time.\nAPI consumers should ignore unrecognized feature names.", "items": { "type": "string" }, "type": "array", "x-go-name": "SupportedFeatures" }, "tags": { "description": "A list of tags associated with the version.", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" }, "version_details": { "$ref": "#/definitions/VersionDetails" } }, "required": [ "node_pool_version_name", "tags", "version_details", "supported_features" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesNodeTaint": { "description": "A taint allows a node to repel a set of pods unless those pods\ntolerate the taint. Taints follow standard Kubernetes semantics\n(see https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).", "properties": { "effect": { "description": "Effect is the 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.", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ], "example": "NoSchedule", "type": "string", "x-go-name": "Effect" }, "key": { "description": "Key is the 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.", "example": "gpu-type", "type": "string", "x-go-name": "Key" }, "value": { "description": "Value is the taint value. May be empty. Follows the same format\nrules as a Kubernetes label value: up to 63 characters, alphanumerics\nand '-', '_', '.'.", "example": "h100", "maxLength": 63, "type": "string", "x-go-name": "Value" } }, "required": [ "key", "effect" ], "title": "KubernetesNodeTaint represents a Kubernetes node taint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "KubernetesSupportAccessRequest": { "properties": { "access_role": { "description": "Access role requested", "example": "operator", "type": "string", "x-go-name": "AccessRole" }, "cert_expires_at": { "description": "Time when certificate expires (RFC3339)", "example": "2024-01-15T18:30:00Z", "type": "string", "x-go-name": "CertExpiresAt" }, "cert_fingerprint": { "description": "Certificate fingerprint", "example": "AA:BB:CC:DD:EE:FF", "type": "string", "x-go-name": "CertFingerprint" }, "cert_issued_at": { "description": "Time last certificate issued (RFC3339)", "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "CertIssuedAt" }, "cert_serial": { "description": "Certificate serial number", "example": "1234567890", "type": "string", "x-go-name": "CertSerial" }, "expires_at": { "description": "Time when access expires (RFC3339)", "example": "2024-01-15T18:30:00Z", "type": "string", "x-go-name": "ExpiresAt" }, "requested_at": { "description": "Time requested (RFC3339)", "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "RequestedAt" }, "requestor_id": { "description": "User ID (UUID) of the user who requested access", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "RequestorID" }, "requestor_team": { "description": "Name of team requesting support access", "example": "SRE", "type": "string", "x-go-name": "RequestorTeam" }, "support_reason": { "description": "Reason for requesting support access", "example": "Investigating cluster health issue", "type": "string", "x-go-name": "SupportReason" }, "ticket_ref": { "description": "Associated ticket for the support access request", "example": "TICKET-12345", "type": "string", "x-go-name": "TicketRef" } }, "required": [ "access_role" ], "title": "KubernetesSupportAccessRequest defines the information about a support access request.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LatestDiagnosticResponse": { "properties": { "created_at": { "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "CreatedAt" }, "has_diagnostic": { "example": true, "type": "boolean", "x-go-name": "HasDiagnostic" }, "id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "updated_at": { "example": "2024-01-15T10:35:00Z", "type": "string", "x-go-name": "UpdatedAt" } }, "required": [ "has_diagnostic" ], "title": "LatestDiagnosticResponse is the REST response for latest diagnostic.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LatestGPUTracking": { "properties": { "data": { "items": { "$ref": "#/definitions/GPUTrackingDatumMod" }, "type": "array", "x-go-name": "Data" }, "reservation_id": { "items": { "type": "string" }, "type": "array", "x-go-name": "ReservationID" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LimitedUsageAPIKeyInfo": { "description": "These are the fields returned from a GET request.", "properties": { "alias": { "example": "token1", "type": "string", "x-go-name": "Alias" }, "created_at": { "example": "2021-11-03T22:16:27Z", "type": "string", "x-go-name": "CreatedAt" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "key_id": { "example": "Hm11C1coQZm2+Aihn9ofYg", "type": "string", "x-go-name": "KeyID" }, "last_used": { "example": "2021-11-03T22:22:55Z", "type": "string", "x-go-name": "LastUsed" }, "project_id": { "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ProjectID" }, "usage": { "enum": [ "inference", "observability" ], "example": "inference", "type": "string", "x-go-name": "Usage" } }, "required": [ "usage", "alias", "key_id", "created_at", "expires_at", "last_used" ], "title": "TokenInfo contains the Traits Island stores for a Token inside of Kratos.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LimitedUsageAPIKeyPostResponse": { "properties": { "api_key_info": { "$ref": "#/definitions/GeneratedLimitedUsageAPIKey" } }, "required": [ "api_key_info" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListCapacitiesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/CapacityV1" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListCardTransactionsResponse": { "properties": { "has_more": { "type": "boolean", "x-go-name": "HasMore" }, "items": { "items": { "$ref": "#/definitions/CardTransaction" }, "type": "array", "x-go-name": "Items" }, "next_cursor": { "type": "string", "x-go-name": "NextCursor" } }, "title": "ListCardTransactionsResponse holds the response payload for listing card transactions.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListCcrImagesResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/CcrImage" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListDiskSnapshotsResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/DiskSnapshot" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListDisksResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/DiskV1" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListDisksResponseV1 is the response type for GET requests to the disks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListEntitiesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/Entity" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListEntitiesResponseV1 is the response type for GET requests to the entities endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListExternalLoadBalancersResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/ExternalLoadBalancer" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListIBNetworksResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/IBNetwork" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListIBNetworksResponseV1 is the response type for GET requests to the IB Networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListIBPartitionsResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/IBPartition" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListIBPartitionsResponseV1 is the response type for GET requests to the IB Partitions endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListImagesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/Image" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListImagesResponseV1 is the resource response type for GET requests to the Images endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListInstanceGroupsResponse": { "description": "ListInstanceGroupsResponse is the resource response type for GET\nrequests to the InstanceGroup endpoint.", "properties": { "items": { "items": { "$ref": "#/definitions/InstanceGroup" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListInstanceTemplatesResponseV1": { "description": "ListInstanceTemplatesResponseV1 is the resource response type for GET\nrequests to the InstanceTemplates endpoint.", "properties": { "items": { "items": { "$ref": "#/definitions/InstanceTemplate" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListInstancesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/InstanceV1" }, "type": "array", "x-go-name": "Items" }, "next_page_token": { "description": "Base64 encoded token representing the next page of instances.\nEmpty if currently on the last page.", "example": "bXktbGFzdC12bQ", "type": "string", "x-go-name": "NextPageToken" }, "prev_page_token": { "description": "Base64 encoded token representing the previous page of instances.\nEmpty if currently on the first page.", "example": "bXktZmlyc3Qtdm0", "type": "string", "x-go-name": "PrevPageToken" } }, "required": [ "items" ], "title": "ListInstancesResponseV1 is the response type for GET requests to /compute/vms/instances.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListKubernetesClustersResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/KubernetesCluster" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListKubernetesNodePoolsResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/KubernetesNodePool" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListKubernetesVersionsResponse": { "properties": { "kubernetes_cluster_versions": { "description": "The list of available Kubernetes cluster versions.", "items": { "$ref": "#/definitions/KubernetesClustersVersionInfo" }, "type": "array", "x-go-name": "KubernetesClusterVersions" }, "kubernetes_node_pool_versions": { "description": "The list of available Kubernetes node pool versions.", "items": { "$ref": "#/definitions/KubernetesNodePoolsVersionInfo" }, "type": "array", "x-go-name": "KubernetesNodePoolVersions" } }, "required": [ "kubernetes_cluster_versions", "kubernetes_node_pool_versions" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListLimitedUsageAPIKeysResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/LimitedUsageAPIKeyInfo" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListLoadBalancersResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/LoadBalancer" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListLocationsResponseV1": { "properties": { "items": { "example": [ "us-northcentral1-a" ], "items": { "type": "string" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListManifestsResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/Manifest" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListOperationsResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/Operation" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/schemas/utils/fetch" }, "ListOrgQuotasResponse": { "properties": { "quotas": { "description": "Quotas are all returned org quotas", "items": { "$ref": "#/definitions/OrgQuota" }, "type": "array", "x-go-name": "Quotas" } }, "title": "ListOrgQuotasResponse is the response for listing a org's quotas.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListPaymentMethodsResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/PaymentMethodCard" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListProjectQuotasResponse": { "properties": { "quotas": { "description": "Quotas are all returned project quotas", "items": { "$ref": "#/definitions/ProjectQuota" }, "type": "array", "x-go-name": "Quotas" } }, "title": "ListProjectQuotasResponse is the response for listing a project's quotas.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListProjectsResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/Project" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListProjectsResponseV1 is the response type for GET requests to the roles endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListRepositoriesResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/Repository" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListRoleBindingsResponse": { "properties": { "role_bindings": { "items": { "$ref": "#/definitions/RoleBinding" }, "type": "array", "x-go-name": "RoleBindings" } }, "required": [ "role_bindings" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListRolesResponse": { "properties": { "roles": { "items": { "$ref": "#/definitions/Role" }, "type": "array", "x-go-name": "Roles" } }, "required": [ "roles" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListS3BucketsResponse": { "properties": { "items": { "description": "List of buckets", "items": { "$ref": "#/definitions/S3Bucket" }, "type": "array", "x-go-name": "Items" }, "next_page_token": { "description": "Next page token", "type": "string", "x-go-name": "NextPageToken" }, "prev_page_token": { "description": "Previous page token", "type": "string", "x-go-name": "PrevPageToken" } }, "required": [ "items" ], "title": "ListS3BucketsResponse is the response type for GET requests to the S3 buckets endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListS3KeysResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/S3Key" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListS3KeysResponse is the response type for GET requests to the S3 access keys endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListS3SupportedLocationsResponse": { "properties": { "items": { "description": "List of locations where object storage (S3) is enabled.", "example": [ "us-east1-a", "us-northcentral1-a" ], "items": { "type": "string" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListS3SupportedLocationsResponse is the response type for GET requests to the S3 supported-locations endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSCIMIntegrationTokensResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/SCIMIntegrationTokenInfo" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListSCIMIntegrationTokensResponse wraps a list of SCIM integration token responses.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSCIMIntegrationsResponse": { "properties": { "integrations": { "items": { "$ref": "#/definitions/SCIMIntegrationResponse" }, "type": "array", "x-go-name": "Integrations" } }, "required": [ "integrations" ], "title": "ListSCIMIntegrationsResponse wraps a list of SCIM integration responses.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSSHKeysResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/SSHKey" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSSOProvidersResponse": { "properties": { "sso_providers": { "items": { "$ref": "#/definitions/SSOProvider" }, "type": "array", "x-go-name": "SsoProviders" } }, "required": [ "sso_providers" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSlurmClustersResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/SlurmCluster" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSlurmNodesetsResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/SlurmNodeset" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSupportedLocationsResponse": { "properties": { "items": { "items": { "type": "string" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListSupportedProvidersResponse": { "properties": { "items": { "items": { "type": "string" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListTokensResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/TokenInfo" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListTypesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/Type" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListVPCFirewallRulesResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCFirewallRule" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCFirewallRulesResponseV1 is the response type for GET requests to the VPC Firewall Rules endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListVPCNetworksResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCNetwork" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCNetworksResponseV1 is the response type for GET requests to the VPC Networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListVPCSubnetsResponseV1": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCSubnet" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCSubnetsResponseV1 is the response type for GET requests to the VPC Subnets endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListenPortAndBackend": { "properties": { "backends": { "description": "List of backend configurations.", "items": { "$ref": "#/definitions/Backend" }, "type": "array", "x-go-name": "Backends" }, "listen_port": { "description": "Port on which the load balancer listens.", "example": 80, "format": "int64", "type": "integer", "x-go-name": "ListenPort" } }, "required": [ "listen_port", "backends" ], "title": "ListenPortAndBackend defines a mapping of listen ports to backend configurations.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LoadBalancer": { "properties": { "algorithm": { "example": "random", "type": "string", "x-go-name": "Algorithm" }, "destinations": { "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "ips": { "items": { "$ref": "#/definitions/IPAddresses" }, "type": "array", "x-go-name": "IPs" }, "location": { "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-subnet", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "protocols": { "example": "[tcp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "type": { "example": "internal_ipv4,", "type": "string", "x-go-name": "Type" } }, "required": [ "id", "name", "network_interfaces", "destinations", "location", "protocols", "algorithm", "ips" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LoadBalancerNetworkInterface": { "properties": { "network": { "example": "dbaafd53-96ea-4754-9cce-78e7f08ac151", "type": "string", "x-go-name": "Network" }, "subnet": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "Subnet" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LoadBalancersPatchRequestV1": { "properties": { "destinations": { "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "name": { "example": "my-load-balancer", "type": "string", "x-go-name": "Name" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LoadBalancersPostRequest": { "properties": { "algorithm": { "example": "random", "type": "string", "x-go-name": "Algorithm" }, "destinations": { "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "location": { "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-load-balancer", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "protocols": { "example": "[tcp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "type": { "example": "internal_ipv4", "type": "string", "x-go-name": "Type" } }, "required": [ "name", "destinations", "location", "protocols", "network_interfaces", "algorithm" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "LogEntry": { "properties": { "action": { "description": "Name of the action", "example": "Create", "type": "string", "x-go-name": "Action" }, "action_detail": { "description": "Name of the action", "example": "Attach Disk", "type": "string", "x-go-name": "ActionDetail" }, "actor_email": { "description": "ActorEmail: the email address of the actor", "example": "xxxx@gmail.coom", "type": "string", "x-go-name": "ActorEmail" }, "actor_id": { "description": "Actor: who performed the action.", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb || \"system\"", "type": "string", "x-go-name": "Actor" }, "actor_type": { "description": "ActorType: type of the actor", "example": "user || admin || system", "type": "string", "x-go-name": "ActorType" }, "client_ip": { "description": "IP address of the request", "example": "10.2.5.355", "type": "string", "x-go-name": "ClientIP" }, "end_time": { "description": "The end time of the request", "example": "\"2024-08-24T05:25:33.860Z\"", "type": "string", "x-go-name": "EndTime" }, "error_message": { "description": "The error message of the request", "example": "\"The requested resource is out of stock. Please try again later.\"", "type": "string", "x-go-name": "ErrorMsg" }, "locations": { "description": "Region names of where the action is performed if applicable", "example": "us-east1", "items": { "type": "string" }, "type": "array", "x-go-name": "Location" }, "organization_id": { "description": "organization id", "example": "d10efcc0-7dba-4163-a3f0-f48aae20712a", "type": "string", "x-go-name": "OrganizationID" }, "organization_name": { "description": "organization name", "example": "crusoe.ai", "type": "string", "x-go-name": "OrganizationName" }, "project_id": { "description": "Project ID", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "type": "string", "x-go-name": "ProjectID" }, "project_name": { "description": "Project Name", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "type": "string", "x-go-name": "ProjectName" }, "result": { "description": "The result of the action", "example": "OK", "type": "string", "x-go-name": "Result" }, "start_time": { "description": "The start time of the request", "example": "\"2024-08-24T05:25:30.954Z\"", "type": "string", "x-go-name": "StartTime" }, "surface": { "description": "Surface type of the request", "example": "browser", "type": "string", "x-go-name": "Surface" }, "target_ids": { "description": "The targets of the action\nrequired", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb,6ac4d027-ee2a-4c0c-9b6f-e8638a7ae867", "items": { "type": "string" }, "type": "array", "x-go-name": "Target" }, "target_names": { "description": "The target names of the action", "example": "vm-test-1,vm-test-2", "items": { "type": "string" }, "type": "array", "x-go-name": "TargetName" }, "target_type": { "description": "The target type of the action\nrequired", "example": "VM", "type": "string", "x-go-name": "TargetType" } }, "required": [ "action", "actor_id", "actor_email", "actor_type", "client_ip", "end_time", "result", "start_time", "surface" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Manifest": { "properties": { "digest": { "type": "string", "x-go-name": "Digest" }, "pulled_at": { "format": "date-time", "type": "string", "x-go-name": "PullTimestampUTC" }, "pushed_at": { "format": "date-time", "type": "string", "x-go-name": "PushTimestampUTC" }, "size_bytes": { "type": "string", "x-go-name": "SizeBytes" }, "tags": { "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NATGateway": { "properties": { "id": { "example": "8f3c4b7d-3c3b-4a63-8e1a-6cd14c1dfe91", "type": "string", "x-go-name": "ID" }, "public_ipv4_address": { "type": "string", "x-go-name": "PublicIPV4Address" }, "public_ipv4_id": { "type": "string", "x-go-name": "PublicIPV4ID" } }, "required": [ "id", "public_ipv4_id", "public_ipv4_address" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NetworkInterface": { "properties": { "external_dns_name": { "type": "string", "x-go-name": "ExternalDNSName" }, "id": { "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "interface_type": { "example": "ethernet", "type": "string", "x-go-name": "InterfaceType" }, "ips": { "items": { "$ref": "#/definitions/IPAddresses" }, "type": "array", "x-go-name": "IPs" }, "mac_address": { "example": "00:00:5e:00:53:af", "type": "string", "x-go-name": "MACAddress" }, "name": { "example": "network-interface-1", "type": "string", "x-go-name": "Name" }, "network": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "Network" }, "subnet": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "Subnet" } }, "required": [ "id", "name", "network", "subnet", "interface_type", "mac_address", "ips", "external_dns_name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NetworkTarget": { "properties": { "cidr": { "example": "10.1.2.3/24", "type": "string", "x-go-name": "CIDR" }, "resource_id": { "example": "306aa10d-5570-4e47-88c9-46bf11bd8737", "type": "string", "x-go-name": "ResourceID" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NodepoolInfo": { "properties": { "instance_type": { "type": "string", "x-go-name": "InstanceType" }, "nodepool_id": { "type": "string", "x-go-name": "NodepoolID" }, "nodepool_name": { "type": "string", "x-go-name": "NodepoolName" }, "nodepool_state": { "type": "string", "x-go-name": "NodepoolState" }, "vms": { "items": { "$ref": "#/definitions/VMInfo" }, "type": "array", "x-go-name": "Vms" } }, "title": "NodepoolInfo contains information about a nodepool.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NonHealthyVM": { "properties": { "detail": { "description": "Human-readable detail about the health status.", "example": "MemoryPressure", "type": "string", "x-go-name": "Detail" }, "reason": { "description": "The reason code for the health status.", "example": "node_condition", "type": "string", "x-go-name": "Reason" }, "status": { "description": "The health status (degraded, unhealthy, or not_evaluated).", "example": "degraded", "type": "string", "x-go-name": "Status" }, "vm_id": { "description": "The VM ID.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "VMID" }, "vm_name": { "description": "The VM name.", "example": "my-gpu-node-1", "type": "string", "x-go-name": "VMName" } }, "required": [ "vm_id", "vm_name", "status", "reason", "detail" ], "title": "NonHealthyVM describes a single non-healthy or not-evaluated VM and the reason for its status.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NvlinkDomainSummaryResponse": { "properties": { "available_nodes": { "description": "Number of nodes currently available in the NVLink domain", "example": 8, "format": "int32", "type": "integer", "x-go-name": "AvailableNodes" }, "id": { "description": "Unique identifier for the NVLink domain", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "ID" }, "location": { "description": "Geographic location of the NVLink domain", "example": "us-east-1", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the NVLink domain", "example": "nvlink-domain-us-east-1", "type": "string", "x-go-name": "Name" }, "total_nodes": { "description": "Total number of nodes in the NVLink domain", "example": 16, "format": "int32", "type": "integer", "x-go-name": "TotalNodes" } }, "title": "NvlinkDomainSummaryResponse represents summary information about an NVLink domain.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "NvlinkDomainsSummaryListResponse": { "properties": { "nvlink_domains": { "description": "List of NVLink domain summaries", "items": { "$ref": "#/definitions/NvlinkDomainSummaryResponse" }, "type": "array", "x-go-name": "NvlinkDomains" } }, "title": "NvlinkDomainsSummaryListResponse represents a list of NVLink domain summaries.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "OIDCAuthConfig": { "description": "This allows the Kubernetes API server to authenticate users via an external OIDC provider.", "properties": { "ca_cert": { "description": "PEM encoded Certificate Authority certificate to use when validating the OIDC server's certificate.", "type": "string", "x-go-name": "CACert" }, "client_id": { "description": "The client ID for the OpenID Connect client.", "example": "kubernetes", "type": "string", "x-go-name": "ClientID" }, "groups_claim": { "description": "This is the claim that will be used to identify the groups.", "example": "groups", "type": "string", "x-go-name": "GroupsClaim" }, "issuer_url": { "description": "The URL of the OpenID issuer", "example": "https://oauth2.example.com", "type": "string", "x-go-name": "IssuerURL" }, "username_claim": { "description": "This is the claim that will be used to identify the user. Defaults to 'sub'.", "example": "email", "type": "string", "x-go-name": "UsernameClaim" }, "username_prefix": { "description": "A prefix to add before the username to avoid name conflicts.", "example": "oidc:", "type": "string", "x-go-name": "UsernamePrefix" } }, "title": "OIDCAuthConfig defines OpenID Connect authentication configuration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ObservabilityMetrics": { "description": "see also https://prometheus.io/docs/prometheus/latest/querying/api/", "properties": { "data": { "example": "{}", "x-go-name": "Data" }, "error": { "example": "???", "type": "string", "x-go-name": "Error" }, "errorType": { "example": "???", "type": "string", "x-go-name": "ErrorType" }, "infos": { "example": "???", "items": { "type": "string" }, "type": "array", "x-go-name": "Infos" }, "status": { "example": "success", "type": "string", "x-go-name": "Status" }, "warnings": { "example": "???", "items": { "type": "string" }, "type": "array", "x-go-name": "Warnings" } }, "required": [ "status", "data" ], "title": "This is the standard format for prometheus query responses;", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Operation": { "description": "Individual resources that use Operations should populate the `metadata` field\nwith resource-specific information.", "properties": { "completed_at": { "example": "2021-12-03T19:59:34Z", "type": "string", "x-go-name": "CompletedAt" }, "metadata": { "example": "{}", "x-go-name": "Metadata" }, "operation_id": { "example": "F6EF489C-086E-458D-B812-7962964A28C9", "type": "string", "x-go-name": "ID" }, "result": { "example": "{}", "x-go-name": "Result" }, "started_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "StartedAt" }, "state": { "enum": [ "IN_PROGRESS", "SUCCEEDED", "FAILED" ], "example": "IN_PROGRESS", "type": "string", "x-go-name": "State" } }, "required": [ "operation_id", "state", "metadata", "started_at", "completed_at" ], "title": "Operation contains the common fields for all Operation API objects.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/schemas/utils/fetch" }, "OperationDetails": { "properties": { "error": { "description": "Error associated to the operation\nPopulated if the operation was a partial success due to best effort", "type": "string", "x-go-name": "Error" }, "num_vms_created": { "description": "Number of VMs created as part of the operation", "format": "int32", "type": "integer", "x-go-name": "NumVMsCreated" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "OrgQuota": { "properties": { "available": { "description": "Available is the remaining quota available to the org", "example": 6, "format": "int64", "type": "integer", "x-go-name": "Available" }, "description": { "description": "Description is the customer-facing description of the quota", "example": "Users", "type": "string", "x-go-name": "Description" }, "max": { "description": "Max is the maximum quota allowed for the resource in the org", "example": 10, "format": "int64", "type": "integer", "x-go-name": "Max" }, "programmatic_name": { "description": "ProgrammaticName is the external, human-friendly identifier for the quota", "example": "users", "type": "string", "x-go-name": "ProgrammaticName" }, "type": { "description": "Type is the enum quota type. This is meant to be used internally", "example": "ORG_QUOTAS_MAXIMUM_USERS", "type": "string", "x-go-name": "Type" }, "used": { "description": "Used is the current quota consumed by the org", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Used" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "OrgUserCredentialsResponse": { "properties": { "user_credentials": { "additionalProperties": { "$ref": "#/definitions/CredentialsResponse" }, "type": "object", "x-go-name": "UserCredentials" } }, "required": [ "user_credentials" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "OrganizationMFA": { "properties": { "created_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "method": { "enum": [ "totp", "webauthn" ], "type": "string", "x-go-name": "Method" } }, "required": [ "method", "created_at" ], "title": "OrganizationMFA contains details about a single required MFA method.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "PartialHostChannelAdapter": { "properties": { "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartitionID" }, "transport_partition_id": { "type": "string", "x-go-name": "TransportPartitionID" } }, "title": "PartialHostChannelAdapter is used when POSTing and PATCHing VMs to assign IB Partitions.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "PaymentMethodCard": { "properties": { "brand": { "example": "visa", "type": "string", "x-go-name": "Brand" }, "cardholder_name": { "example": "John Doe", "type": "string", "x-go-name": "CardholderName" }, "exp_month": { "example": 12, "format": "int64", "type": "integer", "x-go-name": "ExpMonth" }, "exp_year": { "example": 2027, "format": "int64", "type": "integer", "x-go-name": "ExpYear" }, "id": { "example": "pm_1OqJzX2eZvKYlo2C0000000", "type": "string", "x-go-name": "ID" }, "is_default": { "example": true, "type": "boolean", "x-go-name": "IsDefault" }, "last4": { "example": "\"4242\"", "type": "string", "x-go-name": "Last4" } }, "required": [ "id", "brand", "last4", "exp_month", "exp_year", "is_default" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "PodOverview": { "properties": { "clusters": { "description": "Clusters within this pod.", "items": { "$ref": "#/definitions/ClusterOverview" }, "type": "array", "x-go-name": "Clusters" }, "metrics": { "$ref": "#/definitions/AggregateMetrics" }, "pod_id": { "description": "Pod UUID.", "example": "68e33474-cff1-a5cd-dcc2-a269863e019e", "type": "string", "x-go-name": "PodID" } }, "required": [ "pod_id", "metrics", "clusters" ], "title": "PodOverview contains the data for a single IB network pod.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "PrivateIPv4Address": { "properties": { "address": { "example": "10.1.2.3", "type": "string", "x-go-name": "Address" } }, "required": [ "address" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Project": { "properties": { "id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ID" }, "name": { "example": "Admin", "type": "string", "x-go-name": "Name" }, "organization_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "OrganizationID" }, "relation": { "description": "relation is deprecated", "example": "owner", "type": "string", "x-go-name": "Relation" }, "resources": { "$ref": "#/definitions/ProjectResources" } }, "required": [ "id", "organization_id", "name", "relation", "resources" ], "title": "Project contains identifying information for a project.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectIsUsingNFSForSharedDisksResponse": { "properties": { "status": { "example": false, "type": "boolean", "x-go-name": "Status" } }, "required": [ "status" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectIsUsingSecondaryVASTClusterResponse": { "properties": { "enabled": { "example": false, "type": "boolean", "x-go-name": "Enabled" } }, "required": [ "enabled" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectOverviewResponse": { "properties": { "instance_types": { "description": "List of instance type summaries for the project.", "items": { "$ref": "#/definitions/InstanceTypeOverview" }, "type": "array", "x-go-name": "InstanceTypes" } }, "required": [ "instance_types" ], "title": "ProjectOverviewResponse is the gateway response for the project-level infrastructure overview.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectQuota": { "properties": { "available": { "description": "Used is the remaining quota available", "example": 6, "format": "int64", "type": "integer", "x-go-name": "Available" }, "category": { "description": "Category is the quota category", "example": "GPU Instance, Storage", "type": "string", "x-go-name": "Category" }, "description": { "description": "Description is the customer-facing description of the quota", "example": "A40 PCIe", "type": "string", "x-go-name": "Description" }, "max": { "description": "Max is the maximum quota allowed for the resource in the project", "example": 10, "format": "int64", "type": "integer", "x-go-name": "Max" }, "programmatic_name": { "description": "ProgrammaticName is the external name of the resource the quota applies to", "example": "a40", "type": "string", "x-go-name": "ProgrammaticName" }, "type": { "description": "Type is the enum quota type. This is meant to be used internally", "example": "PROJECT_QUOTA_TYPE_MAXIMUM_VM_SLICES_VCPU_6_MEM_60_A40_PCIE_48GB_1", "type": "string", "x-go-name": "Type" }, "used": { "description": "Used is the current quota consumed by the project", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Used" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectResourceDetails": { "properties": { "count": { "example": 5, "format": "int64", "type": "integer", "x-go-name": "Count" } }, "required": [ "count" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectResources": { "properties": { "disks": { "$ref": "#/definitions/ProjectResourceDetails" }, "images": { "$ref": "#/definitions/ProjectResourceDetails" }, "instances": { "$ref": "#/definitions/ProjectResourceDetails" }, "snapshots": { "$ref": "#/definitions/ProjectResourceDetails" }, "vpc_networks": { "$ref": "#/definitions/ProjectResourceDetails" } }, "required": [ "instances", "disks", "snapshots", "images", "vpc_networks" ], "title": "ProjectResources contains information about resources within a project.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectUsageResponse": { "properties": { "billable_metric": { "example": "\"gpu-hours\"", "type": "string", "x-go-name": "Metric" }, "date": { "example": "\"2022-07-01\"", "type": "string", "x-go-name": "Date" }, "project_id": { "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"", "type": "string", "x-go-name": "ProjectID" }, "quantity": { "example": 2.123, "format": "double", "type": "number", "x-go-name": "Quantity" }, "region": { "example": "\"us-northcentral1\"", "type": "string", "x-go-name": "Region" }, "reservation_id": { "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"", "type": "string", "x-go-name": "ReservationID" }, "resource_type": { "example": "\"a40.1x\"", "type": "string", "x-go-name": "ResourceType" } }, "required": [ "resource_type", "project_id", "reservation_id", "region", "date", "quantity", "billable_metric" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectsPostRequest": { "properties": { "name": { "example": "Admin", "type": "string", "x-go-name": "Name" }, "organization_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "OrganizationID" } }, "required": [ "organization_id", "name" ], "title": "ProjectsPostRequest is the request type for POST requests to the projects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectsPutPostResponseV1": { "properties": { "project": { "$ref": "#/definitions/Project" } }, "required": [ "project" ], "title": "ProjectsPutPostResponseV1 is the response type for PUT and POST requests to the projects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectsPutRequest": { "properties": { "name": { "example": "Admin", "type": "string", "x-go-name": "Name" } }, "required": [ "name" ], "title": "ProjectsPutRequest is the request type for PUT requests to the projects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProjectsServiceCreateProjectBody": { "description": "CreateProjectRequest is the request for creating a new project.", "properties": { "name": { "example": "my-project", "title": "name is the name of the project", "type": "string" } }, "type": "object" }, "ProjectsServiceUpdateProjectBody": { "properties": { "name": { "example": "my-project", "title": "name is the name of the project", "type": "string" } }, "title": "UpdateProjectRequest is the request for updating an existing project", "type": "object" }, "ProspectPostRequest": { "properties": { "company": { "example": "crusoe", "type": "string", "x-go-name": "Company" }, "email": { "example": "john@crusoeenergy.com", "type": "string", "x-go-name": "Email" }, "expected_capacity": { "enum": [ "\u003c64 GPUs", "64-128 GPUs", "128-256 GPUs", "256+ GPUs" ], "example": "\u003c64 GPUs", "type": "string", "x-go-name": "ExpectedCapacity" }, "expected_commitment": { "enum": [ "On-demand", "1 year", "2 year", "3 year" ], "example": "1 year", "type": "string", "x-go-name": "ExpectedCommitment" }, "expected_service": { "example": "[Nvidia H100, Nvidia L40S]", "items": { "type": "string" }, "type": "array", "x-go-name": "ExpectedService" }, "name": { "example": "john", "type": "string", "x-go-name": "Name" }, "referral": { "example": "marketing event", "type": "string", "x-go-name": "Referral" }, "source": { "example": "portal", "type": "string", "x-go-name": "Source" }, "use_case": { "example": "training model to minimize energy usage", "type": "string", "x-go-name": "UseCase" } }, "required": [ "email", "name", "company", "source" ], "title": "ProspectPostRequest is the request type for POST requests to the prospects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ProspectPostResponse": { "title": "ProspectPostResponse is the response type for POST requests to the prospects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "PublicIPv4Address": { "properties": { "address": { "example": "121.0.0.0", "type": "string", "x-go-name": "Address" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "type": { "example": "dynamic", "type": "string", "x-go-name": "Type" } }, "required": [ "address", "id", "type" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "QuotaValidationResult": { "properties": { "ActualUsed": { "description": "ActualUsed is the amount of quota consumed based on actual resource usage", "format": "int64", "type": "integer" }, "LimitReached": { "description": "LimitReached will be true if the actual used is at or above the quota limit, false otherwise", "type": "boolean" }, "QuotaLimit": { "description": "QuotaLimit is the amount of quota allocated for the resource", "format": "int64", "type": "integer" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RemediationConfig": { "properties": { "default_action": { "$ref": "#/definitions/AutoRemediation" }, "effective_action": { "$ref": "#/definitions/AutoRemediation" }, "issue_name": { "description": "The issue name / remediation type (e.g., \"XID_74\", \"GPU_FELL_OFF_THE_BUS\").", "example": "XID_74", "type": "string", "x-go-name": "IssueName" }, "user_override": { "$ref": "#/definitions/AutoRemediation" } }, "title": "RemediationConfig represents a single remediation configuration in the API response.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RemediationCounts": { "properties": { "failed": { "description": "Number of remediation operations that failed.", "example": 0, "format": "int64", "type": "integer", "x-go-name": "Failed" }, "in_progress": { "description": "Number of remediation operations currently in progress.", "example": 1, "format": "int64", "type": "integer", "x-go-name": "InProgress" }, "succeeded": { "description": "Number of remediation operations that succeeded.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "Succeeded" } }, "required": [ "in_progress", "succeeded", "failed" ], "title": "RemediationCounts contains counts of auto-remediation operations by state.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RemediationOverrideRequest": { "properties": { "action": { "$ref": "#/definitions/AutoRemediation" }, "issue_name": { "description": "The issue name to override (e.g., \"XID_74\", \"GPU_FELL_OFF_THE_BUS\").", "example": "XID_74", "type": "string", "x-go-name": "IssueName" } }, "required": [ "issue_name", "action" ], "title": "RemediationOverrideRequest represents a remediation override in the API request.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Repository": { "properties": { "created_at": { "format": "date-time", "type": "string", "x-go-name": "CreatedAt" }, "id": { "type": "string", "x-go-name": "ID" }, "location": { "type": "string", "x-go-name": "Location" }, "max_size_bytes": { "type": "string", "x-go-name": "MaxSizeBytes" }, "mode": { "type": "string", "x-go-name": "Mode" }, "name": { "type": "string", "x-go-name": "Name" }, "state": { "type": "string", "x-go-name": "State" }, "upstream_registry": { "$ref": "#/definitions/UpstreamRegistry" }, "url": { "type": "string", "x-go-name": "URL" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RepositoryQuota": { "properties": { "last_requested_timestamp_utc": { "type": "string", "x-go-name": "LastRequestedTimestampUTC" }, "max_size_bytes": { "type": "string", "x-go-name": "MaxSizeBytes" }, "used_size_bytes": { "type": "string", "x-go-name": "UsedSizeBytes" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RepositoryRequest": { "properties": { "location": { "type": "string", "x-go-name": "Location" }, "max_size_bytes": { "type": "string", "x-go-name": "MaxSizeBytes" }, "mode": { "type": "string", "x-go-name": "Mode" }, "name": { "type": "string", "x-go-name": "Name" }, "upstream_registry": { "$ref": "#/definitions/UpstreamRegistry" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Reservation": { "properties": { "contract_end_date": { "example": "2025-08-14T09:00:35Z", "type": "string", "x-go-name": "ContractEndDate" }, "contract_start_date": { "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "ContractStartDate" }, "date_delivered": { "example": "2024-07-14T09:00:35Z", "type": "string", "x-go-name": "DateDelivered" }, "delivery_deadline": { "example": "2024-08-14T09:00:35Z", "type": "string", "x-go-name": "DeliveryDeadline" }, "duration": { "example": 12, "format": "float", "type": "number", "x-go-name": "Duration" }, "id": { "description": "TODO: follow new format for giving descriptions to fields for apis", "example": "e384a1de-81f8-4cb2-b312-a7d88a9bf9cb", "type": "string", "x-go-name": "ID" }, "locations": { "example": "\"us-east1\"", "items": { "type": "string" }, "type": "array", "x-go-name": "Locations" }, "price": { "example": "6.25", "type": "string", "x-go-name": "Price" }, "product_line": { "example": "h100", "type": "string", "x-go-name": "ProductLine" }, "projects": { "example": "\"1a8ebda8-3c68-4ba6-adf6-961c3ec53748\"", "items": { "type": "string" }, "type": "array", "x-go-name": "Projects" }, "quantity": { "example": 64, "format": "int64", "type": "integer", "x-go-name": "Quantity" }, "reservation_type": { "example": "RIPA", "type": "string", "x-go-name": "ReservationType" }, "used_quantity": { "example": 32, "format": "int64", "type": "integer", "x-go-name": "UsedQuantity" }, "vm_ids": { "example": "1a8ebda8-3c68-4ba6-adf6-961c3ec53748,6f70a988-fac6-4a9c-ae26-cb016d7bec72", "items": { "type": "string" }, "type": "array", "x-go-name": "VMIDs" } }, "required": [ "id", "reservation_type", "product_line", "duration", "quantity", "used_quantity", "locations", "projects", "contract_start_date", "contract_end_date", "delivery_deadline", "date_delivered", "vm_ids", "price" ], "title": "Reservation contains information about a customer reservation.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ReservationSpecification": { "properties": { "id": { "description": "Reservation ID to use for the VM. Incompatible with\nSelectionStrategy specification.", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ID" }, "selection_strategy": { "default": "lowest_cost", "description": "Strategy for automatically selecting a reservation. Defaults to lowest cost selection.\nOn-demand may be specified opt out of reservation usages. Incompatible with ID specification.", "enum": [ "lowest_cost", "on_demand" ], "example": "lowest_cost", "type": "string", "x-go-name": "SelectionStrategy" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ReservationsGetResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/Reservation" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ReservationsGetResponse is the response type for GET requests to the reservations endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Role": { "properties": { "allowed_scopes": { "items": { "type": "string" }, "type": "array", "x-go-name": "AllowedScopes" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "string", "x-go-name": "ID" }, "org_id": { "type": "string", "x-go-name": "OrgID" }, "role_name": { "type": "string", "x-go-name": "RoleName" } }, "required": [ "id", "role_name", "allowed_scopes", "org_id", "description" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RoleBinding": { "properties": { "customer_id": { "type": "string", "x-go-name": "CustomerID" }, "id": { "type": "string", "x-go-name": "ID" }, "role_id": { "type": "string", "x-go-name": "RoleID" }, "role_name": { "type": "string", "x-go-name": "RoleName" }, "scope_object_id": { "type": "string", "x-go-name": "ScopeObjectID" }, "scope_type": { "type": "string", "x-go-name": "ScopeType" } }, "required": [ "id", "customer_id", "role_id", "scope_type", "scope_object_id", "role_name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RoleBindingInput": { "properties": { "customer_id": { "type": "string", "x-go-name": "CustomerID" }, "role_id": { "type": "string", "x-go-name": "RoleID" }, "scope_object_id": { "type": "string", "x-go-name": "ScopeObjectID" }, "scope_type": { "enum": [ "org", "project" ], "type": "string", "x-go-name": "ScopeType" } }, "required": [ "customer_id", "role_id", "scope_type", "scope_object_id" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3Bucket": { "description": "This is the REST-friendly model for the `BucketInfo` proto.", "properties": { "archived_at": { "description": "Archived date in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ArchivedAt" }, "bucket_size": { "description": "Size of the bucket in GiB.", "example": 2.42, "format": "float", "type": "number", "x-go-name": "BucketSize" }, "created_at": { "description": "Creation date in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "location": { "description": "Location of the bucket.", "example": "us-eaststaging1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the bucket.", "example": "my-awesome-bucket", "type": "string", "x-go-name": "Name" }, "object_lock_enabled": { "description": "Whether object lock is enabled or not.", "example": false, "type": "boolean", "x-go-name": "ObjectLockEnabled" }, "project_id": { "description": "Project of the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ProjectID" }, "retention_mode": { "$ref": "#/definitions/S3RetentionMode" }, "retention_period": { "description": "How long objects are retained.", "example": 30, "format": "int32", "type": "integer", "x-go-name": "RetentionPeriod" }, "retention_period_unit": { "$ref": "#/definitions/S3RetentionPeriodUnit" }, "s3_url": { "description": "URL of the bucket.", "example": "https://object.us-eaststaging7-b.crusoecloudcompute.com/my-first-bucket", "type": "string", "x-go-name": "S3URL" }, "tags": { "additionalProperties": { "type": "string" }, "description": "List of tags for this bucket.", "type": "object", "x-go-name": "Tags" }, "updated_at": { "description": "Updated date in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "user_id": { "description": "User managing the bucket.", "example": "S3U_...", "type": "string", "x-go-name": "UserID" }, "versioning_state": { "$ref": "#/definitions/S3VersioningState" } }, "required": [ "name", "user_id", "project_id", "location", "versioning_state", "object_lock_enabled", "created_at", "updated_at" ], "title": "S3Bucket represents information about a single S3 bucket.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3Key": { "properties": { "access_key_id": { "description": "The Access Key ID for S3 operations.", "example": "S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab", "type": "string", "x-go-name": "AccessKeyID" }, "alias": { "description": "Alias for the access key.", "example": "my-service-account", "type": "string", "x-go-name": "Alias" }, "created_at": { "description": "Creation date of S3 key in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "expire_at": { "description": "Expiration date of S3 key in RFC3339 format.", "example": "2022-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpireAt" }, "key_uuid": { "description": "The Key UUID for the S3 access key.", "example": "f5705300-79f8-4686-9b9f-02496a053bc0", "type": "string", "x-go-name": "KeyUUID" }, "status": { "description": "The current status of the user's key.", "enum": [ "enabled", "disabled" ], "type": "string", "x-go-name": "Status" }, "user_id": { "description": "The user ID for the S3 user.", "example": "e7bed65d-e918-4fab-921c-03b8db94aa7b", "type": "string", "x-go-name": "UserID" } }, "required": [ "key_uuid", "user_id", "access_key_id", "status", "created_at" ], "title": "S3Key represents an S3 Access key for a user.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3RetentionMode": { "description": "enum: governance,compliance", "title": "S3RetentionMode defines the possible retention modes for S3 Object Lock.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3RetentionPeriodUnit": { "description": "enum: days,years", "title": "S3RetentionPeriodUnit defines the unit of measurement for retention periods.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3VersioningState": { "description": "enum: disabled,enabled,suspended", "title": "S3VersioningState defines the possible versioning states for an S3 bucket.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SCIMIntegrationResponse": { "properties": { "created_at": { "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "CreatedAt" }, "created_by": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "CreatedBy" }, "id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "identity_provider": { "example": "okta", "type": "string", "x-go-name": "IdentityProvider" }, "last_activity_at": { "description": "The timestamp of the last SCIM activity on this integration.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "LastActivityAt" }, "name": { "example": "Okta SCIM Integration", "type": "string", "x-go-name": "Name" }, "organization_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "OrganizationID" }, "status": { "example": "active", "type": "string", "x-go-name": "Status" }, "token_ids": { "items": { "type": "string" }, "type": "array", "x-go-name": "TokenIDs" }, "updated_at": { "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "UpdatedAt" }, "user_count": { "description": "UserCount is the number of users provisioned via this SCIM integration.", "format": "int32", "type": "integer", "x-go-name": "UserCount" } }, "required": [ "id", "organization_id", "name", "identity_provider", "token_ids", "status", "created_at", "updated_at", "created_by" ], "title": "SCIMIntegrationResponse is the JSON representation of a SCIM integration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SCIMIntegrationTokenInfo": { "properties": { "alias": { "example": "token1", "type": "string", "x-go-name": "Alias" }, "created_at": { "example": "2021-11-03T22:16:27Z", "type": "string", "x-go-name": "CreatedAt" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "key_id": { "example": "Hm11C1coQZm2+Aihn9ofYg", "type": "string", "x-go-name": "KeyID" }, "last_used": { "example": "2021-11-03T22:22:55Z", "type": "string", "x-go-name": "LastUsed" }, "project_id": { "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "type": "string", "x-go-name": "ProjectID" }, "usage": { "enum": [ "inference", "observability" ], "example": "inference", "type": "string", "x-go-name": "Usage" }, "user_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "UserID" } }, "required": [ "usage", "alias", "key_id", "created_at", "expires_at", "last_used", "user_id" ], "title": "SCIMIntegrationTokenInfo extends LimitedUsageAPIKeyInfo with a user ID.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SSHKey": { "properties": { "created_at": { "example": "2022-01-24T20:13:35.328Z", "type": "string", "x-go-name": "CreatedAt" }, "fingerprints": { "$ref": "#/definitions/Fingerprints" }, "id": { "example": "0b880f48-6a97-408f-8351-3cc30871e010", "type": "string", "x-go-name": "ID" }, "name": { "example": "public key 1", "type": "string", "x-go-name": "Name" }, "public_key": { "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E", "type": "string", "x-go-name": "PublicKey" } }, "required": [ "id", "name", "public_key", "created_at", "fingerprints" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SSOProvider": { "properties": { "client_id": { "type": "string", "x-go-name": "ClientID" }, "created_at": { "type": "string", "x-go-name": "CreatedAt" }, "email_domains": { "items": { "type": "string" }, "type": "array", "x-go-name": "EmailDomains" }, "id": { "type": "string", "x-go-name": "ID" }, "issuer_uri": { "type": "string", "x-go-name": "IssuerURI" }, "org_id": { "type": "string", "x-go-name": "OrganizationID" } }, "required": [ "id", "org_id", "client_id", "issuer_uri", "created_at", "email_domains" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmCluster": { "allOf": [ { "$ref": "#/definitions/SlurmClusterConfig" }, { "$ref": "#/definitions/SlurmClusterStatus" }, { "properties": { "created_at": { "description": "Created at timestamp of the cluster.", "type": "string", "x-go-name": "CreatedAt" }, "id": { "description": "ID of the Slurm cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "updated_at": { "description": "Updated at timestamp of the cluster.", "type": "string", "x-go-name": "UpdatedAt" }, "version": { "description": "Version of the cluster.", "type": "string", "x-go-name": "Version" } }, "required": [ "id" ], "type": "object" } ], "title": "SlurmCluster defines the specifications of the slurm cluster.", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterConfig": { "properties": { "home_volume_size": { "default": "\"10Ti\"", "description": "Size of the shared home volume as a Kubernetes quantity string (e.g. \"10Ti\"). Set empty to omit.", "type": "string", "x-go-name": "HomeVolumeSize" }, "location": { "description": "Location to create the Slurm cluster in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "login_node_type": { "default": "c1a.8x", "description": "Node type to use for Slurm Controller and Login.", "type": "string", "x-go-name": "LoginNodeType" }, "login_replicas": { "default": 1, "description": "Number of replica pods to use for LoginSet.", "format": "int64", "minimum": 1, "type": "integer", "x-go-name": "LoginReplicas" }, "name": { "description": "Name of the Slurm cluster.", "example": "my-slurm-cluster", "type": "string", "x-go-name": "Name" }, "root_ssh_pub_keys": { "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.", "example": [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D" ], "items": { "type": "string" }, "type": "array", "x-go-name": "RootSSHPubKeys" }, "subnet_id": { "description": "The ID of the subnet to deploy the Slurm cluster into.", "type": "string", "x-go-name": "SubnetID" } }, "required": [ "name", "location", "root_ssh_pub_keys" ], "title": "Configurable fields of the Slurm Cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterInternalConfig": { "additionalProperties": { "type": "string" }, "description": "SlurmClusterInternalConfig holds internal-only configuration that is used\nfor support and development purposes only.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterIssue": { "properties": { "code": { "description": "Machine-readable issue code.", "type": "string", "x-go-name": "Code" }, "message": { "description": "Human-readable description.", "type": "string", "x-go-name": "Message" } }, "title": "SlurmClusterIssue describes a problem preventing the cluster from reaching RUNNING state.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterPostRequest": { "allOf": [ { "$ref": "#/definitions/SlurmClusterConfig" }, { "properties": { "internal_config": { "$ref": "#/definitions/SlurmClusterInternalConfig" } }, "type": "object" } ], "title": "SlurmClusterPostRequest defines the specifications of the cluster to be created.", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterStatus": { "properties": { "issues": { "description": "Issues describing why the cluster is not in RUNNING.", "items": { "$ref": "#/definitions/SlurmClusterIssue" }, "type": "array", "x-go-name": "Issues" }, "login_node_endpoint": { "description": "Login node Endpoint (IP).", "type": "string", "x-go-name": "LoginNodeEndpoint" }, "nodesets": { "description": "Nodeset IDs running the Slurm Workers.", "items": { "type": "string" }, "type": "array", "x-go-name": "Nodesets" }, "state": { "description": "State of the slurm cluster.", "enum": [ "PROVISIONING", "RUNNING", "DELETING", "DELETED", "FAILED", "UPDATING", "UNHEALTHY", "CREATE_FAILED", "DELETE_FAILED" ], "type": "string", "x-go-name": "State" } }, "required": [ "state" ], "title": "Non-configurable, changing fields relating the current state of the cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmClusterStatusPostRequest": { "allOf": [ { "$ref": "#/definitions/SlurmClusterStatus" }, { "properties": { "home_volume_size": { "description": "Size of the shared home volume as a Kubernetes quantity string.", "type": "string", "x-go-name": "HomeVolumeSize" }, "login_replicas": { "description": "Number of replica pods to use for LoginSet.", "format": "int64", "type": "integer", "x-go-name": "LoginReplicas" }, "nodeset_status": { "items": { "$ref": "#/definitions/SlurmNodesetStatus" }, "type": "array", "x-go-name": "NodesetStatus" }, "volumes": { "description": "Additional shared volumes attached to the cluster.", "items": { "$ref": "#/definitions/SlurmSharedVolume" }, "type": "array", "x-go-name": "Volumes" } }, "type": "object" } ], "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmNodeset": { "properties": { "count": { "description": "Count of nodes that have all slurm replicas running.", "format": "int64", "type": "integer", "x-go-name": "Count" }, "created_at": { "description": "Created at timestamp of the nodeset.", "type": "string", "x-go-name": "CreatedAt" }, "id": { "description": "ID of the nodeset.", "type": "string", "x-go-name": "ID" }, "issues": { "description": "Message describing why nodeset is not in running.", "items": { "$ref": "#/definitions/SlurmNodesetIssue" }, "type": "array", "x-go-name": "Issues" }, "name": { "description": "Name of the nodeset.", "type": "string", "x-go-name": "Name" }, "state": { "description": "Current state.", "enum": [ "PROVISIONING", "RUNNING", "DELETING", "DELETED", "UPDATING", "UNHEALTHY", "CREATE_FAILED", "DELETE_FAILED" ], "type": "string", "x-go-name": "State" }, "subnet_id": { "description": "Subnet ID of the nodeset.", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "Transport Partition ID of the nodeset.", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "description": "VM type in the nodeset", "type": "string", "x-go-name": "Type" }, "updated_at": { "description": "Updated at timestamp of the nodeset.", "type": "string", "x-go-name": "UpdatedAt" }, "vm_ssh_public_key": { "description": "VM SSH Public Key of the nodeset.", "type": "string", "x-go-name": "VMSSHPublicKey" } }, "required": [ "id", "name", "type", "state", "count" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmNodesetIssue": { "properties": { "code": { "description": "Machine-readable issue code.", "type": "string", "x-go-name": "Code" }, "message": { "description": "Human-readable description.", "type": "string", "x-go-name": "Message" } }, "title": "SlurmNodesetIssue describes a problem preventing the nodeset from reaching RUNNING state.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmNodesetPatchRequest": { "properties": { "count": { "description": "Count of nodes in the nodeset.", "example": 8, "format": "int64", "type": "integer", "x-go-name": "Count" } }, "required": [ "count" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmNodesetPostRequest": { "properties": { "count": { "description": "Count of nodes in the nodeset.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count" }, "name": { "description": "Name of the nodeset.", "example": "my-slurm-nodeset", "type": "string", "x-go-name": "Name" }, "subnet_id": { "description": "ID of the subnet.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "ID of the transport partition.", "example": "b1f86d1b-42d2-490d-adb0-cc1029abf653", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "description": "VM type of the nodeset.", "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "vm_ssh_public_key": { "description": "VM SSH public key.", "example": "ssh-rsa AAAA...", "type": "string", "x-go-name": "VMSSHPublicKey" } }, "required": [ "name", "type", "count" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmNodesetStatus": { "properties": { "id": { "description": "ID of the worker nodeset.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ID" }, "issues": { "description": "Message describing why nodeset is not in RUNNING", "example": "Slurm Worker pods are initializing", "items": { "$ref": "#/definitions/SlurmNodesetIssue" }, "type": "array", "x-go-name": "Issues" }, "ready_count": { "description": "Count of nodes that are not only \"running\" but have all slurm replicas running", "example": 4, "format": "int64", "type": "integer", "x-go-name": "ReadyCount" }, "state": { "description": "State of the slurm nodeset", "enum": [ "PROVISIONING", "RUNNING", "DELETING", "DELETED", "UPDATING", "UNHEALTHY", "CREATE_FAILED", "DELETE_FAILED" ], "type": "string", "x-go-name": "State" } }, "required": [ "id", "ready_count", "state" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SlurmSharedVolume": { "properties": { "mount_point": { "description": "Mount point for the volume (e.g. \"/data\").", "type": "string", "x-go-name": "MountPoint" }, "size": { "description": "Size of the volume as a Kubernetes quantity string (e.g. \"2Ti\").", "type": "string", "x-go-name": "Size" } }, "required": [ "size", "mount_point" ], "title": "SlurmSharedVolume defines a shared volume attached to a Slurm cluster.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "SyncOperationResponse": { "properties": { "operation": { "$ref": "#/definitions/Operation" } }, "required": [ "operation" ], "title": "SyncOperationResponse is the response type for endpoints which return completed synchronous operations.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/schemas/utils/fetch" }, "TokenInfo": { "description": "These are the fields returned from a GET request.", "properties": { "access_key": { "example": "Hm11C1coQZm2+Aihn9ofYg", "type": "string", "x-go-name": "AccessKey" }, "alias": { "example": "token1", "type": "string", "x-go-name": "Alias" }, "created_at": { "example": "2021-11-03T22:16:27Z", "type": "string", "x-go-name": "CreatedAt" }, "expires_at": { "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" }, "last_used": { "example": "2021-11-03T22:22:55Z", "type": "string", "x-go-name": "LastUsed" } }, "required": [ "alias", "access_key", "created_at", "expires_at", "last_used" ], "title": "TokenInfo contains the Traits Island stores for a Token inside of Kratos.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "TokensPostResponse": { "properties": { "token": { "$ref": "#/definitions/GeneratedToken" } }, "required": [ "token" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "Type": { "properties": { "cpu_cores": { "example": 4, "format": "int64", "type": "integer", "x-go-name": "CPUCores" }, "cpu_type": { "example": "intel", "type": "string", "x-go-name": "CPUType" }, "description": { "example": "2x Nvidia A100", "type": "string", "x-go-name": "Description" }, "disk_gb": { "example": 8, "format": "int64", "type": "integer", "x-go-name": "DiskGB" }, "disk_type": { "example": "SSD", "type": "string", "x-go-name": "DiskType" }, "gpu_type": { "example": "A100", "type": "string", "x-go-name": "GPUType" }, "memory_gb": { "example": 16, "format": "int64", "type": "integer", "x-go-name": "MemoryGB" }, "memory_type": { "example": "RAM", "type": "string", "x-go-name": "MemoryType" }, "num_gpu": { "example": 2, "format": "int64", "type": "integer", "x-go-name": "NumGPU" }, "product_name": { "example": "a100.2x", "type": "string", "x-go-name": "ProductName" } }, "required": [ "product_name", "description", "cpu_cores", "cpu_type", "memory_gb", "memory_type", "disk_gb", "disk_type", "num_gpu", "gpu_type" ], "title": "Types an instance of a Crusoe cloud offering, used in the GET vms.types endpoint response.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdateAutoClustersConfigRequest": { "properties": { "fallback_to_project_reservations": { "description": "Whether to use project's unused reservations as fallback. If not set, existing value is preserved.", "example": true, "type": "boolean", "x-go-name": "FallbackToProjectReservations", "x-redocly-optional": true }, "remove_remediation_overrides": { "description": "Remediation overrides to remove (revert to system defaults).", "example": [ "XID_74", "GPU_FELL_OFF_THE_BUS" ], "items": { "type": "string" }, "type": "array", "x-go-name": "RemoveRemediationOverrides" }, "set_remediation_overrides": { "description": "Remediation overrides to add or update. These will override the system defaults.", "example": [ { "action": "OFF", "issue_name": "XID_74" } ], "items": { "$ref": "#/definitions/RemediationOverrideRequest" }, "type": "array", "x-go-name": "SetRemediationOverrides" } }, "required": [ "fallback_to_project_reservations" ], "title": "UpdateAutoClustersConfigRequest represents the request body for updating cluster config.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdatePaymentMethodRequest": { "description": "Omitted fields are left unchanged.", "properties": { "cardholder_name": { "example": "Jane Doe", "type": "string", "x-go-name": "CardholderName" }, "exp_month": { "example": 12, "format": "int64", "type": "integer", "x-go-name": "ExpMonth" }, "exp_year": { "example": 2030, "format": "int64", "type": "integer", "x-go-name": "ExpYear" }, "is_default": { "example": true, "type": "boolean", "x-go-name": "IsDefault" } }, "title": "UpdatePaymentMethodRequest defines the optional fields that can be patched on a payment method.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdatePaymentMethodResponse": { "properties": { "item": { "$ref": "#/definitions/PaymentMethodCard" } }, "required": [ "item" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdateS3BucketTagsRequest": { "properties": { "tags": { "additionalProperties": { "type": "string" }, "description": "List of tags for this bucket. This will replace all existing tags.", "type": "object", "x-go-name": "Tags" } }, "required": [ "tags" ], "title": "UpdateS3BucketTagsRequest is the request body for updating S3 bucket tags.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdateSCIMIntegrationRequestBody": { "properties": { "status": { "description": "The new status for the integration.", "example": "active", "type": "string", "x-go-name": "Status" } }, "title": "UpdateSCIMIntegrationRequestBody is the JSON request body for updating a SCIM integration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpdateUserSSOEnforcementRequest": { "properties": { "enforcement": { "enum": [ "none", "required" ], "type": "string", "x-go-name": "Enforcement" }, "user_ids": { "example": "d62a74a8-e14e-41fd-81b6-9983f7ab9ba8", "items": { "type": "string" }, "type": "array", "x-go-name": "UserIDs" } }, "required": [ "user_ids", "enforcement" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpstreamRegistry": { "properties": { "provider": { "type": "string", "x-go-name": "Provider" }, "upstream_registry_credentials": { "$ref": "#/definitions/UpstreamRegistryCredentials" }, "url": { "type": "string", "x-go-name": "URL" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpstreamRegistryCredentials": { "properties": { "password": { "type": "string", "x-go-name": "Password" }, "username": { "type": "string", "x-go-name": "Username" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UsageByProjectGetResponse": { "properties": { "items": { "items": { "$ref": "#/definitions/ProjectUsageResponse" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "UsageByProjectGetResponse is the response type for GET requests to the usage.usageByProject endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UsageOptions": { "description": "UsageOptions contains the values which exist for the fields which we allow filtering\non for the usageByProjectGet endpoint.", "properties": { "end_date": { "example": "\"2023-08-08\"", "type": "string", "x-go-name": "EndDate" }, "product_lines": { "example": [ "a40", "h200" ], "items": { "type": "string" }, "type": "array", "x-go-name": "ProductLines" }, "projects": { "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "items": { "type": "string" }, "type": "array", "x-go-name": "Projects" }, "regions": { "example": [ "us-east1", "us-northcentral1" ], "items": { "type": "string" }, "type": "array", "x-go-name": "Regions" }, "resource_types": { "example": [ "persistent-ssd", "a40.1x" ], "items": { "type": "string" }, "type": "array", "x-go-name": "ResourceTypes" }, "start_date": { "example": "\"2022-07-01\"", "type": "string", "x-go-name": "StartDate" } }, "required": [ "projects", "resource_types", "product_lines", "regions", "start_date", "end_date" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UserResponse": { "description": "The Identity of a user is returned.", "properties": { "credentials": { "description": "Credentials will be deprecated", "items": { "type": "string" }, "type": "array", "x-go-name": "Credentials" }, "credentials_map": { "additionalProperties": { "$ref": "#/definitions/IdentityCredential" }, "type": "object", "x-go-name": "CredentialsMap" }, "identity": { "$ref": "#/definitions/Identity" } }, "required": [ "identity" ], "title": "UserResponse is the return type from the GET and PUT handlers to User.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UserStateEnum": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/auth-gateway/pkg/authmodels" }, "UsersServiceUpdateUserBody": { "description": "UpdateUserRequest is the request for updating an existing user.", "properties": { "accept_tos": { "description": "accept_tos indicates if TOS was accepted. If true, the user is updated to have accepted the TOS. If false, the\nvalue is ignored (there is no way to unaccept the ToS).", "example": true, "type": "boolean" }, "company_name": { "example": "My Company", "title": "Name of the company the user is associated with", "type": "string" }, "name": { "example": "John Doe", "title": "name is the user's display name", "type": "string" } }, "type": "object" }, "VMAttachmentType": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMAttachmentV1": { "properties": { "attachment_type": { "$ref": "#/definitions/VMAttachmentType" }, "mode": { "$ref": "#/definitions/DiskModeType" }, "vm_id": { "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "VMID" } }, "required": [ "vm_id", "attachment_type" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMDetail": { "properties": { "cpu_utilization": { "description": "CPU utilization (%) for this VM. 0 when no data.", "example": 45, "format": "double", "type": "number", "x-go-name": "CPUUtilization" }, "gpu_utilization": { "description": "GPU utilization (%) for this VM. 0 when no data.", "example": 84, "format": "double", "type": "number", "x-go-name": "GPUUtilization" }, "health": { "description": "VM health status: healthy, degraded, unhealthy, or not_evaluated.", "example": "healthy", "type": "string", "x-go-name": "Health" }, "ib_max_gbps": { "description": "Max IB line rate in Gbps for this VM. 0 when no data or non-IB.", "example": 400, "format": "double", "type": "number", "x-go-name": "IBMaxGbps" }, "ib_rx_gbps": { "description": "IB receive throughput in Gbps for this VM. 0 when no data or non-IB.", "example": 320, "format": "double", "type": "number", "x-go-name": "IBRxGbps" }, "ib_tx_gbps": { "description": "IB transmit throughput in Gbps for this VM. 0 when no data or non-IB.", "example": 340, "format": "double", "type": "number", "x-go-name": "IBTxGbps" }, "p95_power_watts": { "description": "P95 GPU power draw in watts for this VM. 0 when no data.", "example": 420, "format": "double", "type": "number", "x-go-name": "P95PowerWatts" }, "p95_temperature_celsius": { "description": "P95 GPU temperature in Celsius for this VM. 0 when no data.", "example": 81, "format": "double", "type": "number", "x-go-name": "P95TemperatureCelsius" }, "reasons": { "description": "List of health reasons for this VM. Empty array if healthy.", "items": { "$ref": "#/definitions/VMHealthReason" }, "type": "array", "x-go-name": "Reasons" }, "remediation": { "$ref": "#/definitions/VMRemediation" }, "vm_id": { "description": "VM UUID.", "example": "e41b19c2-e44b-44ce-8dd4-6053923fe50c", "type": "string", "x-go-name": "VMID" }, "vm_name": { "description": "VM display name.", "example": "vm-gb200-01", "type": "string", "x-go-name": "VMName" } }, "required": [ "vm_id", "vm_name", "health", "reasons" ], "title": "VMDetail contains all per-VM data for the instance type detail view.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMHealthReason": { "properties": { "detail": { "description": "Specific detail within the reason.", "example": "MemoryPressure", "type": "string", "x-go-name": "Detail" }, "reason": { "description": "Reason category.", "example": "node_condition", "type": "string", "x-go-name": "Reason" } }, "required": [ "reason", "detail" ], "title": "VMHealthReason describes a single health reason for a VM.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMHealthResponse": { "properties": { "health": { "description": "The computed health status of the VM.\nPossible values: healthy, degraded, unhealthy, not_evaluated.", "example": "healthy", "type": "string", "x-go-name": "Health" }, "project_id": { "description": "The project ID that owns the VM.", "example": "de8f27fe-8438-45e7-a2c2-a2767660625f", "type": "string", "x-go-name": "ProjectID" }, "reasons": { "description": "Health reasons for this VM. Empty array if healthy.", "items": { "$ref": "#/definitions/VMHealthReason" }, "type": "array", "x-go-name": "Reasons" }, "vm_id": { "description": "The VM ID.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "VMID" } }, "required": [ "vm_id", "project_id", "health", "reasons" ], "title": "VMHealthResponse is the gateway response for VM-level health status.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMInfo": { "properties": { "nvlink_domain_id": { "type": "string", "x-go-name": "NvlinkDomainID" }, "pod_id": { "type": "string", "x-go-name": "PodID" }, "vm_id": { "type": "string", "x-go-name": "VMID" }, "vm_name": { "type": "string", "x-go-name": "VMName" }, "vm_state": { "type": "string", "x-go-name": "VMState" } }, "title": "VMInfo contains information about a virtual machine.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMRemediation": { "properties": { "state": { "description": "Operation state: in_progress, succeeded, or failed.", "example": "in_progress", "type": "string", "x-go-name": "State" }, "type": { "description": "Operation type: replace_node, reset_vm, or detect_only.", "example": "replace_node", "type": "string", "x-go-name": "Type" } }, "required": [ "state", "type" ], "title": "VMRemediation describes an active remediation operation for a VM.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCFirewallRule": { "properties": { "action": { "enum": [ "allow", "deny" ], "example": "allow", "type": "string", "x-go-name": "Action" }, "destination_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "direction": { "enum": [ "ingress", "egress" ], "example": "ingress", "type": "string", "x-go-name": "Direction" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "name": { "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" }, "state": { "enum": [ "active", "inactive" ], "example": "active", "type": "string", "x-go-name": "State" }, "vpc_network_id": { "example": "74927f69-f6f6-43f4-bc0d-7bb2e864250e", "type": "string", "x-go-name": "VPCNetworkID" } }, "required": [ "id", "name", "direction", "action", "vpc_network_id", "state", "sources", "source_ports", "destinations", "destination_ports", "protocols" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCFirewallRulesPatchRequest": { "properties": { "destination_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "name": { "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" } }, "title": "VPCFirewallRulesPatchRequest is the request type for PATCH requests to the VPC networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCFirewallRulesPostRequestV1": { "properties": { "action": { "enum": [ "allow", "deny" ], "example": "allow", "type": "string", "x-go-name": "Action" }, "destination_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "direction": { "enum": [ "ingress", "egress" ], "example": "ingress", "type": "string", "x-go-name": "Direction" }, "name": { "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" }, "vpc_network_id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "VPCNetworkID" } }, "required": [ "name", "direction", "action", "sources", "destinations", "protocols", "vpc_network_id" ], "title": "VPCFirewallRulesPostRequest is the request type for POST requests to the VPC networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCNetwork": { "properties": { "cidr": { "example": "121.0.0.0/20", "type": "string", "x-go-name": "CIDR" }, "gateway": { "example": "11bf5b4c-e0e5-4017-bdb8-3861f3acedc1", "type": "string", "x-go-name": "Gateway" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "name": { "example": "default-ethernet", "type": "string", "x-go-name": "Name" }, "subnets": { "example": "[1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc]", "items": { "type": "string" }, "type": "array", "x-go-name": "Subnets" } }, "required": [ "id", "name", "subnets", "gateway", "cidr" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCNetworkPatchRequest": { "properties": { "name": { "example": "my-cool-vpc-network", "type": "string", "x-go-name": "Name" } }, "required": [ "name" ], "title": "VPCNetworkPatchRequest is the request type for PATCH requests to the VPC Networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCNetworkPostRequest": { "properties": { "cidr": { "example": "172.27.0.0/16", "type": "string", "x-go-name": "Cidr" }, "name": { "example": "my-cool-vpc-network", "type": "string", "x-go-name": "Name" } }, "required": [ "name", "cidr" ], "title": "VPCNetworkPostRequest is the request type for POST requests to the VPC Networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCNetworkPostResponse": { "properties": { "network": { "$ref": "#/definitions/VPCNetwork" } }, "required": [ "network" ], "title": "VPCNetworkPostResponse is the response type for POST requests to the VPC Networks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCSubnet": { "properties": { "cidr": { "example": "121.0.0.0/24", "type": "string", "x-go-name": "CIDR" }, "id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "location": { "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateways": { "description": "require: true", "items": { "$ref": "#/definitions/NATGateway" }, "type": "array", "x-go-name": "NATGateways" }, "vpc_network_id": { "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "VPCNetworkID" } }, "required": [ "id", "name", "vpc_network_id", "cidr", "location" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCSubnetPatchRequest": { "properties": { "name": { "example": "my-cool-vpc-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateway_action": { "description": "\nenable NATGatewayActionEnable\ndisable NATGatewayActionDisable", "enum": [ "enable", "disable" ], "example": "enable", "type": "string", "x-go-enum-desc": "enable NATGatewayActionEnable\ndisable NATGatewayActionDisable", "x-go-name": "NATGatewayAction" } }, "required": [ "name" ], "title": "VPCSubnetPatchRequest is the request type for PATCH requests to the VPC Subnets endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCSubnetPostRequest": { "properties": { "cidr": { "example": "172.27.0.0/16", "type": "string", "x-go-name": "Cidr" }, "location": { "example": "us-east", "type": "string", "x-go-name": "Location" }, "name": { "example": "my-cool-vpc-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateway_enabled": { "example": true, "type": "boolean", "x-go-name": "NATGatewayEnabled" }, "vpc_network_id": { "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0", "type": "string", "x-go-name": "VPCNetworkID" } }, "required": [ "name", "cidr", "vpc_network_id", "location", "nat_gateway_enabled" ], "title": "VPCSubnetPostRequest is the request type for POST requests to the VPC Subnet endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCSubnetPostResponse": { "properties": { "subnet": { "$ref": "#/definitions/VPCSubnet" } }, "required": [ "subnet" ], "title": "VPCSubnetPostResponse is the response type for POST requests to the VPC Subnets endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VersionDetails": { "properties": { "BuildVersion": { "type": "string" }, "MajorMinorVersion": { "type": "string" }, "PatchVersion": { "type": "string" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VirtualizationFeatures": { "properties": { "nested_virtualization": { "example": true, "type": "boolean", "x-go-name": "NestedVirtualization" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "customerDeleteProjectResponse": { "description": "DeleteProjectResponse is the response for deleting an existing project.\n\nSuccessful delete calls should be empty", "type": "object" }, "customerIdentityCredential": { "description": "IdentityCredential describes a single credential registered for a user.", "properties": { "created_at": { "format": "date-time", "title": "created_at is when the credential was first registered", "type": "string" }, "type": { "title": "type is the credential type (e.g. totp, webauthn, lookup_secret)", "type": "string" }, "updated_at": { "format": "date-time", "title": "updated_at is when the credential was last modified", "type": "string" } }, "type": "object" }, "customerListFeatureFlagsResponse": { "properties": { "feature_flags": { "additionalProperties": {}, "example": { "curated-images": true, "infiniband": false }, "title": "feature_flags is a map of feature flag names to their values", "type": "object" } }, "title": "ListFeatureFlagsResponse is the list feature flags response", "type": "object" }, "customerListProjectsResponse": { "properties": { "projects": { "items": { "$ref": "#/definitions/customerProject", "type": "object" }, "title": "projects is the list of projects", "type": "array" } }, "title": "ListProjectsResponse is the response for listing projects", "type": "object" }, "customerProject": { "description": "Project represents a Crusoe project resource.", "properties": { "id": { "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "readOnly": true, "title": "id is the ID of the project", "type": "string" }, "name": { "example": "my-project", "title": "name is the name of the project", "type": "string" }, "organization_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "title": "organization_id is the ID of the org the project belongs to", "type": "string" }, "resources": { "$ref": "#/definitions/customerProjectResources", "readOnly": true, "title": "resources is the resources within the project" } }, "type": "object" }, "customerProjectResourceDetails": { "description": "ProjectResourceDetails is the details about a resource for a project.", "properties": { "count": { "format": "int32", "title": "count is the number of resources that the project has", "type": "integer" } }, "type": "object" }, "customerProjectResources": { "properties": { "disks": { "$ref": "#/definitions/customerProjectResourceDetails", "title": "disks gives details about the project's disks" }, "images": { "$ref": "#/definitions/customerProjectResourceDetails", "title": "images gives details about the project's images" }, "instances": { "$ref": "#/definitions/customerProjectResourceDetails", "title": "instances gives details about the project's VMs" }, "snapshots": { "$ref": "#/definitions/customerProjectResourceDetails", "title": "snapshots gives details about the project's disk snapshots" }, "vpc_networks": { "$ref": "#/definitions/customerProjectResourceDetails", "title": "vpc_networks gives details about the project's vpc networks" } }, "title": "ProjectResources contains information about resources within a project", "type": "object" }, "customerRoleBinding": { "description": "RoleBinding grants a role to a user within a specific scope (e.g. an organization or a project).", "properties": { "customer_id": { "example": "d1e3a8c1-7d2e-4c5b-9f9a-2f5b3e9c1a44", "readOnly": true, "title": "customer_id is the ID of the user the role is bound to", "type": "string" }, "id": { "example": "7b6e8d2c-9a4f-4d3b-8c1e-5f2a9b8c7d6e", "readOnly": true, "title": "id is the ID of the role binding", "type": "string" }, "role_id": { "example": "3a2b1c0d-4e5f-6789-abcd-ef0123456789", "title": "role_id is the ID of the role granted by this binding", "type": "string" }, "role_name": { "example": "org-admin", "readOnly": true, "title": "role_name is the human-readable name of the role granted by this binding", "type": "string" }, "scope_object_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "title": "scope_object_id is the ID of the resource the binding applies to", "type": "string" }, "scope_type": { "example": "org", "title": "scope_type is the type of resource the binding applies to (e.g. org, project)", "type": "string" } }, "type": "object" }, "customerUser": { "description": "User is the user resource.", "properties": { "accepted_tos": { "example": true, "title": "accepted_tos indicates whether the user has accepted the latest terms of service", "type": "boolean" }, "company_name": { "example": "Crusoe", "title": "company_name is the company the user registered under", "type": "string" }, "credentials": { "description": "credentials is the user's credential types. Deprecated: use credentials_map instead.", "items": { "type": "string" }, "readOnly": true, "type": "array" }, "credentials_map": { "additionalProperties": { "$ref": "#/definitions/customerIdentityCredential" }, "readOnly": true, "title": "credentials_map is the user's credentials keyed by credential type", "type": "object" }, "email": { "example": "john.doe@crusoeenergy.com", "title": "email is the user's email address", "type": "string" }, "id": { "example": "d1e3a8c1-7d2e-4c5b-9f9a-2f5b3e9c1a44", "readOnly": true, "title": "id is the ID of the user", "type": "string" }, "identity_id": { "readOnly": true, "title": "identity ID is the ID of the user's identity", "type": "string" }, "is_recovery": { "example": true, "readOnly": true, "title": "is_recovery indicates whether the user is currently in a recovery flow", "type": "boolean" }, "managed_by": { "example": "scim_okta", "readOnly": true, "title": "managed_by indicates the external system managing this user, if any", "type": "string" }, "name": { "example": "John Doe", "title": "name is the user's display name", "type": "string" }, "org_role": { "example": "org-admin", "readOnly": true, "title": "org_role is the user's organization role derived from role bindings", "type": "string" }, "registration_type": { "example": "waitlist", "title": "registration_type is how the user registered (e.g. waitlist, sso)", "type": "string" }, "role": { "description": "role is the user's legacy org role. Deprecated: use role_bindings instead.", "example": "Admin", "readOnly": true, "type": "string" }, "role_bindings": { "items": { "$ref": "#/definitions/customerRoleBinding", "type": "object" }, "readOnly": true, "title": "role_bindings is the set of role bindings granted to the user", "type": "array" }, "sso_enforcement": { "description": "SSO enforcement level applied to the user's organization. One of: required, none.", "example": "none", "readOnly": true, "type": "string" }, "user_state": { "example": "Recovery", "readOnly": true, "title": "user_state is the user's lifecycle state", "type": "string" } }, "type": "object" }, "protobufAny": { "additionalProperties": {}, "properties": { "@type": { "type": "string" } }, "type": "object" }, "protobufNullValue": { "default": "NULL_VALUE", "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value.", "enum": [ "NULL_VALUE" ], "type": "string" }, "rpcStatus": { "properties": { "code": { "format": "int32", "type": "integer" }, "details": { "items": { "$ref": "#/definitions/protobufAny", "type": "object" }, "type": "array" }, "message": { "type": "string" } }, "type": "object" } }, "responses": { "WrappedErrorBody": { "description": "WrappedErrorBody is a baseline Error Response Object\nThe body of every error response type must have the same structure as handlers.ErrorBody", "headers": { "Body": {} }, "schema": { "$ref": "#/definitions/ErrorBody" } }, "asyncOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/AsyncOperationResponse" } }, "auditLogsResponse": { "description": "", "schema": { "$ref": "#/definitions/AuditLogsGetResponse" } }, "authCheckGetResponse": { "description": "", "schema": { "$ref": "#/definitions/AuthCheckGetResponse" } }, "authError": { "description": "Error Authentication Failed", "schema": { "properties": { "code": { "example": "401", "type": "string", "x-go-name": "Code" }, "message": { "example": "bad_credential", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "badReqError": { "description": "Error Bad Request", "schema": { "properties": { "code": { "example": "400", "type": "string", "x-go-name": "Code" }, "message": { "example": "bad_request", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "billingCheckLastUsageGetResponse": { "description": "", "headers": { "last_run_time": { "example": "\"2025-05-20T12:34:56Z\"", "type": "string" } } }, "billingCostsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingCostData" } }, "billingExportGetResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingResourcesResponse" } }, "billingIntentGetResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingIntentGetResponse" } }, "billingMonthlySummaryGetResponse": { "description": "", "schema": { "$ref": "#/definitions/GetBillingMonthlySummaryResponseV1" } }, "billingOptionsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageOptions" } }, "cancelNodePoolRotateResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesCancelNodePoolRotateResponse" } }, "capacitiesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCapacitiesResponseV1" } }, "ccrListImagesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCcrImagesResponse" } }, "ccrListManifestsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListManifestsResponse" } }, "ccrListRepositoriesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListRepositoriesResponse" } }, "ccrListSupportedLocationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSupportedLocationsResponse" } }, "ccrListSupportedProvidersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSupportedProvidersResponse" } }, "ccrRepositoryQuotaResponse": { "description": "", "schema": { "$ref": "#/definitions/RepositoryQuota" } }, "ccrRepositoryResponse": { "description": "", "schema": { "$ref": "#/definitions/Repository" } }, "ccrTokenResponse": { "description": "", "schema": { "$ref": "#/definitions/CCRTokenResponse" } }, "createBillingAlertResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingAlertPostResponse" } }, "createDiagnosticResponse": { "description": "", "schema": { "$ref": "#/definitions/DiagnosticResponse" } }, "createInstanceGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceGroup" } }, "createInstanceTemplateResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceTemplate" } }, "createS3KeyResponse": { "description": "", "schema": { "$ref": "#/definitions/CreateS3KeyResponse" } }, "createSCIMIntegrationResponse": { "description": "", "schema": { "$ref": "#/definitions/CreateSCIMIntegrationResponse" } }, "createSCIMIntegrationTokenResponse": { "description": "", "schema": { "$ref": "#/definitions/LimitedUsageAPIKeyPostResponse" } }, "createSSHKeysResponse": { "description": "", "schema": { "$ref": "#/definitions/CreateSSHKeyResponse" } }, "createSSOProviderResponse": { "description": "", "schema": { "$ref": "#/definitions/SSOProvider" } }, "credentialsResponse": { "description": "", "schema": { "$ref": "#/definitions/CredentialsResponse" } }, "deleteExternalLoadBalancerResponse": { "description": "", "schema": { "$ref": "#/definitions/ExternalLoadBalancer" } }, "deleteSSOProviderResponse": { "description": "", "schema": { "$ref": "#/definitions/SSOProvider" } }, "downloadDiagnosticResponse": { "description": "", "schema": { "items": { "format": "uint8", "type": "integer" }, "type": "array" } }, "emptyResponse": { "description": "Empty Response" }, "featureFlagsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/FeatureFlagsGetResponse" } }, "getAutoClusterOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/Operation" } }, "getAutoClustersConfigResponse": { "description": "", "schema": { "$ref": "#/definitions/AutoClustersConfigResponse" } }, "getBillingAlertResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingAlertGetResponse" } }, "getBillingExportProductlineResponse": { "description": "", "headers": { "cost": { "description": "required: true", "example": "45.67", "type": "string" }, "metric": { "description": "required: true", "example": "\"instance-hours\"", "type": "string" }, "product_line": { "description": "required: true", "example": "\"a40\", \"persistent-ssd\"", "type": "string" }, "project_id": { "description": "required: true", "example": "\"ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab\"", "type": "string" }, "project_name": { "description": "required: true", "example": "\"Apollo Project\"", "type": "string" }, "quantity": { "description": "required: true", "example": "261.271111", "format": "double", "type": "number" }, "region": { "description": "required: true", "example": "\"us-east1\"", "type": "string" }, "resource_name": { "description": "required: true", "example": "\"My Cool Virtual Machine\"", "type": "string" }, "unit_price": { "description": "required: true", "example": "0.15", "type": "string" }, "usage_date": { "description": "required: true", "example": "\"2025-02-14\"", "type": "string" } } }, "getDiagnosticStatusResponse": { "description": "", "schema": { "$ref": "#/definitions/DiagnosticStatusResponse" } }, "getDiskResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskV1" } }, "getExternalLoadBalancerResponse": { "description": "", "schema": { "$ref": "#/definitions/ExternalLoadBalancer" } }, "getIbNetworkResponse": { "description": "", "schema": { "$ref": "#/definitions/IBNetwork" } }, "getIbPartitionResponse": { "description": "", "schema": { "$ref": "#/definitions/IBPartition" } }, "getImageResponse": { "description": "", "schema": { "$ref": "#/definitions/Image" } }, "getInstanceGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceGroup" } }, "getInstanceResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceV1" } }, "getInstanceTemplateResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceTemplate" } }, "getInstanceTypeDetailResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceTypeDetailResponse" } }, "getKubernetesClusterCredentialsResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesAuthenticationDetails" } }, "getKubernetesClusterResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesCluster" } }, "getKubernetesNodePoolResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesNodePool" } }, "getLatestCompletedDiagnosticResponse": { "description": "", "schema": { "$ref": "#/definitions/LatestDiagnosticResponse" } }, "getLoadBalancerResponse": { "description": "", "schema": { "$ref": "#/definitions/LoadBalancer" } }, "getNodePoolRotateStatusResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesGetNodePoolRotateStatusResponse" } }, "getOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/Operation" } }, "getProjectOverviewResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectOverviewResponse" } }, "getProjectResponse": { "description": "", "schema": { "$ref": "#/definitions/Project" } }, "getS3BucketResponse": { "description": "", "schema": { "$ref": "#/definitions/S3Bucket" } }, "getS3BucketsCountResponse": { "description": "" }, "getS3BucketsQuotaResponse": { "description": "", "schema": { "$ref": "#/definitions/QuotaValidationResult" } }, "getSCIMIntegrationResponse": { "description": "", "schema": { "$ref": "#/definitions/SCIMIntegrationResponse" } }, "getSSHKeysResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSSHKeysResponseV1" } }, "getSlurmClusterResponse": { "description": "", "schema": { "$ref": "#/definitions/SlurmCluster" } }, "getSlurmNodesetResponse": { "description": "", "schema": { "$ref": "#/definitions/SlurmNodeset" } }, "getSnapshotResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskSnapshot" } }, "getSupportSettingsResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesClusterSupportSettingsResponse" } }, "getTopologyResponse": { "description": "", "schema": { "$ref": "#/definitions/GetTopologyResponse" } }, "getVMHealthResponse": { "description": "", "schema": { "$ref": "#/definitions/VMHealthResponse" } }, "getVPCNetworkResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCNetwork" } }, "getVpcFirewallRuleResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCFirewallRule" } }, "getVpcSubnetResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCSubnet" } }, "ibPartitionsPostResponse": { "description": "", "schema": { "$ref": "#/definitions/IBPartition" } }, "latestGPUTrackingResponse": { "description": "", "schema": { "$ref": "#/definitions/LatestGPUTracking" } }, "limitedUsageAPIKeyGetResponse": { "description": "A successful response from this resource will contain json-encoded array of token details, excluding the api key.", "schema": { "$ref": "#/definitions/ListLimitedUsageAPIKeysResponseV1" } }, "limitedUsageAPIKeyPostResponse": { "description": "", "schema": { "$ref": "#/definitions/LimitedUsageAPIKeyPostResponse" } }, "listAutoClusterOperationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOperationsResponseV1" } }, "listBillingAlertsResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingAlertListResponse" } }, "listCardTransactionsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCardTransactionsResponse" } }, "listDiskSnapshotsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDiskSnapshotsResponseV1" } }, "listDisksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDisksResponseV1" } }, "listExternalLoadBalancersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListExternalLoadBalancersResponse" } }, "listIBPartitionsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListIBPartitionsResponseV1" } }, "listIbNetworksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListIBNetworksResponseV1" } }, "listImagesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListImagesResponseV1" } }, "listInstanceGroupsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstanceGroupsResponse" } }, "listInstanceTemplatesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstanceTemplatesResponseV1" } }, "listInstancesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstancesResponseV1" } }, "listKubernetesClustersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesClustersResponse" } }, "listKubernetesNodePoolsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesNodePoolsResponse" } }, "listKubernetesVersionsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesVersionsResponse" } }, "listLoadBalancersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListLoadBalancersResponseV1" } }, "listNvlinkDomainsResponse": { "description": "", "schema": { "$ref": "#/definitions/NvlinkDomainsSummaryListResponse" } }, "listOperationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOperationsResponseV1" } }, "listOrgQuotasResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOrgQuotasResponse" } }, "listPaymentMethodsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListPaymentMethodsResponse" } }, "listProjectQuotasResponse": { "description": "", "schema": { "$ref": "#/definitions/ListProjectQuotasResponse" } }, "listProjectsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListProjectsResponseV1" } }, "listRoleBindingsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListRoleBindingsResponse" } }, "listRolesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListRolesResponse" } }, "listS3BucketsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListS3BucketsResponse" } }, "listS3KeysResponse": { "description": "", "schema": { "$ref": "#/definitions/ListS3KeysResponse" } }, "listS3SupportedLocationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListS3SupportedLocationsResponse" } }, "listSCIMIntegrationTokensResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSCIMIntegrationTokensResponse" } }, "listSCIMIntegrationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSCIMIntegrationsResponse" } }, "listSSOProvidersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSSOProvidersResponse" } }, "listSlurmClustersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSlurmClustersResponse" } }, "listSlurmNodesetsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSlurmNodesetsResponse" } }, "listVPCNetworksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListVPCNetworksResponseV1" } }, "listVpcFirewallRulesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListVPCFirewallRulesResponseV1" } }, "listVpcSubnetsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListVPCSubnetsResponseV1" } }, "locationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListLocationsResponseV1" } }, "mfaGetResponse": { "description": "", "schema": { "$ref": "#/definitions/GetOrgMFAResponse" } }, "notFoundError": { "description": "Error Not Found", "schema": { "properties": { "code": { "example": "404", "type": "string", "x-go-name": "Code" }, "message": { "example": "not_found", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "okEmpty": { "description": "" }, "orgCreditsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/GetCreditsResponseV1" } }, "orgUserCredentialsResponse": { "description": "", "schema": { "$ref": "#/definitions/OrgUserCredentialsResponse" } }, "organizationsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/ListEntitiesResponseV1" } }, "organizationsPutPostResponse": { "description": "", "schema": { "$ref": "#/definitions/EntitiesPutPostResponse" } }, "patchInstanceGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceGroup" } }, "permissionsError": { "description": "Error Permissions", "schema": { "properties": { "code": { "example": "403", "type": "string", "x-go-name": "Code" }, "message": { "example": "unauthorized", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "productlineUsageExportGetResponse": { "description": "", "headers": { "cost": { "example": "32.23", "format": "double", "type": "number" }, "metric": { "example": "instance-hours", "type": "string" }, "product_line": { "example": "a40", "type": "string" }, "project_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string" }, "project_name": { "example": "project-name-template", "type": "string" }, "quantity": { "example": "261.271111", "format": "double", "type": "number" }, "region": { "example": "us-east1", "type": "string" }, "unit_price": { "example": "32.23", "format": "double", "type": "number" }, "usage_date": { "example": "2000-01-01", "type": "string" } } }, "projectIsUsingNFSForSharedDisksResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectIsUsingNFSForSharedDisksResponse" } }, "projectIsUsingSecondaryVASTClusterResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectIsUsingSecondaryVASTClusterResponse" } }, "projectsPutPostResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectsPutPostResponseV1" } }, "prospectPostResponse": { "description": "", "schema": { "$ref": "#/definitions/ProspectPostResponse" } }, "rateLimitError": { "description": "Error Rate Limit Exceeded", "schema": { "properties": { "code": { "example": "429", "type": "string", "x-go-name": "Code" }, "message": { "example": "too_many_requests", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "redirectSeeOther": { "description": "Redirect See Other", "schema": { "properties": { "error": { "properties": { "code": { "example": "422", "type": "string", "x-go-name": "Code" }, "id": { "example": "browser_location_change_required", "type": "string", "x-go-name": "Id" }, "message": { "example": "browser location change required", "type": "string", "x-go-name": "Message" }, "reason": { "example": "In order to complete this flow please redirect the browser to...", "type": "string", "x-go-name": "Reason" }, "status": { "example": "Unprocessable Entity", "type": "string", "x-go-name": "Status" } }, "required": [ "code", "message", "id", "status", "reason" ], "type": "object", "x-go-name": "Error" }, "redirect_browser_to": { "example": "https://dev-70243141.okta.com/oauth2/v1/authorize/...", "type": "string", "x-go-name": "RedirectBrowserTo" } }, "required": [ "error", "redirect_browser_to" ], "type": "object" } }, "reservationsGPUTrackingResponse": { "description": "", "schema": { "$ref": "#/definitions/GPUTrackingResponse" } }, "reservationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ReservationsGetResponse" } }, "scrapeMetricsResponse": { "description": "" }, "serverError": { "description": "Error Internal Server", "schema": { "properties": { "code": { "example": "500", "type": "string", "x-go-name": "Code" }, "message": { "example": "internal_error", "type": "string", "x-go-name": "Message" } }, "required": [ "code", "message" ], "type": "object" } }, "syncOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/SyncOperationResponse" } }, "timeseriesResponse": { "description": "", "schema": { "$ref": "#/definitions/ObservabilityMetrics" } }, "tokensGetResponse": { "description": "A successful response from this resource will contain json-encoded array of token details, excluding the secret key.", "schema": { "$ref": "#/definitions/ListTokensResponseV1" } }, "tokensPostResponse": { "description": "", "schema": { "$ref": "#/definitions/TokensPostResponse" } }, "typesGetResponse": { "description": "", "schema": { "$ref": "#/definitions/ListTypesResponseV1" } }, "updateAutoClustersConfigResponse": { "description": "", "schema": { "$ref": "#/definitions/AutoClustersConfigResponse" } }, "updateBillingAlertResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingAlertPutResponse" } }, "updatePaymentMethodResponse": { "description": "", "schema": { "$ref": "#/definitions/UpdatePaymentMethodResponse" } }, "updateSCIMIntegrationResponse": { "description": "", "schema": { "$ref": "#/definitions/SCIMIntegrationResponse" } }, "updateSupportSettingsResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesClusterSupportSettingsResponse" } }, "usageExportGetResponse": { "description": "", "headers": { "metric": { "example": "instance-hours", "type": "string" }, "project_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string" }, "quantity": { "example": "261.271111", "format": "double", "type": "number" }, "region": { "example": "us-east1", "type": "string" }, "resource_id": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string" }, "resource_type": { "example": "a40.1x", "type": "string" }, "usage_date": { "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string" } } }, "usageGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageByProjectGetResponse" } }, "usageOptionsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageOptions" } }, "usersGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UserResponse" } }, "usersPutResponse": { "description": "", "schema": { "$ref": "#/definitions/UserResponse" } }, "vpcNetworkPostResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCNetworkPostResponse" } }, "vpcSubnetPostResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCSubnetPostResponse" } } }, "tags": [ { "name": "FeatureFlagsService" }, { "name": "ProjectsService" }, { "name": "UsersService" } ] }