{ "swagger": "2.0", "info": { "description": "The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.", "title": "Crusoe Cloud API Gateway", "version": "v1alpha5" }, "host": "api.cloud.crusoe.ai", "basePath": "/v1alpha5", "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": "Lists the locations where container registry repositories can be hosted.", "tags": [ "Ccr", "Container Registry" ] } }, "/ccr/supported-providers": { "get": { "operationId": "listSupportedProviders", "responses": { "200": { "$ref": "#/responses/ccrListSupportedProvidersResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the upstream registry providers supported for pull-through-cache repositories.", "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": "Creates a limited-scope token for authenticating to the container registry and returns it.", "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 images and returns their details.", "tags": [ "Images" ] } }, "/compute/images/{image_id}": { "get": { "operationId": "getImage", "parameters": [ { "description": "ID of the image.", "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": "Returns details for a single 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", "parameters": [ { "description": "project_id optionally scopes flag evaluation to the given project. The\ncaller must be a member of the project. When set, flags are evaluated with\nthe project in the targeting context in addition to the user and org.", "in": "query", "name": "project_id", "required": false, "type": "string" } ], "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": [ { "description": "Filters results to projects in this organization.", "example": "ee2a6bc3-aed5-4756-8995-9990a53d3a17", "in": "query", "name": "org_id", "type": "string", "x-go-name": "OrgID" }, { "description": "Filters results to projects with this name.", "example": "default", "in": "query", "name": "project_name", "type": "string", "x-go-name": "ProjectName" }, { "description": "Whether to skip loading the resource counts for each project.", "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": "Lists all projects the logged-in user belongs to or owns and returns their details.", "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": "Creates a project and returns the created project.", "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": [ { "description": "ID of the project.", "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": "Updates a project and returns the updated project.", "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": "Deletes a project.", "tags": [ "Projects" ] }, "get": { "operationId": "getProject", "parameters": [ { "description": "ID of the project.", "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": "Returns details for a single project.", "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": [ { "description": "ID of the organization that owns the S3 access keys.", "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 access keys in the organization and returns their details.", "tags": [ "S3Keys" ] }, "post": { "consumes": [ "application/json" ], "operationId": "createS3Key", "parameters": [ { "description": "ID of the organization that owns the S3 access key.", "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 an S3 access key in the organization and returns the access key ID and one-time secret key.", "tags": [ "S3Keys" ] } }, "/organizations/{org_id}/storage/s3/keys/{access_key_id}": { "delete": { "consumes": [ "application/json" ], "operationId": "deleteS3Key", "parameters": [ { "description": "ID of the organization that owns the S3 access key.", "in": "path", "name": "org_id", "required": true, "type": "string", "x-go-name": "OrgID" }, { "description": "Access key ID of the S3 access 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 access key from the organization.", "tags": [ "S3Keys" ] } }, "/organizations/{org_id}/usage": { "get": { "operationId": "getUsage", "parameters": [ { "description": "org_id is the ID of the org to fetch usage for", "in": "path", "name": "org_id", "pattern": "[^/]+", "required": true, "type": "string" }, { "collectionFormat": "multi", "description": "projects is an optional list of project IDs to filter usage by; absent means all projects", "in": "query", "items": { "type": "string" }, "name": "projects", "required": false, "type": "array" }, { "collectionFormat": "multi", "description": "resource_types is an optional list of product types to filter usage by; absent means all products", "in": "query", "items": { "type": "string" }, "name": "resource_types", "required": false, "type": "array" }, { "collectionFormat": "multi", "description": "regions is an optional list of regions to filter usage by; absent means all regions", "in": "query", "items": { "type": "string" }, "name": "regions", "required": false, "type": "array" }, { "description": "start_date is the optional start date (inclusive) of the usage period, formatted YYYY-MM-DD", "in": "query", "name": "start_date", "required": false, "type": "string" }, { "description": "end_date is the optional end date of the usage period, formatted YYYY-MM-DD", "in": "query", "name": "end_date", "required": false, "type": "string" }, { "description": "interval controls how usage is aggregated over the period: \"daily\" (the default) or \"monthly\"", "in": "query", "name": "interval", "required": false, "type": "string" } ], "responses": { "200": { "description": "Usage retrieved successfully", "schema": { "$ref": "#/definitions/customerOrganizationUsage" } }, "400": { "description": "Bad request", "schema": {} }, "500": { "description": "Internal server error", "schema": {} }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "summary": "Get project-level usage for products in Crusoe Cloud.", "tags": [ "Usage" ] } }, "/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}/mfa": { "get": { "operationId": "getMFA", "parameters": [ { "description": "organization_id is the ID of the organization", "in": "path", "name": "organization_id", "pattern": "[^/]+", "required": true, "type": "string" } ], "responses": { "200": { "description": "MFA methods retrieved successfully", "schema": { "$ref": "#/definitions/customerGetOrganizationMFAResponse" } }, "400": { "description": "Bad request", "schema": {} }, "401": { "description": "Authentication required", "schema": {} }, "403": { "description": "Permission denied", "schema": {} }, "500": { "description": "Internal server error", "schema": {} }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "summary": "Get enabled MFA methods for the specified organization.", "tags": [ "MFA" ] }, "patch": { "operationId": "updateMFA", "parameters": [ { "description": "organization_id is the ID of the organization", "in": "path", "name": "organization_id", "pattern": "[^/]+", "required": true, "type": "string" }, { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/OrganizationsMFAServiceUpdateOrganizationMFABody" } } ], "responses": { "200": { "description": "MFA methods updated successfully", "schema": { "$ref": "#/definitions/customerUpdateOrganizationMFAResponse" } }, "400": { "description": "Bad request", "schema": {} }, "401": { "description": "Authentication required", "schema": {} }, "403": { "description": "Permission denied", "schema": {} }, "500": { "description": "Internal server error", "schema": {} }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "summary": "Update required MFA methods for the specified organization.", "tags": [ "MFA" ] } }, "/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/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": [ { "description": "ID of the project that owns the repositories.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Page number of results to return.", "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "description": "Number of results to return per page.", "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "description": "Field to sort the results by.", "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "description": "Order to sort the results in.", "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": "Lists all container registry repositories in the project and returns their details.", "tags": [ "Ccr", "Container Registry" ] }, "post": { "operationId": "createCcrRepository", "parameters": [ { "description": "ID of the project to create the repository in.", "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": "Creates a container registry repository in the project and returns the created repository.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}": { "delete": { "operationId": "deleteCcrRepository", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "Location the repository is hosted in.", "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": "Deletes a container registry repository from the project.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "getCcrRepository", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "Location the repository is hosted in.", "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": "Returns details for a single container registry repository in the project.", "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": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository.", "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": "Updates the upstream registry credentials for a repository in the project.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/images": { "delete": { "operationId": "deleteCcrImage", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository that contains the image.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "ID of the image to delete.", "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "Location the repository is hosted in.", "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": "Deletes an image from a container registry repository in the project.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "listCcrImages", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository that contains the images.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "Location the repository is hosted in.", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "description": "Page number of results to return.", "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "description": "Number of results to return per page.", "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "description": "Field to sort the results by.", "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "description": "Order to sort the results in.", "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": "Lists all images in a container registry repository in the project and returns their details.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/manifests": { "delete": { "operationId": "deleteCcrManifest", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository that contains the image.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "ID of the image that contains the manifest.", "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "Tag that points to the manifest to delete. Either tag or digest must be provided, but not both.", "in": "query", "name": "tag", "type": "string", "x-go-name": "Tag" }, { "description": "Digest of the manifest to delete. Either tag or digest must be provided, but not both.", "in": "query", "name": "digest", "type": "string", "x-go-name": "Digest" }, { "description": "Location the repository is hosted in.", "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": "Deletes a manifest from an image in a container registry repository in the project.", "tags": [ "Ccr", "Container Registry" ] }, "get": { "operationId": "listCcrManifests", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository that contains the image.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "ID of the image whose manifests are listed.", "in": "query", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "Filters results to manifests with a tag that contains this substring.", "in": "query", "name": "tag_contains", "type": "string", "x-go-name": "TagContains" }, { "description": "Location the repository is hosted in.", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "description": "Page number of results to return.", "format": "int32", "in": "query", "name": "page", "type": "integer", "x-go-name": "Page" }, { "description": "Number of results to return per page.", "format": "int32", "in": "query", "name": "page_size", "type": "integer", "x-go-name": "PageSize" }, { "description": "Field to sort the results by.", "in": "query", "name": "sort_by", "type": "string", "x-go-name": "SortBy" }, { "description": "Order to sort the results in.", "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": "Lists all manifests for an image in a container registry repository in the project and returns their details.", "tags": [ "Ccr", "Container Registry" ] } }, "/projects/{project_id}/ccr/repositories/{repository_id}/usage": { "get": { "operationId": "getCcrRepositoryUsage", "parameters": [ { "description": "ID of the project that owns the repository.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the repository.", "in": "path", "name": "repository_id", "required": true, "type": "string", "x-go-name": "RepositoryID" }, { "description": "Location the repository is hosted in.", "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": "Returns usage data for a single container registry repository in the project.", "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": "Lists all custom images in the project and returns their details.", "tags": [ "CustomImages" ] }, "post": { "operationId": "customImagePost", "parameters": [ { "description": "ID of the project that owns the custom image.", "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": "Creates a custom image in the project and returns the async operation.", "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": [ { "description": "ID of the custom image.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "ID of the project that owns the custom image.", "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" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deletes a custom image from the project and returns the async operation.", "tags": [ "CustomImages" ] }, "get": { "operationId": "getCustomImage", "parameters": [ { "description": "ID of the image.", "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": "Returns details for a single custom image in the project.", "tags": [ "CustomImages" ] }, "patch": { "operationId": "customImagePatch", "parameters": [ { "description": "ID of the custom image.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "ID of the project that owns the custom image.", "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/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": "Updates a custom image in the project and returns the async operation.", "tags": [ "CustomImages" ] } }, "/projects/{project_id}/compute/custom-images/{image_id}/edit-tags": { "patch": { "operationId": "customImageEditTags", "parameters": [ { "description": "ID of the custom image.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "image_id", "required": true, "type": "string", "x-go-name": "ImageID" }, { "description": "ID of the project that owns the custom image.", "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/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": "Updates the tags of a custom image in the project and returns the async operation.", "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 in the project and returns their details.", "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": "Creates an instance group in the project and returns the created instance group.", "tags": [ "Instance Groups" ] } }, "/projects/{project_id}/compute/instance-groups/{instance_group_id}": { "delete": { "operationId": "deleteInstanceGroup", "parameters": [ { "description": "ID of the instance group.", "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": "Deletes an instance group from the project.", "tags": [ "Instance Groups" ] }, "get": { "operationId": "getInstanceGroup", "parameters": [ { "description": "ID of the instance group.", "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": "Returns details for a single instance group in the project.", "tags": [ "Instance Groups" ] }, "patch": { "operationId": "patchInstanceGroup", "parameters": [ { "description": "ID of the instance group.", "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": "Updates an instance group in the project and returns the updated 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 instance templates in the project and returns their details.", "tags": [ "Instance Templates" ] }, "post": { "operationId": "createInstanceTemplate", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstanceTemplatePostRequestV1Alpha5" } }, { "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": "Creates an instance template in the project and returns the created instance template.", "tags": [ "Instance Templates" ] } }, "/projects/{project_id}/compute/instance-templates/{instance_template_id}": { "delete": { "operationId": "deleteInstanceTemplate", "parameters": [ { "description": "ID of the instance template.", "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": "Deletes an instance template from the project.", "tags": [ "Instance Templates" ] }, "get": { "operationId": "getInstanceTemplate", "parameters": [ { "description": "ID of the instance template.", "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": "Returns details for a single instance template in the project.", "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/BulkInstancePostRequestV1Alpha5" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates multiple VMs in the project and returns the async operation.", "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" }, { "description": "Filters results to VMs with these IDs.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "ids", "type": "string", "x-go-name": "IDs" }, { "description": "Filters results to VMs with these names.", "example": "my-first-vm", "in": "query", "name": "names", "type": "string", "x-go-name": "Names" }, { "description": "Filters results to VMs of these types.", "example": "a40.2x,a100.8x", "in": "query", "name": "types", "type": "string", "x-go-name": "Types" }, { "description": "Filters results to VMs in these locations.", "example": "us-east1,us-northcentral1", "in": "query", "name": "locations", "type": "string", "x-go-name": "Locations" }, { "description": "Filters results to VMs in these states.", "example": "STATE_RUNNING", "in": "query", "name": "states", "type": "string", "x-go-name": "States" }, { "description": "Filters results to VMs in these NVLink domains.", "example": "550e8400-e29b-41d4-a716-446655440000", "in": "query", "name": "nvlink_domain_ids", "type": "string", "x-go-name": "NvlinkDomainIds" }, { "description": "Maximum number of VMs to return per page.", "example": "20", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" }, { "description": "Field to sort the results by.", "example": "name", "in": "query", "name": "sort", "type": "string", "x-go-name": "Sort" }, { "description": "Token identifying the next page of results to return.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "description": "Token identifying the previous page of results to return.", "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": "Lists all VMs in the project and returns their details.", "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/InstancesPostRequestV1Alpha5" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a VM in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the VM.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VM.", "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": "Deletes a VM from the project and returns the async operation.", "tags": [ "VMs" ] }, "get": { "operationId": "getInstance", "parameters": [ { "description": "ID of the project that owns the VM.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VM.", "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": "Returns details for a single VM in the project.", "tags": [ "VMs" ] }, "patch": { "operationId": "updateInstance", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/InstancesPatchRequestV1Alpha5" } }, { "description": "ID of the project that owns the VM.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VM.", "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": "Updates a VM in the project and returns the async operation.", "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/InstancesAttachDiskPostRequestV1Alpha5" } }, { "description": "ID of the project that owns the VM.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VM.", "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": "Attaches disks to a VM in the project and returns the async operation.", "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" } }, { "description": "ID of the project that owns the VM.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VM.", "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": "Detaches disks from a VM in the project and returns the async operation.", "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": "Lists all available VM types and returns their details.", "tags": [ "VMs" ] } }, "/projects/{project_id}/foundry/credentials": { "get": { "operationId": "listFoundryCredentials", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryCredentialListResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the credentials in the project.", "tags": [ "Foundry" ] }, "post": { "operationId": "createFoundryCredential", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/CreateCredentialRequest" } } ], "responses": { "201": { "$ref": "#/responses/foundryCredentialResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a credential in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/credentials/{id}": { "delete": { "operationId": "deleteFoundryCredential", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the credential.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deletes a credential from the project.", "tags": [ "Foundry" ] }, "get": { "operationId": "getFoundryCredential", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the credential.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" }, { "description": "When true, include the secret material in the response.", "in": "query", "name": "reveal", "type": "boolean", "x-go-name": "Reveal" } ], "responses": { "200": { "$ref": "#/responses/foundryCredentialResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns a single credential in the project.", "tags": [ "Foundry" ] }, "patch": { "operationId": "updateFoundryCredential", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the credential.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/UpdateCredentialRequest" } } ], "responses": { "200": { "$ref": "#/responses/foundryCredentialResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Updates a credential's description in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models": { "get": { "operationId": "listFoundryDeployedModels", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryDeployedModelsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the models deployed and available for inference in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models/activity": { "get": { "operationId": "getFoundryDeployedModelsActivity", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryActivityResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns the activity feed for the project's deployed models.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models/progress": { "get": { "operationId": "getFoundryDeployedModelsProgress", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryProgressResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns deployment progress for the project's deployed models.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models/progress/stream": { "get": { "description": "The response is a text/event-stream of progress updates.", "operationId": "streamFoundryDeployedModelsProgress", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryProgressStreamResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Streams deployment progress for the project's deployed models as server-sent events.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models/rename": { "post": { "operationId": "renameFoundryDeployedModel", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/RenameModelRequest" } } ], "responses": { "200": { "$ref": "#/responses/foundryRenameModelResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Renames a deployed model's alias.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/deployed-models/update": { "post": { "operationId": "updateFoundryDeployedModel", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/UpdateModelRequest" } } ], "responses": { "202": { "$ref": "#/responses/foundryUpdateModelResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Updates the HuggingFace source behind a deployed model's alias.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/loras": { "get": { "operationId": "listFoundryLoras", "parameters": [ { "description": "ID of the project that owns the deployments.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryLoraListResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the LoRA adapter deployments in the project.", "tags": [ "Foundry" ] }, "post": { "description": "The deployment is asynchronous: the response returns the deployment record in a\npending state, which is reconciled to ready once the adapter is loaded.", "operationId": "createFoundryLora", "parameters": [ { "description": "ID of the project to deploy the adapter in.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/LoadLoraRequest" } } ], "responses": { "202": { "$ref": "#/responses/foundryLoraResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deploys a LoRA adapter (a fine-tuned model) onto its parent base model in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/loras/{id}": { "delete": { "description": "The teardown is asynchronous: the adapter is unloaded from the serving cluster in the background.", "operationId": "deleteFoundryLora", "parameters": [ { "description": "ID of the project that owns the deployment.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the LoRA adapter deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "202": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Removes a LoRA adapter deployment from the project.", "tags": [ "Foundry" ] }, "get": { "operationId": "getFoundryLora", "parameters": [ { "description": "ID of the project that owns the deployment.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the LoRA adapter deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/foundryLoraResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns a single LoRA adapter deployment in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/deployments": { "get": { "operationId": "listFoundryDeployments", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryDeploymentListResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the self-serve deployments in the project.", "tags": [ "Foundry" ] }, "post": { "description": "Asynchronous: returns the accepted deployment ID and status.", "operationId": "createFoundryDeployment", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/CreateDeploymentRequest" } } ], "responses": { "202": { "$ref": "#/responses/foundryDeploymentAcceptedResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a self-serve deployment in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/deployments/{id}": { "delete": { "operationId": "deleteFoundryDeployment", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "202": { "$ref": "#/responses/foundryDeploymentAcceptedResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Deletes a self-serve deployment from the project.", "tags": [ "Foundry" ] }, "get": { "operationId": "getFoundryDeployment", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/foundryDeploymentDetailResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns a single self-serve deployment in the project.", "tags": [ "Foundry" ] }, "patch": { "operationId": "updateFoundryDeployment", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" }, { "in": "body", "name": "Body", "schema": { "$ref": "#/definitions/UpdateDeploymentRequest" } } ], "responses": { "202": { "$ref": "#/responses/foundryDeploymentAcceptedResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Updates a self-serve deployment (name and/or replica count) in the project.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/deployments/{id}/activity": { "get": { "operationId": "getFoundryDeploymentActivity", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/foundryActivityResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns the activity feed for a self-serve deployment.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/deployments/{id}/progress": { "get": { "operationId": "getFoundryDeploymentProgress", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/foundryProgressResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Returns deployment progress for a self-serve deployment.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/deployments/{id}/progress/stream": { "get": { "description": "The response is a text/event-stream of progress updates.", "operationId": "streamFoundryDeploymentProgress", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the deployment.", "in": "path", "name": "id", "required": true, "type": "string", "x-go-name": "ID" } ], "responses": { "200": { "$ref": "#/responses/foundryProgressStreamResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Streams progress for a self-serve deployment as server-sent events.", "tags": [ "Foundry" ] } }, "/projects/{project_id}/foundry/selfserve/flavors": { "get": { "operationId": "listFoundryFlavors", "parameters": [ { "description": "ID of the project.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" } ], "responses": { "200": { "$ref": "#/responses/foundryFlavorsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists the self-serve deployment flavors available to the project.", "tags": [ "Foundry" ] } }, "/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": [ { "description": "ID of the project that owns the clusters.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Filters results to the cluster with this ID.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "cluster_id", "type": "string", "x-go-name": "ClusterID" }, { "description": "Filters results to the cluster with this name.", "example": "my-first-cluster", "in": "query", "name": "cluster_name", "type": "string", "x-go-name": "ClusterName" }, { "description": "Filters results to clusters whose name matches one of these search names.", "example": "a40.2x,a100.8x", "in": "query", "items": { "type": "string" }, "name": "cluster_search_names", "type": "array", "x-go-name": "ClusterSearchNames" }, { "description": "Filters results to clusters in these locations.", "example": "us-east1,us-northcentral1", "in": "query", "items": { "type": "string" }, "name": "locations", "type": "array", "x-go-name": "Locations" }, { "description": "Filters results to clusters in these states.", "example": "STATE_RUNNING", "in": "query", "items": { "type": "string" }, "name": "states", "type": "array", "x-go-name": "States" }, { "description": "Filters results to clusters running these versions.", "example": "1.30", "in": "query", "items": { "type": "string" }, "name": "versions", "type": "array", "x-go-name": "Versions" }, { "description": "Field to sort results by; prefix with '-' for descending order.", "example": "name, -name", "in": "query", "name": "sort", "type": "string", "x-go-name": "SortBy" }, { "description": "Whether to include inactive clusters in the results.", "example": true, "in": "query", "name": "show_inactive", "type": "boolean", "x-go-name": "ShowInactive" }, { "description": "Base64-encoded token for the next page of results.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "description": "Base64-encoded token for the previous page of results.", "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": "Lists all Kubernetes clusters in the project and returns their details.", "tags": [ "Kubernetes Clusters" ] }, "post": { "operationId": "createCluster", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesClusterPostRequest" } }, { "description": "ID of the project to create the cluster in.", "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": "Creates a Kubernetes cluster in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "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": "Deletes a Kubernetes cluster from the project and returns the async operation.", "tags": [ "Kubernetes Clusters" ] }, "get": { "operationId": "getCluster", "parameters": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "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": "Returns details for a single Kubernetes cluster in the project.", "tags": [ "Kubernetes Clusters" ] }, "patch": { "operationId": "updateCluster", "parameters": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "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": "Updates a Kubernetes cluster in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "cluster_id", "required": true, "type": "string", "x-go-name": "ClusterID" }, { "description": "Type of credentials to return: oidc or admin_cert.", "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": "Returns credentials for the user to authenticate to the cluster.", "tags": [ "Kubernetes Clusters" ] } }, "/projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings": { "get": { "operationId": "getSupportSettings", "parameters": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "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": "Returns support access settings for a Kubernetes cluster in the project.", "tags": [ "Kubernetes Support Access" ] }, "patch": { "operationId": "updateSupportSettings", "parameters": [ { "description": "ID of the project that owns the cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the cluster.", "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": "Updates support access settings for a Kubernetes cluster in the project.", "tags": [ "Kubernetes Support Access" ] } }, "/projects/{project_id}/kubernetes/nodepools": { "get": { "description": "Results can be narrowed to a single cluster with the cluster_id query parameter.", "operationId": "listNodePools", "parameters": [ { "description": "ID of the project that owns the node pools.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Filters results to node pools in this cluster.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "cluster_id", "type": "string", "x-go-name": "ClusterID" }, { "description": "Field to sort results by; prefix with '-' for descending order.", "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": "Lists all Kubernetes node pools in the project and returns their details.", "tags": [ "Kubernetes Node Pools" ] }, "post": { "operationId": "createNodePool", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/KubernetesNodePoolPostRequest" } }, { "description": "ID of the project to create the node pool in.", "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": "Creates a Kubernetes node pool in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Deletes a Kubernetes node pool from the project and returns the async operation.", "tags": [ "Kubernetes Node Pools" ] }, "get": { "operationId": "getNodePool", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Returns details for a single Kubernetes node pool in the project.", "tags": [ "Kubernetes Node Pools" ] }, "patch": { "operationId": "updateNodePool", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Updates a Kubernetes node pool in the project and returns the async operation.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate": { "post": { "operationId": "cancelNodePoolRotate", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Cancels an in-progress rotation of a Kubernetes node pool in the project.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate": { "get": { "operationId": "getNodePoolRotateStatus", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Returns the rotation status of a Kubernetes node pool in the project.", "tags": [ "Kubernetes Node Pools" ] }, "post": { "description": "A successful response returns an async operation you can poll.", "operationId": "rotateNodePool", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "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": "Starts a rotation of a Kubernetes node pool in the project and returns the async operation.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms": { "get": { "operationId": "listKubernetesNodePoolVMs", "parameters": [ { "description": "ID of the project that owns the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "node_pool_id", "required": true, "type": "string", "x-go-name": "NodePoolID" }, { "description": "Maximum number of results to return per page.", "example": "20", "in": "query", "name": "limit", "type": "string", "x-go-name": "Limit" }, { "description": "Field to sort results by; prefix with '-' for descending order.", "example": "name", "in": "query", "name": "sort", "type": "string", "x-go-name": "Sort" }, { "description": "Base64-encoded token for the next page of results.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_token", "type": "string", "x-go-name": "NextToken" }, { "description": "Base64-encoded token for the previous page of results.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_token", "type": "string", "x-go-name": "PrevToken" } ], "responses": { "200": { "$ref": "#/responses/listKubernetesNodePoolVMsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all VMs in a Kubernetes node pool and returns their details.", "tags": [ "Kubernetes Node Pools" ] } }, "/projects/{project_id}/kubernetes/versions": { "get": { "operationId": "listKubernetesVersions", "parameters": [ { "description": "ID of the project to list versions for.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Whether to include deprecated versions in the results.", "example": true, "in": "query", "name": "show_deprecated", "type": "boolean", "x-go-name": "ShowDeprecated" }, { "description": "Filters results to versions available for this VM product.", "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": "Lists all available Kubernetes versions in the project and returns their details.", "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": "Lists all InfiniBand networks and returns their details.", "tags": [ "IB Networks" ] } }, "/projects/{project_id}/networking/ib-networks/{ib_network_id}": { "get": { "operationId": "getIBNetwork", "parameters": [ { "description": "ID of the project.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the InfiniBand network.", "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": "Returns details for a single 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": "Lists all InfiniBand partitions in the project and returns their details.", "tags": [ "IB Partitions" ] }, "post": { "operationId": "createIBPartition", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/IBPartitionsPostRequestV1Alpha5" } }, { "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": "Creates an InfiniBand partition in the project and returns the created InfiniBand partition.", "tags": [ "IB Partitions" ] } }, "/projects/{project_id}/networking/ib-partitions/{ib_partition_id}": { "delete": { "operationId": "deleteIBPartition", "parameters": [ { "description": "ID of the project that owns the InfiniBand partition.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the InfiniBand partition.", "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": "Deletes an InfiniBand partition from the project and returns an empty response.", "tags": [ "IB Partitions" ] }, "get": { "operationId": "getIBPartition", "parameters": [ { "description": "ID of the project that owns the InfiniBand partition.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the InfiniBand partition.", "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": "Returns details for a single InfiniBand partition in the project.", "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": "Lists all load balancers in the project and returns their details.", "tags": [ "Internal Load Balancers" ] }, "post": { "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": "Creates a load balancer in the project and returns the async operation.", "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": { "operationId": "deleteLoadBalancer", "parameters": [ { "description": "ID of the project that owns the load balancer.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the load balancer.", "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": "Deletes a load balancer from the project and returns the async operation.", "tags": [ "Internal Load Balancers" ] }, "get": { "operationId": "getLoadBalancer", "parameters": [ { "description": "ID of the project that owns the load balancer.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the load balancer.", "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": "Returns details for a single load balancer in the project.", "tags": [ "Internal Load Balancers" ] }, "patch": { "description": "To disable health checking, pass \"health_check\": {\"port\": 0}.", "operationId": "patchLoadBalancer", "parameters": [ { "description": "ID of the project that owns the load balancer.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the load balancer.", "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/LoadBalancersPatchRequestV1Alpha5" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Updates a load balancer in the project and returns the async operation.", "tags": [ "Internal Load Balancers" ] } }, "/projects/{project_id}/networking/load-balancers": { "get": { "operationId": "listExternalLoadBalancers", "parameters": [ { "description": "ID of the project that owns the external load balancers.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Filters results to external load balancers in this location.", "example": "us-east1", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "description": "Filters results to external load balancers in this VPC network.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "query", "name": "vpc_network_id", "type": "string", "x-go-name": "VPCNetworkID" }, { "description": "Filters results to external load balancers with this name.", "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": "Lists all external load balancers in the project and returns their details.", "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": "Creates an external load balancer in the project and returns the async operation.", "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": "Deletes an external load balancer from the project and returns the async operation.", "tags": [ "Load Balancers" ] }, "get": { "operationId": "getExternalLoadBalancer", "parameters": [ { "description": "ID of the project that owns the external load balancer.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the external load balancer.", "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": "Returns details for a single external load balancer in 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": "Updates an external load balancer in the project and returns the async operation.", "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": "Lists all VPC firewall rules in the project and returns their details.", "tags": [ "VPC Firewall Rules" ] }, "post": { "operationId": "createVPCFirewallRule", "parameters": [ { "in": "body", "name": "Body", "required": true, "schema": { "$ref": "#/definitions/VPCFirewallRulesPostRequestV1Alpha5" } }, { "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": "Creates a VPC firewall rule in the project and returns the async operation.", "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": { "operationId": "deleteVPCFirewallRule", "parameters": [ { "description": "ID of the project that owns the VPC firewall rule.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC firewall rule.", "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": "Deletes a VPC firewall rule from the project and returns the async operation.", "tags": [ "VPC Firewall Rules" ] }, "get": { "operationId": "getVPCFirewallRule", "parameters": [ { "description": "ID of the project that owns the VPC firewall rule.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC firewall rule.", "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": "Returns details for a single VPC firewall rule in the project.", "tags": [ "VPC Firewall Rules" ] }, "patch": { "operationId": "patchVPCFirewallRule", "parameters": [ { "description": "ID of the project that owns the VPC firewall rule.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC firewall rule.", "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": "Updates a VPC firewall rule in the project and returns the async operation.", "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": "Lists all VPC networks in the project and returns their details.", "tags": [ "VPC Networks" ] }, "post": { "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": "Creates a VPC network in the project and returns the created network.", "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": { "operationId": "deleteVPCNetwork", "parameters": [ { "description": "ID of the project that owns the VPC network.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC network.", "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": "Deletes a VPC network from the project and returns the async operation.", "tags": [ "VPC Networks" ] }, "get": { "operationId": "getVPCNetwork", "parameters": [ { "description": "ID of the project that owns the VPC network.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC network.", "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": "Returns details for a single VPC network in the project.", "tags": [ "VPC Networks" ] }, "patch": { "operationId": "patchVPCNetwork", "parameters": [ { "description": "ID of the project that owns the VPC network.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC network.", "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": "Updates a VPC network in the project and returns the async operation.", "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": "Lists all VPC subnets in the project and returns their details.", "tags": [ "VPC Subnets" ] }, "post": { "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": "Creates a VPC subnet in the project and returns the created subnet.", "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": { "operationId": "deleteVPCSubnet", "parameters": [ { "description": "ID of the project that owns the VPC subnet.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC subnet.", "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": "Deletes a VPC subnet from the project and returns the async operation.", "tags": [ "VPC Subnets" ] }, "get": { "operationId": "getVPCSubnet", "parameters": [ { "description": "ID of the project that owns the VPC subnet.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC subnet.", "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": "Returns details for a single VPC subnet in the project.", "tags": [ "VPC Subnets" ] }, "patch": { "operationId": "patchVPCSubnet", "parameters": [ { "description": "ID of the project that owns the VPC subnet.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the VPC subnet.", "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": "Updates a VPC subnet in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the disks.", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Filters results to disks with these IDs.", "in": "query", "items": { "type": "string" }, "name": "disk_ids", "type": "array", "x-go-name": "DiskIds" }, { "description": "Filters results to disks in this location.", "in": "query", "name": "location", "type": "string", "x-go-name": "Location" }, { "description": "Filters results to disks with these names.", "in": "query", "items": { "type": "string" }, "name": "disk_names", "type": "array", "x-go-name": "DiskNames" }, { "description": "Excludes OS disks from the results when true.", "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": "Lists all disks in the project and returns their details.", "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/DisksPostRequestV1Alpha5" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a disk in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the disk.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk.", "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": "Deletes a disk from the project and returns the async operation.", "tags": [ "Disks" ] }, "get": { "description": "Size of disk will be in gibibytes (GiB)", "operationId": "getDisk", "parameters": [ { "description": "ID of the project that owns the disk.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk.", "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": "Returns details for a single disk in the project.", "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": [ { "description": "ID of the project that owns the disk.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk.", "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": "Resizes a disk in the project and returns the async operation.", "tags": [ "Disks" ] } }, "/projects/{project_id}/storage/s3/buckets": { "get": { "operationId": "listS3Buckets", "parameters": [ { "description": "ID of the project that owns the buckets.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Token that returns the next page of results.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "next_page_token", "type": "string", "x-go-name": "NextPageToken" }, { "description": "Token that returns the previous page of results.", "example": "bXktZmlyc3Qtdm0", "in": "query", "name": "prev_page_token", "type": "string", "x-go-name": "PrevPageToken" }, { "default": 20, "description": "Maximum number of buckets to return per page.", "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": "Lists all S3 buckets in the project and returns their details.", "tags": [ "S3Buckets" ] }, "post": { "operationId": "createS3Bucket", "parameters": [ { "description": "ID of the project to create the bucket in.", "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": "Creates an S3 bucket in the project and returns the created bucket.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/count": { "get": { "operationId": "getS3BucketsCount", "parameters": [ { "description": "ID of the project that owns the buckets.", "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": "Returns the number of S3 buckets in the project.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/quota": { "get": { "operationId": "getS3BucketsQuotaRequest", "parameters": [ { "description": "ID of the project that owns the buckets.", "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": "Returns the S3 bucket quota information for the project.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}": { "delete": { "operationId": "deleteS3Bucket", "parameters": [ { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the 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 from the project.", "tags": [ "S3Buckets" ] }, "get": { "operationId": "getS3Bucket", "parameters": [ { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the 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": "Returns details for a single S3 bucket in the project.", "tags": [ "S3Buckets" ] }, "patch": { "operationId": "updateS3BucketTags", "parameters": [ { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the 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": "Replaces the tags on an S3 bucket and returns the updated bucket.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock": { "post": { "operationId": "enableS3BucketObjectLock", "parameters": [ { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the 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": "Enables object lock on an S3 bucket and returns the updated bucket. Requires versioning to be enabled and cannot be disabled once enabled.", "tags": [ "S3Buckets" ] } }, "/projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning": { "post": { "operationId": "enableS3BucketVersioning", "parameters": [ { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "Name of the 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": "Enables versioning on an S3 bucket and returns the updated bucket. Versioning cannot be disabled once enabled.", "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": "Lists all disk snapshots in the project and returns their details.", "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/DiskSnapshotPostRequestV1Alpha5" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Creates a disk snapshot in the project and returns the async operation.", "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": [ { "description": "ID of the project that owns the disk snapshot.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk snapshot.", "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": "Deletes a disk snapshot from the project and returns the async operation.", "tags": [ "Snapshots" ] }, "get": { "description": "Size of snapshot will be in bytes.", "operationId": "getDiskSnapshot", "parameters": [ { "description": "ID of the project that owns the disk snapshot.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk snapshot.", "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": "Returns details for a single disk snapshot in the project.", "tags": [ "Snapshots" ] }, "patch": { "description": "A successful response from this resource will contain the updated snapshot.", "operationId": "renameDiskSnapshot", "parameters": [ { "description": "ID of the project that owns the disk snapshot.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "in": "path", "name": "project_id", "required": true, "type": "string", "x-go-name": "ProjectID" }, { "description": "ID of the disk snapshot.", "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": "Renames a disk snapshot in the project and returns the updated snapshot.", "tags": [ "Snapshots" ] } }, "/storage/object-storage/supported-locations": { "get": { "operationId": "listS3SupportedLocations", "responses": { "200": { "$ref": "#/responses/listS3SupportedLocationsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } }, "summary": "Lists all locations where object storage (S3) is available.", "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": { "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" }, "AttachedDiskV1Alpha5": { "properties": { "attachment_type": { "description": "How the disk is attached to the VM: os (boot disk) or data.", "example": "os | data", "type": "string", "x-go-name": "AttachmentType" }, "block_size": { "description": "Block size of the disk, in bytes.", "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "description": "Creation timestamp of the disk, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "id": { "description": "ID of the disk.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "location": { "description": "Location of the disk.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "mode": { "description": "Access mode the disk is attached with: read-write or read-only.", "example": "read-write | read-only", "type": "string", "x-go-name": "Mode" }, "name": { "description": "Name of the disk.", "example": "my-disk", "type": "string", "x-go-name": "Name" }, "serial_number": { "description": "Serial number of the disk.", "example": "96FD14FDBCF7E21E8EC", "type": "string", "x-go-name": "SerialNumber" }, "size": { "description": "Size of the disk.", "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "description": "Storage type of the disk.", "example": "persistent-ssd", "type": "string", "x-go-name": "Type" }, "updated_at": { "description": "Last update timestamp of the disk, in RFC3339 format.", "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" }, "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" }, "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" }, "BulkCreateLocationInfo": { "properties": { "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartitionID" }, "location": { "description": "Location to create the VMs in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "subnet_id": { "description": "ID of the subnet to create the VMs in. Must be in the same location\nas the VMs. If not provided, the default subnet for the location will be\nused, if there is one.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "ID of the Infiniband or RoCE partition to create the VMs in, if a transport type was\nspecified. Must be in the same location as the VMs.", "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" }, "BulkInstancePostRequestV1Alpha5": { "properties": { "count": { "description": "Number of VMs to create. If multiple locations are specified, this is the number of VMs\ncreated in each location.", "example": 6, "format": "int64", "type": "integer", "x-go-name": "Count" }, "crusoe_watch_agent_install_mode": { "description": "Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker.", "enum": [ "docker", "native" ], "type": "string", "x-go-name": "CrusoeWatchAgentInstallMode" }, "install_crusoe_watch_agent": { "description": "Whether to install the Crusoe Watch Agent on the VMs. Defaults to true.", "type": "boolean", "x-go-name": "InstallCrusoeWatchAgent", "x-nullable": true }, "instance_group_id": { "description": "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/InstanceTemplatePostRequestV1Alpha5" }, "instance_template_id": { "description": "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": "Locations to create the VMs in. This overrides any location specified in the instance template.", "items": { "$ref": "#/definitions/BulkCreateLocationInfo" }, "type": "array", "x-go-name": "Locations" }, "name_prefix": { "description": "Name prefix for the VMs to be created, used to derive each VM's name (e.g. \"my-vm\" produces\n\"my-vm-1\", \"my-vm-2\", and so on).", "example": "my-vm", "type": "string", "x-go-name": "NamePrefix" }, "nvlink_domain_id": { "description": "ID of the NVLink domain to create the VMs in.", "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": { "description": "Alias for the new token, used to identify it.", "example": "my-token", "type": "string", "x-go-name": "Alias" }, "expires_at": { "description": "Expiration timestamp of the token, in RFC3339 format.", "example": "2026-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpiresAt" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CCRTokenResponse": { "properties": { "token": { "description": "Token used to authenticate to the container registry.", "type": "string", "x-go-name": "Token" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CapacityV1Alpha5": { "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" }, "CcrImage": { "properties": { "manifest_count": { "description": "Number of manifests in the image.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "ManifestCount" }, "name": { "description": "Name of the image.", "example": "my-image", "type": "string", "x-go-name": "Name" }, "pull_count": { "description": "Number of times the image has been pulled.", "example": 100, "format": "int64", "type": "integer", "x-go-name": "PullCount" }, "updated_at": { "description": "Last update timestamp of the image, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "format": "date-time", "type": "string", "x-go-name": "LastUpdatedTimestampUTC" }, "url": { "description": "URL at which the image can be accessed.", "type": "string", "x-go-name": "URL" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "CreateCredentialRequest": { "properties": { "credentials": { "$ref": "#/definitions/CredentialSecrets" }, "description": { "description": "Optional human-readable description.", "type": "string", "x-go-name": "Description" }, "name": { "description": "Name of the credential.", "type": "string", "x-go-name": "Name" } }, "required": [ "name", "credentials" ], "title": "CreateCredentialRequest is the body for creating a credential.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "CreateDeploymentRequest": { "properties": { "deployment_name": { "description": "User-chosen deployment name.", "type": "string", "x-go-name": "DeploymentName" }, "fine_tuned_model": { "description": "The fine-tuned model to deploy.", "type": "string", "x-go-name": "FineTunedModel" }, "flavor_id": { "description": "ID of the flavor (hardware/model shape) to deploy on.", "type": "string", "x-go-name": "FlavorID" }, "replicas": { "description": "Number of replicas to run.", "format": "int32", "type": "integer", "x-go-name": "Replicas" } }, "required": [ "deployment_name", "fine_tuned_model", "flavor_id" ], "title": "CreateDeploymentRequest is the body for creating a self-serve deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "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 to create the bucket in.", "example": "us-eaststaging1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name for the new bucket. Must be DNS-compliant: 3-63 characters, using lowercase letters, numbers, and hyphens.", "example": "my-new-bucket", "type": "string", "x-go-name": "Name" }, "object_lock_enabled": { "description": "Whether to enable object lock on the new bucket. Requires versioning to be\nenabled and cannot be disabled once enabled.", "example": false, "type": "boolean", "x-go-name": "ObjectLockEnabled" }, "retention_period": { "description": "Length of the object lock retention period, in the unit given by retention_period_unit.", "example": 30, "format": "int32", "type": "integer", "x-go-name": "RetentionPeriod" }, "retention_period_unit": { "$ref": "#/definitions/S3RetentionPeriodUnit" }, "tags": { "additionalProperties": { "type": "string" }, "description": "Tags to apply to the new bucket as key-value pairs.", "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": "Human-readable alias for the new S3 access key.", "example": "my-service-account", "type": "string", "x-go-name": "Alias" }, "expire_at": { "description": "Expiration timestamp for the new S3 access key, in RFC3339 format.", "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": "Access key ID used to authenticate S3 requests.", "example": "S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab", "type": "string", "x-go-name": "AccessKeyID" }, "expire_at": { "description": "Expiration timestamp of the S3 access key, in RFC3339 format.", "example": "2022-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpireAt" }, "secret_key": { "description": "Secret access key paired with the access key ID. Returned only once, at creation.", "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" }, "CredentialResponse": { "properties": { "created_at": { "description": "RFC 3339 creation timestamp.", "type": "string", "x-go-name": "CreatedAt" }, "credentials": { "$ref": "#/definitions/CredentialSecrets" }, "description": { "description": "Human-readable description.", "type": "string", "x-go-name": "Description" }, "id": { "description": "Credential ID.", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the credential.", "type": "string", "x-go-name": "Name" }, "org_id": { "description": "Owning organization ID.", "type": "string", "x-go-name": "OrgID" }, "project_id": { "description": "Owning project ID.", "type": "string", "x-go-name": "ProjectID" }, "updated_at": { "description": "RFC 3339 last-update timestamp.", "type": "string", "x-go-name": "UpdatedAt" }, "vendor": { "description": "Vendor the credential is for (e.g. \"huggingface\").", "type": "string", "x-go-name": "Vendor" } }, "title": "CredentialResponse describes a stored credential.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "CredentialSecrets": { "properties": { "token": { "description": "Access token (e.g. a HuggingFace token). Write-only; omitted unless explicitly revealed.", "type": "string", "x-go-name": "Token" } }, "title": "CredentialSecrets holds the secret material for a credential.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "CustomImageEditTagsRequest": { "properties": { "tags": { "description": "New set of tags to associate with the custom image.", "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": { "description": "New description for the custom image.", "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": { "description": "ID of the disk to create the custom image from.", "example": "182d01c7-d3fe-424b-af13-8775aeead194", "type": "string" }, "description": { "description": "Description for the new custom image.", "example": "Ubuntu is the modern, open source operating system on Linux for ...", "type": "string", "x-go-name": "Description" }, "name": { "description": "Name for the new custom image.", "example": "ubuntu", "type": "string", "x-go-name": "Name" }, "tags": { "description": "Tags to associate with the new custom image.", "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" }, "DeployedModelEntry": { "properties": { "architecture": { "$ref": "#/definitions/FoundryArchitecture" }, "context_length": { "description": "Maximum context length supported by the model.", "format": "int32", "type": "integer", "x-go-name": "ContextLength" }, "description": { "description": "Human-readable description of the model.", "type": "string", "x-go-name": "Description" }, "icon": { "description": "URL of the model icon.", "type": "string", "x-go-name": "Icon" }, "id": { "description": "Model endpoint ID.", "type": "string", "x-go-name": "ID" }, "is_available_to_rolling_deployment": { "description": "Whether the model can be used with rolling deployments.", "type": "boolean", "x-go-name": "IsAvailableToRollingDeployment" }, "is_billed_by_token": { "description": "Whether usage of the model is billed by token.", "type": "boolean", "x-go-name": "IsBilledByToken" }, "is_single_replica": { "description": "Whether the model runs as a single replica.", "type": "boolean", "x-go-name": "IsSingleReplica" }, "model_name": { "description": "Underlying (served) model name.", "type": "string", "x-go-name": "ModelName" }, "name": { "description": "Display name of the model.", "type": "string", "x-go-name": "Name" }, "owned_by": { "description": "Owner of the model.", "type": "string", "x-go-name": "OwnedBy" }, "quantization": { "description": "Quantization applied to the model, if any.", "type": "string", "x-go-name": "Quantization" }, "region": { "description": "Region the model is served in.", "type": "string", "x-go-name": "Region" }, "status": { "description": "Serving status of the model.", "type": "string", "x-go-name": "Status" }, "supported_parameters": { "description": "Inference parameters supported by the model.", "items": { "type": "string" }, "type": "array", "x-go-name": "SupportedParameters" }, "tags": { "description": "Tags associated with the model.", "items": { "type": "string" }, "type": "array", "x-go-name": "Tags" }, "type": { "description": "Model type (e.g. \"base_model\", \"adapter\").", "type": "string", "x-go-name": "Type" } }, "title": "DeployedModelEntry describes a model available for inference in the project.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "DeploymentAcceptedResponse": { "description": "DeploymentAcceptedResponse is returned when a self-serve deployment\ncreate/update/delete is accepted for asynchronous processing.", "properties": { "id": { "description": "ID of the affected deployment.", "type": "string", "x-go-name": "ID" }, "status": { "description": "Resulting status.", "type": "string", "x-go-name": "Status" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "DeploymentProgress": { "properties": { "message": { "description": "Human-readable progress message.", "type": "string", "x-go-name": "Message" }, "percent": { "description": "Completion percentage (0-100).", "format": "int32", "type": "integer", "x-go-name": "Percent" }, "updated_at": { "description": "RFC 3339 timestamp of the last progress update.", "type": "string", "x-go-name": "UpdatedAt" } }, "title": "DeploymentProgress describes the progress of a deployment operation.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "DesiredCount": { "properties": { "value": { "description": "New desired number of instances for the instance group.", "example": 3, "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" }, "DiskAttachment": { "properties": { "attachment_type": { "description": "Role the disk plays for the VM: os or data.", "enum": [ "os", "data" ], "example": "data", "type": "string", "x-go-name": "AttachmentType" }, "disk_id": { "description": "ID of the disk to attach.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "DiskID" }, "mode": { "description": "Access mode to attach the disk with: read-only or read-write.", "enum": [ "read-only", "read-write" ], "example": "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": { "description": "Block size of the disk snapshot, in bytes: 512 or 4096.", "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "description": "Creation timestamp of the disk snapshot, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "created_from": { "description": "ID of the disk the snapshot was created from.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "CreatedFrom" }, "id": { "description": "ID of the disk snapshot.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the disk snapshot.", "example": "my-snapshot", "type": "string", "x-go-name": "Name" }, "size": { "description": "Size of the disk snapshot, in bytes.", "example": "10457 bytes", "type": "string", "x-go-name": "Size" }, "updated_at": { "description": "Last update timestamp of the disk snapshot, in RFC3339 format.", "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": { "description": "New name for the disk snapshot.", "example": "my-snapshot", "type": "string", "x-go-name": "Name" } }, "required": [ "name" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DiskSnapshotPostRequestV1Alpha5": { "properties": { "disk_id": { "description": "ID of the disk to snapshot.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "DiskID" }, "name": { "description": "Name for the new disk snapshot.", "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": { "description": "Size of the disk, including a unit suffix.", "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "description": "Type of disk to create: persistent-ssd or shared-volume.", "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" }, "DiskV1Alpha5": { "properties": { "attached_to": { "description": "VMs the disk is currently attached to.", "items": { "$ref": "#/definitions/VMAttachmentV1Alpha5" }, "type": "array", "x-go-name": "AttachedTo" }, "block_size": { "description": "Block size of the disk, in bytes: 512 or 4096.", "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "created_at": { "description": "Creation timestamp of the disk, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "dns_name": { "description": "DNS name used to mount the disk. Populated only for shared-volume disks.", "example": "nfs.crusoecloudcompute.com", "type": "string", "x-go-name": "DNSName" }, "id": { "description": "ID of the disk.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "ID" }, "location": { "description": "Location where the disk is provisioned.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the disk.", "example": "my-disk", "type": "string", "x-go-name": "Name" }, "serial_number": { "description": "Serial number assigned to the disk.", "example": "96FD14FDBCF7E21E8EC", "type": "string", "x-go-name": "SerialNumber" }, "size": { "description": "Storage capacity of the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.", "example": "10GiB", "type": "string", "x-go-name": "Size" }, "type": { "description": "Type of the disk: persistent-ssd or shared-volume.", "example": "persistent-ssd", "type": "string", "x-go-name": "Type" }, "updated_at": { "description": "Last update timestamp of the disk, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "vips": { "description": "Virtual IP addresses used to mount the disk. Populated only for shared-volume disks.", "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": { "description": "New storage capacity for the disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.", "example": "10GiB", "type": "string", "x-go-name": "Size" } }, "required": [ "size" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "DisksPostRequestV1Alpha5": { "properties": { "block_size": { "description": "Block size for the new disk, in bytes: 512 or 4096.", "example": 4096, "format": "int64", "type": "integer", "x-go-name": "BlockSize" }, "location": { "description": "Location to create the disk in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name for the new disk.", "example": "my-disk", "type": "string", "x-go-name": "Name" }, "size": { "description": "Storage capacity for the new disk, given as a size and unit in the format [Size][Unit], for example 100GiB or 1TiB.", "example": "10GiB", "type": "string", "x-go-name": "Size" }, "snapshot_id": { "description": "ID of a disk snapshot to create the disk from.", "example": "123e4567-e89b-12d3-a456-426614174000", "type": "string", "x-go-name": "DiskSnapshotID" }, "type": { "default": "persistent-ssd", "description": "Type of disk to create: persistent-ssd or shared-volume. Defaults to 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" }, "EnableS3BucketObjectLockRequest": { "properties": { "retention_period": { "description": "Length of the object lock retention period, in the unit given by retention_period_unit.", "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" }, "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", "VAT" ], "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" }, "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.", "example": "us-northcentral1-a", "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": "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.", "example": "tcp", "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": "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": "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" }, "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 ones allowed. Only one of the two\nfields can be non-empty.", "properties": { "cidr": { "description": "CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id.", "example": "10.1.2.3/24", "type": "string", "x-go-name": "CIDR" }, "resource_id": { "description": "ID of a VPC network, subnet, or VM. Mutually exclusive with cidr.", "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" }, "FoundryArchitecture": { "properties": { "instruct_type": { "description": "Instruction tuning type (e.g. \"chat\").", "type": "string", "x-go-name": "InstructType" }, "modality": { "description": "Model modality (e.g. \"text\").", "type": "string", "x-go-name": "Modality" }, "parameter_count": { "description": "Number of model parameters.", "format": "int64", "type": "integer", "x-go-name": "ParameterCount" }, "tokenizer": { "description": "Tokenizer identifier.", "type": "string", "x-go-name": "Tokenizer" } }, "title": "FoundryArchitecture describes the architecture of a deployed model.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "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" }, "HealthCheckOptions": { "properties": { "failure_count": { "description": "Number of allowed failures before considering a backend unhealthy.", "example": "3", "type": "string", "x-go-name": "FailureCount" }, "interval": { "description": "Interval between health checks, in seconds.", "example": "60", "type": "string", "x-go-name": "Interval" }, "port": { "description": "Port on which to perform health checks.", "example": "8080", "type": "string", "x-go-name": "Port" }, "success_count": { "description": "Number of successful checks required to consider a backend healthy.", "example": "2", "type": "string", "x-go-name": "SuccessCount" }, "timeout": { "description": "Timeout for a health check response, in seconds.", "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": "HealthCheckOptionsExternalLB defines the health check configuration.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "HostChannelAdapter": { "properties": { "guid": { "description": "Globally unique identifier (GUID) of the host channel adapter.", "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": { "description": "ID of the transport network the host channel adapter is attached to.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "TransportNetworkID" }, "transport_partition_id": { "description": "ID of the transport partition the host channel adapter is attached to.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "TransportPartitionID" }, "type": { "description": "Transport type of the host channel adapter.", "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": { "description": "Available capacity in the network, broken down by VM slice type.", "items": { "$ref": "#/definitions/IBNetworkCapacity" }, "type": "array", "x-go-name": "Capacities" }, "id": { "description": "ID of the InfiniBand network.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "location": { "description": "Location of the InfiniBand network.", "example": "us-east", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the InfiniBand network.", "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": { "description": "Number of slices of the given slice type.", "example": 8, "format": "uint32", "type": "integer", "x-go-name": "Quantity" }, "slice_type": { "description": "VM slice type the capacity applies to.", "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": { "description": "ID of the InfiniBand network the partition belongs to.", "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0", "type": "string", "x-go-name": "IBNetworkID" }, "id": { "description": "ID of the InfiniBand partition.", "example": "44701f9e-845c-4005-9240-adee6401b8d3", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the InfiniBand partition.", "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" }, "IBPartitionsPostRequestV1Alpha5": { "properties": { "ib_network_id": { "description": "ID of the InfiniBand network to create the partition in.", "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0", "type": "string", "x-go-name": "IBNetworkID" }, "name": { "description": "Name for the new InfiniBand partition.", "example": "my-ib-partition", "type": "string", "x-go-name": "Name" } }, "required": [ "name", "ib_network_id" ], "title": "IBPartitionsPostRequestV1Alpha5 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" }, "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": { "description": "Creation timestamp of the image, in RFC3339 format.", "example": "2023-06-29T20:03:26Z", "type": "string", "x-go-name": "CreatedAt" }, "description": { "description": "Description of the image.", "example": "base Ubuntu 20.04 image", "type": "string", "x-go-name": "Description" }, "id": { "description": "ID of the image.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ID" }, "locations": { "description": "Locations where the image is available.", "example": "[us-east1, us-northcentral1]", "items": { "type": "string" }, "type": "array", "x-go-name": "Locations" }, "name": { "description": "Name of the image.", "example": "ubuntu", "type": "string", "x-go-name": "Name" }, "tags": { "description": "Tags associated with the image.", "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": "ID of the instance.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "using_latest_config": { "description": "Whether 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": "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": "Creation timestamp of the instance group, in RFC3339 format.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "CreatedAt" }, "desired_count": { "description": "Desired number of instances 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": "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] 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": "ID of the project that owns the instance group.", "example": "b67aec22-2908-4427-994c-4e32be87477e", "type": "string", "x-go-name": "ProjectID" }, "running_instance_count": { "description": "Number of running instances currently in the instance group.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "RunningInstanceCount" }, "state": { "description": "Current state of the instance group.", "example": "HEALTHY", "type": "string", "x-go-name": "State" }, "template_id": { "description": "ID of the instance template currently associated with the instance group.", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc", "type": "string", "x-go-name": "TemplateID" }, "updated_at": { "description": "Last update timestamp of the instance group, in RFC3339 format.", "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": "New name for the instance group.", "example": "my-instance-group", "type": "string", "x-go-name": "Name" }, "template_id": { "description": "ID of the instance template to associate 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 number of instances for the new instance group.", "example": 3, "format": "int64", "type": "integer", "x-go-name": "DesiredCount" }, "name": { "description": "Name for the new instance group.", "example": "my-instance-group", "type": "string", "x-go-name": "Name" }, "template_id": { "description": "ID of the instance template to create the group's instances from.", "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": "Creation timestamp of the instance template, in RFC3339 format.", "example": "2024-01-01T00:00:00Z", "type": "string", "x-go-name": "CreatedAt" }, "custom_image_name": { "description": "Custom image to use for all VMs created from this instance template.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "CustomImage" }, "disks": { "description": "Disks attached to 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": "Host maintenance policy controlling how VMs created from this instance template behave during\nhost maintenance: manual, stop-vm, or unspecified.", "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 assigned to all VMs created from this instance template.", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "placement_policy": { "description": "Placement policy controlling how VMs created from this instance template are\ndistributed across hosts: spread or unspecified.", "enum": [ "spread", "unspecified" ], "type": "string", "x-go-name": "PlacementPolicy" }, "project_id": { "description": "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": { "description": "Reservation used for all VMs created from this instance template.", "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" }, "InstanceTemplatePostRequestV1Alpha5": { "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 attach to 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": "Host maintenance policy controlling how VMs created from this instance template behave during host maintenance.", "example": "manual,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "nvlink_domain_id": { "description": "NVLink domain to assign to all VMs created from this instance template.", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "placement_policy": { "description": "Placement policy controlling how VMs created from this instance template are\ndistributed across hosts: spread or unspecified.", "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": { "description": "Reservation to use for all VMs created from this instance template.", "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": "InstanceTemplatePostRequestV1Alpha5 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" }, "InstanceV1Alpha5": { "description": "InstanceV1Alpha5 contains identifying information about a vm instance for\nvms.instances endpoints.", "properties": { "billing_type": { "description": "Billing type of the VM: On-demand, Spot, or PoC.\nvalues: 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": { "description": "Creation timestamp of the VM, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "disks": { "description": "Disks attached to the VM.", "items": { "$ref": "#/definitions/AttachedDiskV1Alpha5" }, "type": "array", "x-go-name": "Disks" }, "host_channel_adapters": { "description": "Host channel adapters attached to the VM.", "items": { "$ref": "#/definitions/HostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "id": { "description": "ID of the VM.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "instance_group_id": { "description": "ID of the instance group the VM belongs to, if any.", "example": "707749bd-ecad-4de8-aa00-1ae2fdb99e19", "type": "string", "x-go-name": "InstanceGroupID" }, "instance_template_id": { "description": "ID of the instance template the VM was created from, if any.", "example": "75c6712a-8da8-463c-a72d-fc65cf922959", "type": "string", "x-go-name": "InstanceTemplateID" }, "location": { "description": "Location the VM runs in.", "example": "us-centralnorth1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "description": "Host maintenance policy applied to the VM: manual, stop-vm, or unspecified.", "enum": [ "manual", "stop-vm", "unspecified" ], "type": "string", "x-go-name": "MaintenancePolicy" }, "name": { "description": "Name of the VM.", "example": "my-first-vm", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "description": "Network interfaces attached to the VM.", "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "nvlink_domain_id": { "description": "ID of the NVLink domain the VM belongs to, if any.", "type": "string", "x-go-name": "NvlinkDomainID" }, "pod_id": { "description": "ID of the pod the VM belongs to, if any.", "example": "29d20dc4-90ad-4365-ab05-83f5f5e52d94", "type": "string", "x-go-name": "PodID" }, "project_id": { "description": "ID of the project that owns the VM.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ProjectID" }, "reservation_id": { "description": "ID of the reservation the VM belongs to, if any.", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "state": { "description": "Current lifecycle state of the VM.", "example": "RUNNING", "type": "string", "x-go-name": "State" }, "type": { "description": "Product name of the VM type.", "example": "a100.2x", "type": "string", "x-go-name": "Type" }, "updated_at": { "description": "Last update timestamp of the VM, in RFC3339 format.", "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" }, "InstancesAttachDiskPostRequestV1Alpha5": { "description": "InstancesAttachDiskPostRequestV1Alpha5 is the request type for POST requests to the\nvms.instances.attach-disk endpoint.", "properties": { "attach_disks": { "description": "Disks to attach to the VM.", "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": { "description": "Identifiers of the disks to detach from the VM.", "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" }, "InstancesPatchRequestV1Alpha5": { "properties": { "action": { "description": "Action to perform on the VM: START, STOP, RESET, RESERVE, UNRESERVE, or UPDATE. RESERVE and\nUNRESERVE operations are done synchronously, and so will have succeeded with a 200 response.", "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": { "description": "New set of host channel adapters for the VM.", "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "maintenance_policy": { "description": "New host maintenance policy for the VM: manual, stop-vm, or unspecified.", "example": "manual,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "network_interfaces": { "description": "New set of network interfaces for the VM.", "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "reservation_id": { "description": "ID of the reservation to use for the VM.", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ReservationID" }, "type": { "description": "New VM type to change the VM to.", "example": "a100.2x", "type": "string", "x-go-name": "Type" } }, "required": [ "action" ], "title": "InstancesPatchRequestV1Alpha5 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" }, "InstancesPostRequestV1Alpha5": { "description": "InstancesPostRequestV1Alpha5 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": "Installation mode for the Crusoe Watch Agent: docker or native. Defaults to docker.", "enum": [ "docker", "native" ], "type": "string", "x-go-name": "CrusoeWatchAgentInstallMode" }, "custom_image": { "description": "ID of a custom image to use for the new VM. Either image or custom_image should be supplied, not both.", "type": "string", "x-go-name": "CustomImage" }, "disks": { "description": "Disks to attach to the new VM.", "example": "[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attachment_type: \"data\"},", "items": { "$ref": "#/definitions/DiskAttachment" }, "type": "array", "x-go-name": "Disks" }, "host_channel_adapters": { "description": "Host channel adapters to attach to the new VM.", "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "type": "array", "x-go-name": "HostChannelAdapters" }, "image": { "description": "Name of the OS image to use for the new VM. Either image or custom_image should be supplied, not both.", "example": "ubuntu:20.04", "type": "string", "x-go-name": "Image" }, "install_crusoe_watch_agent": { "description": "Whether to install the Crusoe Watch Agent on the VM. Defaults to true.", "type": "boolean", "x-go-name": "InstallCrusoeWatchAgent", "x-nullable": true }, "location": { "description": "Location to create the VM in.", "example": "us-northcentral1-a", "type": "string", "x-go-name": "Location" }, "maintenance_policy": { "description": "Host maintenance policy to apply to the new VM: manual, stop-vm, or unspecified.", "example": "manual,stop-vm,unspecified", "type": "string", "x-go-name": "MaintenancePolicy" }, "name": { "description": "Name for the new VM.", "example": "my-first-vm", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "description": "Network interfaces to attach to the new VM.", "items": { "$ref": "#/definitions/NetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "nvlink_domain_id": { "description": "ID of the NVLink domain to create the VM in.", "type": "string", "x-go-name": "NvlinkDomainID" }, "reservation_specification": { "$ref": "#/definitions/ReservationSpecification" }, "shutdown_script": { "description": "Script to run when the VM shuts down.", "example": "#!/bin/bash\\necho 'goodbye'", "type": "string", "x-go-name": "ShutdownScript" }, "ssh_public_key": { "description": "SSH public key to grant access to the new VM.", "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": "Script to run when the VM starts.", "example": "#!/bin/bash\\necho 'hello'", "type": "string", "x-go-name": "StartupScript" }, "type": { "description": "Product name of the VM type to create.", "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 for the Kubernetes cluster to authenticate to.", "type": "string", "x-go-name": "KubeConfig" }, "user_client_certificate": { "description": "Client certificate the user presents to authenticate to the cluster.", "type": "string", "x-go-name": "UserClientCert" }, "user_client_key": { "description": "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": "Whether there was no rotation in progress 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": "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": "Range of IP addresses allocated to pods scheduled on worker nodes, in CIDR notation.", "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": "Creation timestamp of the cluster, in RFC3339 format.", "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 the 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.", "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": "Mask size for the cluster CIDR.", "example": 24, "format": "int32", "type": "integer", "x-go-name": "NodeCIDRMask" }, "node_pools": { "description": "IDs of the 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 (without a public IP).", "example": true, "type": "boolean", "x-go-name": "Private" }, "project_id": { "description": "ID of the project that owns the Kubernetes cluster.", "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": "Range of IP addresses allocated to Kubernetes services, in CIDR notation.", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ServiceClusterCIDR" }, "state": { "description": "Current state of the cluster.", "example": "STATE_RUNNING", "type": "string", "x-go-name": "State" }, "subnet_id": { "description": "ID of the subnet the Kubernetes cluster belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "updated_at": { "description": "Last update timestamp of the cluster, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "version": { "description": "Version of the Crusoe Kubernetes image the cluster runs.", "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": "New extra arguments to pass to the kube-apiserver control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.", "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": "New extra arguments to pass to the kube-controller-manager control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.", "example": { "bind-address": "0.0.0.0" }, "type": "object", "x-go-name": "ControllerManagerExtraArgs" }, "kubelogin_args": { "additionalProperties": { "type": "string" }, "description": "New arguments for the 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": "New extra arguments to pass to the kube-scheduler control plane component.\nIf absent, existing args are preserved. If present but empty, args are cleared.", "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 include in the new 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": "Range of IP addresses allocated to pods scheduled on worker nodes, in CIDR notation.", "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 the 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": "Mask size for the cluster CIDR.", "example": 24, "format": "int32", "type": "integer", "x-go-name": "NodeCIDRMask" }, "private": { "description": "Whether the cluster is private (without a public IP). Defaults to 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": "Range of IP addresses allocated to Kubernetes services, in CIDR notation.", "example": "10.233.0.0/18", "type": "string", "x-go-name": "ServiceClusterCIDR" }, "subnet_id": { "description": "ID of the subnet to create the cluster in. Must be in the location\nspecified. If not provided, the default subnet for the location is\nused, if there is one.", "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": "Master toggle for whether support access is enabled.", "example": true, "type": "boolean", "x-go-name": "AccessEnabled" }, "enabled_roles": { "description": "Support access roles to enable.", "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": "Master toggle for whether support access is enabled.", "example": true, "type": "boolean", "x-go-name": "AccessEnabled" }, "active_requests": { "description": "Currently active support access 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": "Version name of the Crusoe Kubernetes cluster image.", "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": "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": "IDs of instances that are out of sync with the node pool configuration.", "items": { "type": "string" }, "type": "array", "x-go-name": "OutOfSyncInstances" }, "state": { "description": "Current rotation 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": "ID of the Kubernetes cluster the node pool belongs to.", "example": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f", "type": "string", "x-go-name": "ClusterID" }, "count": { "description": "Number of nodes in the node pool.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count" }, "created_at": { "description": "Creation timestamp of the node pool, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "ephemeral_storage_for_containerd": { "description": "Whether the first local ephemeral NVMe disk is 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": "ID of the image used for the node pool.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ImageID" }, "instance_details": { "description": "Details about the instances within the node pool.", "items": { "$ref": "#/definitions/InstanceDetails" }, "type": "array", "x-go-name": "InstanceDetails" }, "instance_ids": { "description": "IDs of the 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 assigned to nodes in the node pool.", "example": { "label": "my_node" }, "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 the node pool.", "example": "550e8400-e29b-41d4-a716-446655440000", "type": "string", "x-go-name": "NvlinkDomainID" }, "project_id": { "description": "ID of the project that owns the node pool.", "example": "9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f", "type": "string", "x-go-name": "ProjectID" }, "public_ip_type": { "default": "dynamic", "description": "Public IP type for the node pool's nodes: dynamic, static, or none.", "example": "dynamic", "type": "string", "x-go-name": "PublicIPType" }, "reservation_id": { "description": "ID of the billing reservation associated with the node pool.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ReservationID" }, "state": { "description": "Current state of the node pool.", "example": "STATE_RUNNING", "type": "string", "x-go-name": "State" }, "subnet_id": { "description": "ID of the subnet the 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": "Last update timestamp of the node pool, in RFC3339 format.", "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": "Action to perform on the node pool: RESERVE, UNRESERVE, or UPDATE. RESERVE and UNRESERVE\noperations are done synchronously, and so will have succeeded with a 200 response.\nDefaults to UPDATE if no action is specified.", "enum": [ "RESERVE", "UNRESERVE", "UPDATE" ], "example": "UPDATE", "type": "string", "x-go-name": "Action", "x-redocly-optional": true }, "count": { "description": "New 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": "Whether the first local ephemeral NVMe disk is used for containerd storage.", "example": true, "type": "boolean", "x-go-name": "EphemeralStorageForContainerd", "x-redocly-optional": true }, "node_labels": { "additionalProperties": { "type": "string" }, "description": "New labels for the node pool. Labels provided in the PATCH request do not modify existing nodes,\nbut apply to any newly created nodes.", "example": { "label": "my_node" }, "type": "object", "x-go-name": "NodeLabels", "x-redocly-optional": true }, "node_pool_version": { "description": "New Kubernetes node pool version for newly created VMs.", "example": "1.30", "type": "string", "x-go-name": "NodePoolVersion", "x-redocly-optional": true }, "node_taints": { "description": "New taints for nodes in this node pool. Taints provided in the PATCH request do not modify existing nodes,\nbut apply to any newly created nodes.\nThis field has three behaviors:\nOmitted (null): existing taints are left unchanged.\nEmpty array ([]): all existing taints are cleared.\nNon-empty array: existing taints are fully replaced by the\nprovided list.\nEach (key, effect) pair in the list must be unique. Up to 50\ntaints are allowed. See KubernetesNodeTaint for per-field format rules.", "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": "New reservation ID for the node pool.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ReservationID", "x-redocly-optional": true }, "ssh_public_key": { "description": "New 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": "ID of the cluster the new node pool belongs to.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ClusterID" }, "count": { "description": "Number of nodes to create.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "Count" }, "ephemeral_storage_for_containerd": { "description": "Whether the first local ephemeral NVMe disk is 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 to assign to nodes in the new 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": "NVLink domain ID to assign to nodes in the new 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: spread or 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 create within the new node pool.", "example": "a100.2x", "type": "string", "x-go-name": "ProductName" }, "public_ip_type": { "default": "dynamic", "description": "Public IP type for the node pool's nodes: dynamic, static, or 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 the new node pool.", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8", "type": "string", "x-go-name": "SSHPublicKey" }, "subnet_id": { "description": "ID of the subnet to create the node pool in. Must be in the location\nof the cluster if specified. If not provided, the default subnet for the\nlocation is used, if there is one.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "SubnetID" }, "transport_partition_id": { "description": "ID of the InfiniBand or RoCE partition to create the node pool in. Must be in the\nlocation of the cluster if specified.", "example": "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" }, "KubernetesNodePoolRotateStartRequest": { "properties": { "count": { "description": "Number of nodes to replace at a time when the strategy is 'count'.", "example": 2, "format": "int64", "type": "integer", "x-go-name": "Count" }, "percentage": { "description": "Percentage of nodes to replace at a time when the strategy is 'percentage'.", "example": 20, "format": "int64", "type": "integer", "x-go-name": "Percentage" }, "strategy": { "description": "Strategy for the rotation to perform: count or percentage.", "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": "Version name of the Crusoe Kubernetes node pool image.", "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": "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": "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": "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": "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": "Requested support access role.", "example": "operator", "type": "string", "x-go-name": "AccessRole" }, "cert_expires_at": { "description": "Time when the certificate expires.", "example": "2024-01-15T18:30:00Z", "type": "string", "x-go-name": "CertExpiresAt" }, "cert_fingerprint": { "description": "Fingerprint of the certificate.", "example": "AA:BB:CC:DD:EE:FF", "type": "string", "x-go-name": "CertFingerprint" }, "cert_issued_at": { "description": "Time when the most recent certificate was issued.", "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "CertIssuedAt" }, "cert_serial": { "description": "Serial number of the certificate.", "example": "1234567890", "type": "string", "x-go-name": "CertSerial" }, "expires_at": { "description": "Time when access expires.", "example": "2024-01-15T18:30:00Z", "type": "string", "x-go-name": "ExpiresAt" }, "requested_at": { "description": "Time when access was requested.", "example": "2024-01-15T10:30:00Z", "type": "string", "x-go-name": "RequestedAt" }, "requestor_id": { "description": "ID of the user who requested access.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "RequestorID" }, "requestor_team": { "description": "Name of the team requesting support access.", "example": "SRE", "type": "string", "x-go-name": "RequestorTeam" }, "support_reason": { "description": "Reason given for requesting support access.", "example": "Investigating cluster health issue", "type": "string", "x-go-name": "SupportReason" }, "ticket_ref": { "description": "Ticket associated with 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" }, "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" }, "ListActivityResponse": { "properties": { "events": { "description": "Activity events, most recent first.", "items": { "$ref": "#/definitions/SelfServeActivityEvent" }, "type": "array", "x-go-name": "Events" }, "next_cursor": { "description": "Cursor for the next page of events, if any.", "type": "string", "x-go-name": "NextCursor" } }, "title": "ListActivityResponse is the response body for a deployment activity feed.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "ListCapacitiesResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/CapacityV1Alpha5" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListCcrImagesResponse": { "properties": { "items": { "description": "List of images.", "items": { "$ref": "#/definitions/CcrImage" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListCredentialsResponse": { "properties": { "credentials": { "description": "The credentials in the project.", "items": { "$ref": "#/definitions/CredentialResponse" }, "type": "array", "x-go-name": "Credentials" } }, "title": "ListCredentialsResponse is the response body for listing credentials.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "ListDeploymentsResponse": { "properties": { "deployments": { "description": "The self-serve deployments in the project.", "items": { "$ref": "#/definitions/SelfServeDeploymentSummary" }, "type": "array", "x-go-name": "Deployments" } }, "title": "ListDeploymentsResponse is the response body for listing self-serve deployments.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "ListDiskSnapshotsResponseV1Alpha5": { "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" }, "ListDisksResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/DiskV1Alpha5" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListDisksResponseV1Alpha5 is the response type for GET requests to the disks endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListEntitiesResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/Entity" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListEntitiesResponseV1Alpha5 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" }, "ListFlavorsResponse": { "properties": { "flavors": { "description": "The available self-serve flavors.", "items": { "$ref": "#/definitions/SelfServeFlavor" }, "type": "array", "x-go-name": "Flavors" } }, "title": "ListFlavorsResponse is the response body for listing self-serve flavors.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "ListIBNetworksResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/IBNetwork" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListIBNetworksResponseV1Alpha5 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" }, "ListIBPartitionsResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/IBPartition" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListIBPartitionsResponseV1Alpha5 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" }, "ListImagesResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/Image" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListImagesResponseV1Alpha5 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" }, "ListInstanceTemplatesResponseV1Alpha5": { "description": "ListInstanceTemplatesResponseV1Alpha5 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" }, "ListInstancesResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/InstanceV1Alpha5" }, "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": "ListInstancesResponseV1Alpha5 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" }, "ListKubernetesNodePoolVMsResponse": { "description": "ListKubernetesNodePoolVMsResponse is the response type for\nGET /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms. Uses the\ncanonical short-form `next_token` / `prev_token` field names that match\n`fetch`'s request params, rather than the legacy `*_page_token` naming used\nby /compute/vms/instances.", "properties": { "items": { "items": { "$ref": "#/definitions/InstanceV1Alpha5" }, "type": "array", "x-go-name": "Items" }, "next_token": { "description": "Base64 encoded token representing the next page of instances. Empty if\ncurrently on the last page.", "example": "bXktbGFzdC12bQ", "type": "string", "x-go-name": "NextToken" }, "prev_token": { "description": "Base64 encoded token representing the previous page of instances. Empty\nif currently on the first page.", "example": "bXktZmlyc3Qtdm0", "type": "string", "x-go-name": "PrevToken" } }, "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": "Available Kubernetes cluster versions.", "items": { "$ref": "#/definitions/KubernetesClustersVersionInfo" }, "type": "array", "x-go-name": "KubernetesClusterVersions" }, "kubernetes_node_pool_versions": { "description": "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" }, "ListLimitedUsageAPIKeysResponseV1Alpha5": { "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" }, "ListLoadBalancersResponseV1Alpha5": { "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" }, "ListLocationsResponseV1Alpha5": { "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": { "description": "List of manifests.", "items": { "$ref": "#/definitions/Manifest" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListModelsResponse": { "properties": { "deployments": { "description": "The models deployed and available to the project.", "items": { "$ref": "#/definitions/DeployedModelEntry" }, "type": "array", "x-go-name": "Deployments" } }, "title": "ListModelsResponse is the response body for listing deployed models.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "ListOperationsResponseV1Alpha5": { "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" }, "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" }, "ListProjectsResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/Project" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListProjectsResponseV1Alpha5 is the response type for GET requests to the projects endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListRepositoriesResponse": { "properties": { "items": { "description": "List of repositories.", "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": "Locations where object storage (S3) is available.", "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" }, "ListSSHKeysResponseV1Alpha5": { "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": { "description": "List of locations where the container registry is available.", "example": [ "us-east1", "us-northcentral1" ], "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": { "description": "List of supported upstream registry providers.", "items": { "type": "string" }, "type": "array", "x-go-name": "Items" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "ListTokensResponseV1Alpha5": { "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" }, "ListTypesResponseV1Alpha5": { "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" }, "ListVPCFirewallRulesResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCFirewallRule" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCFirewallRulesResponseV1Alpha5 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" }, "ListVPCNetworksResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCNetwork" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCNetworksResponseV1Alpha5 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" }, "ListVPCSubnetsResponseV1Alpha5": { "properties": { "items": { "items": { "$ref": "#/definitions/VPCSubnet" }, "type": "array", "x-go-name": "Items" } }, "required": [ "items" ], "title": "ListVPCSubnetsResponseV1Alpha5 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" }, "LoRAAdapterDeployment": { "description": "LoRAAdapterDeployment describes a deployed LoRA adapter — a self-serve\nfine-tune riding on an already-running base model.", "properties": { "cluster_name": { "description": "Name of the cluster the adapter is deployed to.", "type": "string", "x-go-name": "ClusterName" }, "created_at": { "description": "RFC 3339 timestamp when the deployment was created.", "type": "string", "x-go-name": "CreatedAt" }, "endpoint_alias": { "description": "Serving alias for the adapter endpoint.", "type": "string", "x-go-name": "EndpointAlias" }, "evolution_uri": { "description": "Evolution artifact URI the adapter weights were fetched from.", "type": "string", "x-go-name": "EvolutionURI" }, "finetuning_job_id": { "description": "ID of the fine-tuning job that produced the adapter, if any.", "type": "string", "x-go-name": "FinetuningJobID" }, "id": { "description": "Unique identifier of the LoRA adapter deployment.", "type": "string", "x-go-name": "ID" }, "last_error": { "description": "Most recent error message, if the deployment failed.", "type": "string", "x-go-name": "LastError" }, "loader_service": { "description": "The loader service handling the adapter fetch/load.", "type": "string", "x-go-name": "LoaderService" }, "model_id": { "description": "The registry model ID of the adapter.", "type": "string", "x-go-name": "ModelID" }, "parent_model_name": { "description": "Name of the parent base model the adapter is loaded onto.", "type": "string", "x-go-name": "ParentModelName" }, "project_id": { "description": "ID of the project that owns the deployment.", "type": "string", "x-go-name": "ProjectID" }, "rank": { "description": "LoRA rank of the adapter.", "format": "int32", "type": "integer", "x-go-name": "Rank" }, "serving_endpoint_name": { "description": "Internal serving endpoint name.", "type": "string", "x-go-name": "ServingEndpointName" }, "status": { "description": "Current lifecycle status of the adapter deployment.\nOne of: pending, downloading, ready, failed, deleting, expired.", "type": "string", "x-go-name": "Status" }, "updated_at": { "description": "RFC 3339 timestamp when the deployment was last updated.", "type": "string", "x-go-name": "UpdatedAt" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "LoadBalancer": { "properties": { "algorithm": { "description": "Load balancing algorithm used to distribute traffic across destinations (for example, random).", "example": "random", "type": "string", "x-go-name": "Algorithm" }, "destinations": { "description": "Backend targets the load balancer forwards traffic to, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "id": { "description": "ID of the load balancer.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "ips": { "description": "IP addresses assigned to the load balancer.", "items": { "$ref": "#/definitions/IPAddresses" }, "type": "array", "x-go-name": "IPs" }, "location": { "description": "Location of the load balancer.", "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the load balancer.", "example": "my-load-balancer", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "description": "Network interfaces the load balancer is attached to.", "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "protocols": { "description": "Network protocols the load balancer handles. One of: tcp, udp.", "example": "[tcp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "type": { "description": "Type of the load balancer (for example, internal_ipv4).", "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": { "description": "ID of the VPC network for the interface.", "example": "dbaafd53-96ea-4754-9cce-78e7f08ac151", "type": "string", "x-go-name": "Network" }, "subnet": { "description": "ID of the subnet for the interface.", "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" }, "LoadBalancersPatchRequestV1Alpha5": { "properties": { "destinations": { "description": "Backend targets the load balancer forwards traffic to, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "name": { "description": "New name for the load balancer.", "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": { "description": "Load balancing algorithm used to distribute traffic across destinations (for example, random).", "example": "random", "type": "string", "x-go-name": "Algorithm" }, "destinations": { "description": "Backend targets the load balancer forwards traffic to, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/NetworkTarget" }, "type": "array", "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "location": { "description": "Location to create the load balancer in.", "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name for the new load balancer.", "example": "my-load-balancer", "type": "string", "x-go-name": "Name" }, "network_interfaces": { "description": "Network interfaces to attach the load balancer to.", "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "type": "array", "x-go-name": "NetworkInterfaces" }, "protocols": { "description": "Network protocols the load balancer handles. Currently only one of: tcp, udp.", "example": "[tcp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "type": { "description": "Type of the load balancer (for example, internal_ipv4).", "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" }, "LoadLoraRequest": { "properties": { "model_id": { "description": "ID of the fine-tuned model (LoRA adapter) to deploy, as registered in the model registry.", "type": "string", "x-go-name": "ModelID" } }, "required": [ "model_id" ], "title": "LoadLoraRequest is the body for deploying a LoRA adapter.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "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": { "description": "Content-addressable digest that uniquely identifies the manifest.", "example": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a", "type": "string", "x-go-name": "Digest" }, "pulled_at": { "description": "Last pull timestamp of the manifest, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "format": "date-time", "type": "string", "x-go-name": "PullTimestampUTC" }, "pushed_at": { "description": "Push timestamp of the manifest, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "format": "date-time", "type": "string", "x-go-name": "PushTimestampUTC" }, "size_bytes": { "description": "Total size of the manifest, in bytes.", "example": "10485760", "type": "string", "x-go-name": "SizeBytes" }, "tags": { "description": "Tags that point to the manifest.", "example": [ "latest", "v1alpha5.0" ], "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": { "description": "ID of the NAT gateway.", "example": "8f3c4b7d-3c3b-4a63-8e1a-6cd14c1dfe91", "type": "string", "x-go-name": "ID" }, "public_ipv4_address": { "description": "Public IPv4 address assigned to the NAT gateway.", "example": "121.0.0.0", "type": "string", "x-go-name": "PublicIPV4Address" }, "public_ipv4_id": { "description": "ID of the public IPv4 address assigned to the NAT gateway.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "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": { "description": "External DNS name of the network interface.", "type": "string", "x-go-name": "ExternalDNSName" }, "id": { "description": "ID of the network interface.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "interface_type": { "description": "Type of the network interface.", "example": "ethernet", "type": "string", "x-go-name": "InterfaceType" }, "ips": { "description": "IP addresses assigned to the network interface.", "items": { "$ref": "#/definitions/IPAddresses" }, "type": "array", "x-go-name": "IPs" }, "mac_address": { "description": "MAC address of the network interface.", "example": "00:00:5e:00:53:af", "type": "string", "x-go-name": "MACAddress" }, "name": { "description": "Name of the network interface.", "example": "network-interface-1", "type": "string", "x-go-name": "Name" }, "network": { "description": "ID of the VPC network the interface is attached to.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "Network" }, "subnet": { "description": "ID of the VPC subnet the interface is attached to.", "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": { "description": "CIDR block, or an IP address that is converted to a CIDR. Mutually exclusive with resource_id.", "example": "10.1.2.3/24", "type": "string", "x-go-name": "CIDR" }, "resource_id": { "description": "ID of a backend resource. Mutually exclusive with cidr.", "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" }, "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": "ID of 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 used to validate the OIDC server's certificate.", "type": "string", "x-go-name": "CACert" }, "client_id": { "description": "Client ID for the OpenID Connect client.", "example": "kubernetes", "type": "string", "x-go-name": "ClientID" }, "groups_claim": { "description": "Claim used to identify the user's groups.", "example": "groups", "type": "string", "x-go-name": "GroupsClaim" }, "issuer_url": { "description": "URL of the OpenID Connect issuer.", "example": "https://oauth2.example.com", "type": "string", "x-go-name": "IssuerURL" }, "username_claim": { "description": "Claim used to identify the user. Defaults to 'sub'.", "example": "email", "type": "string", "x-go-name": "UsernameClaim" }, "username_prefix": { "description": "Prefix added 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" }, "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" }, "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" }, "OrganizationsMFAServiceUpdateOrganizationMFABody": { "description": "UpdateOrganizationMFARequest is the request for setting an organization's required MFA methods.", "properties": { "intended_methods": { "example": [ "totp", "webauthn" ], "items": { "type": "string" }, "title": "intended_methods is the full set of MFA methods the organization should require (one of: totp, webauthn)", "type": "array" } }, "type": "object" }, "PartialHostChannelAdapter": { "properties": { "ib_partition_id": { "description": "Deprecated: Use transport_partition_id instead.", "type": "string", "x-go-name": "IBPartitionID" }, "transport_partition_id": { "description": "ID of the transport partition to assign the host channel adapter to.", "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" }, "PrivateIPv4Address": { "properties": { "address": { "description": "Private IPv4 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": { "description": "ID of the project.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the project.", "example": "Admin", "type": "string", "x-go-name": "Name" }, "organization_id": { "description": "ID of the organization that owns the project.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "OrganizationID" }, "relation": { "description": "Relation of the logged-in user to the project. 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" }, "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": { "description": "Number of resources of this type in the project.", "example": 5, "format": "int64", "type": "integer", "x-go-name": "Count" } }, "required": [ "count" ], "title": "ProjectResourceDetails contains a count of resources of a single type within a project.", "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" }, "ProjectsPostRequest": { "properties": { "name": { "description": "Name for the new project.", "example": "Admin", "type": "string", "x-go-name": "Name" }, "organization_id": { "description": "ID of the organization that will own the new project.", "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" }, "ProjectsPutPostResponseV1Alpha5": { "properties": { "project": { "$ref": "#/definitions/Project" } }, "required": [ "project" ], "title": "ProjectsPutPostResponseV1Alpha5 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": { "description": "New name for the project.", "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" }, "PublicIPv4Address": { "properties": { "address": { "description": "Public IPv4 address.", "example": "121.0.0.0", "type": "string", "x-go-name": "Address" }, "id": { "description": "ID of the public IPv4 address.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "type": { "description": "Allocation type of the public IPv4 address (for example, dynamic).", "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": "Amount of quota consumed by current usage.", "format": "int64", "type": "integer" }, "LimitReached": { "description": "Whether usage is at or above the quota limit.", "type": "boolean" }, "QuotaLimit": { "description": "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" }, "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" }, "RenameModelRequest": { "properties": { "model_alias": { "description": "Current alias of the model.", "type": "string", "x-go-name": "ModelAlias" }, "new_alias": { "description": "New alias for the model.", "type": "string", "x-go-name": "NewAlias" } }, "required": [ "model_alias", "new_alias" ], "title": "RenameModelRequest is the body for renaming a deployed model's alias.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "RenameModelResponse": { "properties": { "endpoint_id": { "description": "The endpoint ID that was renamed.", "type": "string", "x-go-name": "EndpointID" }, "model_alias": { "description": "The resulting model alias.", "type": "string", "x-go-name": "ModelAlias" } }, "title": "RenameModelResponse is the response body for a model rename.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "Repository": { "properties": { "created_at": { "description": "Creation timestamp of the repository, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "format": "date-time", "type": "string", "x-go-name": "CreatedAt" }, "id": { "description": "ID of the repository.", "example": "ca39e669-47ee-456b-968d-303234fbf99f", "type": "string", "x-go-name": "ID" }, "location": { "description": "Location the repository is hosted in.", "example": "us-east1", "type": "string", "x-go-name": "Location" }, "max_size_bytes": { "description": "Maximum total size of the repository, in bytes.", "example": "10737418240", "type": "string", "x-go-name": "MaxSizeBytes" }, "mode": { "description": "Mode of the repository, which determines how images are stored and served.", "type": "string", "x-go-name": "Mode" }, "name": { "description": "Name of the repository.", "example": "my-repository", "type": "string", "x-go-name": "Name" }, "state": { "description": "State of the repository.", "type": "string", "x-go-name": "State" }, "upstream_registry": { "$ref": "#/definitions/UpstreamRegistry" }, "url": { "description": "URL at which the repository can be accessed.", "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": { "description": "Timestamp at which the usage data was last computed, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "LastRequestedTimestampUTC" }, "max_size_bytes": { "description": "Maximum total size allowed for the repository, in bytes.", "example": "10737418240", "type": "string", "x-go-name": "MaxSizeBytes" }, "used_size_bytes": { "description": "Total size currently used by the repository, in bytes.", "example": "5368709120", "type": "string", "x-go-name": "UsedSizeBytes" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "RepositoryRequest": { "properties": { "location": { "description": "Location to create the repository in.", "example": "us-east1", "type": "string", "x-go-name": "Location" }, "max_size_bytes": { "description": "Maximum total size for the new repository, in bytes.", "example": "10737418240", "type": "string", "x-go-name": "MaxSizeBytes" }, "mode": { "description": "Mode for the new repository, which determines how images are stored and served.", "type": "string", "x-go-name": "Mode" }, "name": { "description": "Name for the new repository.", "example": "my-repository", "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": "ID of the reservation to use for the VM. Incompatible with selection_strategy.", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8", "type": "string", "x-go-name": "ID" }, "selection_strategy": { "default": "lowest_cost", "description": "Strategy for automatically selecting a reservation: lowest_cost or on_demand. Use on_demand\nto opt out of reservation usage. Incompatible with id.", "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": "Archive timestamp of the bucket, 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 timestamp of the bucket, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "location": { "description": "Location where the bucket is hosted.", "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.", "example": false, "type": "boolean", "x-go-name": "ObjectLockEnabled" }, "project_id": { "description": "ID of the project that owns the bucket.", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "type": "string", "x-go-name": "ProjectID" }, "retention_mode": { "$ref": "#/definitions/S3RetentionMode" }, "retention_period": { "description": "Length of the object lock retention period, in the unit given by retention_period_unit.", "example": 30, "format": "int32", "type": "integer", "x-go-name": "RetentionPeriod" }, "retention_period_unit": { "$ref": "#/definitions/S3RetentionPeriodUnit" }, "s3_url": { "description": "Endpoint URL for accessing the bucket.", "example": "https://object.us-eaststaging7-b.crusoecloudcompute.com/my-first-bucket", "type": "string", "x-go-name": "S3URL" }, "tags": { "additionalProperties": { "type": "string" }, "description": "Tags applied to the bucket as key-value pairs.", "type": "object", "x-go-name": "Tags" }, "updated_at": { "description": "Last update timestamp of the bucket, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "UpdatedAt" }, "user_id": { "description": "ID of the S3 user that owns 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": "Access key ID used to authenticate S3 requests.", "example": "S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab", "type": "string", "x-go-name": "AccessKeyID" }, "alias": { "description": "Human-readable alias for the S3 access key.", "example": "my-service-account", "type": "string", "x-go-name": "Alias" }, "created_at": { "description": "Creation timestamp of the S3 access key, in RFC3339 format.", "example": "2021-12-03T19:58:34Z", "type": "string", "x-go-name": "CreatedAt" }, "expire_at": { "description": "Expiration timestamp of the S3 access key, in RFC3339 format.", "example": "2022-12-03T19:58:34Z", "type": "string", "x-go-name": "ExpireAt" }, "key_uuid": { "description": "ID of the S3 access key.", "example": "f5705300-79f8-4686-9b9f-02496a053bc0", "type": "string", "x-go-name": "KeyUUID" }, "status": { "description": "Status of the S3 access key: enabled or disabled.", "enum": [ "enabled", "disabled" ], "type": "string", "x-go-name": "Status" }, "user_id": { "description": "ID of the user that owns the S3 access key.", "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": "Object lock retention mode for an S3 bucket: governance or compliance.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3RetentionPeriodUnit": { "description": "enum: days,years", "title": "Unit of measurement for an object lock retention period: days or years.", "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "S3VersioningState": { "description": "enum: disabled,enabled,suspended", "title": "Versioning state of an S3 bucket: disabled, enabled, or suspended.", "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" }, "SSHKeysServiceCreateSSHKeyBody": { "description": "CreateSSHKeyRequest is the request for registering a new SSH key to a user.", "properties": { "name": { "example": "John Doe", "title": "name is the display name of the SSH key", "type": "string" }, "public_key": { "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E", "title": "public_key is the SSH public key material", "type": "string" } }, "required": [ "name", "public_key" ], "type": "object" }, "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" }, "SelfServeActivityEvent": { "properties": { "event_type": { "description": "Event type identifier.", "type": "string", "x-go-name": "EventType" }, "message": { "description": "Human-readable event message.", "type": "string", "x-go-name": "Message" }, "timestamp": { "description": "RFC 3339 timestamp of the event.", "type": "string", "x-go-name": "Timestamp" }, "title": { "description": "Short event title.", "type": "string", "x-go-name": "Title" }, "updated_by": { "description": "Identity that triggered the event.", "type": "string", "x-go-name": "UpdatedBy" } }, "title": "SelfServeActivityEvent is a single activity/audit event for a deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "SelfServeDeploymentDetail": { "properties": { "available_replicas": { "description": "Currently available replicas.", "format": "int32", "type": "integer", "x-go-name": "AvailableReplicas" }, "context_length": { "description": "Context length of the model.", "format": "int32", "type": "integer", "x-go-name": "ContextLength" }, "created_at": { "description": "RFC 3339 creation timestamp.", "type": "string", "x-go-name": "CreatedAt" }, "created_by": { "description": "Identity that created the deployment.", "type": "string", "x-go-name": "CreatedBy" }, "deployment_name": { "description": "User-chosen deployment name.", "type": "string", "x-go-name": "DeploymentName" }, "fine_tuned_model": { "description": "The fine-tuned model being served.", "type": "string", "x-go-name": "FineTunedModel" }, "flavor_type": { "description": "Flavor type in use.", "type": "string", "x-go-name": "FlavorType" }, "gpu_type": { "description": "GPU type in use.", "type": "string", "x-go-name": "GpuType" }, "gpus_per_replica": { "description": "GPUs per replica.", "format": "int32", "type": "integer", "x-go-name": "GpusPerReplica" }, "hourly_cost": { "description": "Hourly cost, as a decimal string.", "type": "string", "x-go-name": "HourlyCost" }, "id": { "description": "Deployment ID.", "type": "string", "x-go-name": "ID" }, "model": { "description": "The underlying model.", "type": "string", "x-go-name": "Model" }, "provider": { "description": "Serving provider.", "type": "string", "x-go-name": "Provider" }, "quantization": { "description": "Quantization applied, if any.", "type": "string", "x-go-name": "Quantization" }, "status": { "description": "Deployment status.", "type": "string", "x-go-name": "Status" }, "target_replicas": { "description": "Target replica count.", "format": "int32", "type": "integer", "x-go-name": "TargetReplicas" } }, "title": "SelfServeDeploymentDetail is the detailed view of a self-serve deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "SelfServeDeploymentSummary": { "properties": { "available_replicas": { "description": "Currently available replicas.", "format": "int32", "type": "integer", "x-go-name": "AvailableReplicas" }, "context_length": { "description": "Context length of the model.", "format": "int32", "type": "integer", "x-go-name": "ContextLength" }, "created_at": { "description": "RFC 3339 creation timestamp.", "type": "string", "x-go-name": "CreatedAt" }, "created_by": { "description": "Identity that created the deployment.", "type": "string", "x-go-name": "CreatedBy" }, "deployment_name": { "description": "User-chosen deployment name.", "type": "string", "x-go-name": "DeploymentName" }, "fine_tuned_model": { "description": "The fine-tuned model being served.", "type": "string", "x-go-name": "FineTunedModel" }, "gpu_type": { "description": "GPU type in use.", "type": "string", "x-go-name": "GpuType" }, "gpus_per_replica": { "description": "GPUs per replica.", "format": "int32", "type": "integer", "x-go-name": "GpusPerReplica" }, "id": { "description": "Deployment ID.", "type": "string", "x-go-name": "ID" }, "model": { "description": "The underlying model.", "type": "string", "x-go-name": "Model" }, "quantization": { "description": "Quantization applied, if any.", "type": "string", "x-go-name": "Quantization" }, "status": { "description": "Deployment status.", "type": "string", "x-go-name": "Status" }, "target_replicas": { "description": "Target replica count.", "format": "int32", "type": "integer", "x-go-name": "TargetReplicas" } }, "title": "SelfServeDeploymentSummary is a summary view of a self-serve deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "SelfServeFlavor": { "properties": { "flavor_type": { "description": "Flavor type identifier.", "type": "string", "x-go-name": "FlavorType" }, "gpu_type": { "description": "GPU type used by this flavor.", "type": "string", "x-go-name": "GpuType" }, "gpus_per_instance": { "description": "GPUs per instance.", "format": "int32", "type": "integer", "x-go-name": "GpusPerInstance" }, "id": { "description": "Flavor ID.", "type": "string", "x-go-name": "ID" }, "lora_suitable": { "description": "Whether the flavor is suitable for LoRA adapters.", "type": "boolean", "x-go-name": "LoraSuitable" }, "model_name": { "description": "Model this flavor serves.", "type": "string", "x-go-name": "ModelName" }, "price_per_hour": { "description": "Hourly price, as a decimal string.", "type": "string", "x-go-name": "PricePerHour" }, "provider": { "description": "Provider serving this flavor.", "type": "string", "x-go-name": "Provider" }, "quantization": { "description": "Quantization applied, if any.", "type": "string", "x-go-name": "Quantization" } }, "title": "SelfServeFlavor describes a hardware/model flavor available for self-serve deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "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": { "description": "Number of CPU cores provided by the VM type.", "example": 4, "format": "int64", "type": "integer", "x-go-name": "CPUCores" }, "cpu_type": { "description": "CPU manufacturer of the VM type.", "example": "intel", "type": "string", "x-go-name": "CPUType" }, "description": { "description": "Human-readable description of the VM type.", "example": "2x Nvidia A100", "type": "string", "x-go-name": "Description" }, "disk_gb": { "description": "Amount of disk storage provided by the VM type, in GB.", "example": 8, "format": "int64", "type": "integer", "x-go-name": "DiskGB" }, "disk_type": { "description": "Type of disk storage provided by the VM type.", "example": "SSD", "type": "string", "x-go-name": "DiskType" }, "gpu_type": { "description": "GPU model provided by the VM type.", "example": "A100", "type": "string", "x-go-name": "GPUType" }, "memory_gb": { "description": "Amount of memory provided by the VM type, in GB.", "example": 16, "format": "int64", "type": "integer", "x-go-name": "MemoryGB" }, "memory_type": { "description": "Type of memory provided by the VM type.", "example": "RAM", "type": "string", "x-go-name": "MemoryType" }, "num_gpu": { "description": "Number of GPUs provided by the VM type.", "example": 2, "format": "int64", "type": "integer", "x-go-name": "NumGPU" }, "product_name": { "description": "Product name of the VM type.", "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": "Type describes an instance type 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" }, "UpdateCredentialRequest": { "properties": { "description": { "description": "Updated description.", "type": "string", "x-go-name": "Description" } }, "title": "UpdateCredentialRequest is the body for updating a credential.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "UpdateDeploymentRequest": { "properties": { "deployment_name": { "description": "Updated deployment name.", "type": "string", "x-go-name": "DeploymentName" }, "replicas": { "description": "Updated replica count.", "format": "int32", "type": "integer", "x-go-name": "Replicas" } }, "title": "UpdateDeploymentRequest is the body for updating a self-serve deployment.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "UpdateModelRequest": { "properties": { "model_alias": { "description": "Customer-facing alias of the model to update.", "type": "string", "x-go-name": "ModelAlias" }, "new_hugging_face_model": { "description": "New HuggingFace model to point the alias at.", "type": "string", "x-go-name": "NewHuggingFaceModel" }, "region": { "description": "Region in which to perform the update. If omitted, all regions are updated.", "type": "string", "x-go-name": "Region" }, "run_candidate_test": { "description": "Whether to run a candidate health-check before switching the source.", "type": "boolean", "x-go-name": "RunCandidateTest" } }, "required": [ "model_alias", "new_hugging_face_model" ], "title": "UpdateModelRequest is the body for updating a deployed model's HuggingFace source.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "UpdateModelResponse": { "properties": { "workflows": { "description": "The per-cluster update workflows that were triggered.", "items": { "$ref": "#/definitions/UpdateResponseEntry" }, "type": "array", "x-go-name": "Workflows" } }, "title": "UpdateModelResponse is the response body for a model source update.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "UpdateResponseEntry": { "properties": { "cluster_name": { "description": "Name of the cluster the workflow runs on.", "type": "string", "x-go-name": "ClusterName" }, "error": { "description": "Error message, if the workflow could not be started.", "type": "string", "x-go-name": "Error" }, "region": { "description": "Region of the cluster.", "type": "string", "x-go-name": "Region" }, "run_id": { "description": "Temporal run ID.", "type": "string", "x-go-name": "RunID" }, "status": { "description": "Status of the triggered workflow.", "type": "string", "x-go-name": "Status" }, "workflow_id": { "description": "Temporal workflow ID.", "type": "string", "x-go-name": "WorkflowID" } }, "title": "UpdateResponseEntry describes the workflow triggered for a single cluster by an update.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/docs/v1alpha5" }, "UpdateS3BucketTagsRequest": { "properties": { "tags": { "additionalProperties": { "type": "string" }, "description": "New set of tags for the bucket, as key-value pairs. Replaces 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": { "description": "Provider of the upstream registry.", "type": "string", "x-go-name": "Provider" }, "upstream_registry_credentials": { "$ref": "#/definitions/UpstreamRegistryCredentials" }, "url": { "description": "Base URL of the upstream registry that the repository caches images from.", "example": "https://registry-1.docker.io", "type": "string", "x-go-name": "URL" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "UpstreamRegistryCredentials": { "properties": { "password": { "description": "Password used to authenticate to the upstream registry.", "type": "string", "x-go-name": "Password" }, "username": { "description": "Username used to authenticate to the upstream registry.", "example": "my-registry-user", "type": "string", "x-go-name": "Username" } }, "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" }, "submit_byom_request_form": { "description": "submit_byom_request_form indicates the user submitted the BYOM request form. If true, the user is marked as\nhaving submitted it. If false, the value is ignored (there is no way to un-submit).", "example": true, "type": "boolean" } }, "type": "object" }, "VMAttachmentType": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VMAttachmentV1Alpha5": { "properties": { "attachment_type": { "$ref": "#/definitions/VMAttachmentType" }, "mode": { "$ref": "#/definitions/DiskModeType" }, "vm_id": { "description": "ID of the VM the disk is attached to.", "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" }, "VPCFirewallRule": { "properties": { "action": { "description": "Action applied to traffic that matches the rule: allow or deny.", "enum": [ "allow", "deny" ], "example": "allow", "type": "string", "x-go-name": "Action" }, "destination_ports": { "description": "Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "description": "Destinations the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "direction": { "description": "Direction of traffic the rule applies to: ingress (inbound) or egress (outbound).", "enum": [ "ingress", "egress" ], "example": "ingress", "type": "string", "x-go-name": "Direction" }, "id": { "description": "ID of the firewall rule.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the firewall rule.", "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "description": "Network protocols the rule matches (for example, tcp, udp).", "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "description": "Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "description": "Sources the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" }, "state": { "description": "State of the firewall rule: active or inactive.", "enum": [ "active", "inactive" ], "example": "active", "type": "string", "x-go-name": "State" }, "vpc_network_id": { "description": "ID of the VPC network the rule belongs to.", "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": { "description": "Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "description": "Destinations the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "name": { "description": "New name for the firewall rule.", "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "description": "Network protocols the rule matches (for example, tcp, udp).", "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "description": "Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "description": "Sources the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" } }, "title": "VPCFirewallRulesPatchRequest is the request type for PATCH requests to the VPC Firewall Rules endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCFirewallRulesPostRequestV1Alpha5": { "properties": { "action": { "description": "Action applied to traffic that matches the rule: allow or deny.", "enum": [ "allow", "deny" ], "example": "allow", "type": "string", "x-go-name": "Action" }, "destination_ports": { "description": "Destination ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "DestinationPorts" }, "destinations": { "description": "Destinations the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Destinations" }, "direction": { "description": "Direction of traffic the rule applies to: ingress (inbound) or egress (outbound).", "enum": [ "ingress", "egress" ], "example": "ingress", "type": "string", "x-go-name": "Direction" }, "name": { "description": "Name for the new firewall rule.", "example": "my-firewall-rule", "type": "string", "x-go-name": "Name" }, "protocols": { "description": "Network protocols the rule matches (for example, tcp, udp).", "example": "[tcp, udp]", "items": { "type": "string" }, "type": "array", "x-go-name": "Protocols" }, "source_ports": { "description": "Source ports the rule matches. Each entry is a single port or a port range (for example, 3000-8080).", "example": "[80, 443, 3000-8080]", "items": { "type": "string" }, "type": "array", "x-go-name": "SourcePorts" }, "sources": { "description": "Sources the rule matches, given as CIDR blocks or resource IDs.", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "type": "array", "x-go-name": "Sources" }, "vpc_network_id": { "description": "ID of the VPC network to create the rule in.", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1", "type": "string", "x-go-name": "VPCNetworkID" } }, "required": [ "name", "direction", "action", "sources", "destinations", "protocols", "vpc_network_id" ], "title": "VPCFirewallRulesPostRequestV1Alpha5 is the request type for POST requests to the VPC Firewall Rules endpoint.", "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VPCNetwork": { "properties": { "cidr": { "description": "Address range of the VPC network, in CIDR notation.", "example": "121.0.0.0/20", "type": "string", "x-go-name": "CIDR" }, "gateway": { "description": "ID of the VPC network's gateway.", "example": "11bf5b4c-e0e5-4017-bdb8-3861f3acedc1", "type": "string", "x-go-name": "Gateway" }, "id": { "description": "ID of the VPC network.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "name": { "description": "Name of the VPC network.", "example": "default-ethernet", "type": "string", "x-go-name": "Name" }, "subnets": { "description": "IDs of the subnets that belong to the VPC network. Empty if the network has none.", "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": { "description": "New name for the VPC network.", "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": { "description": "Address range for the VPC network, in CIDR notation (for example, 172.27.0.0/16).", "example": "172.27.0.0/16", "type": "string", "x-go-name": "Cidr" }, "name": { "description": "Name for the new VPC network.", "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": { "description": "Address range of the VPC subnet, in CIDR notation.", "example": "121.0.0.0/24", "type": "string", "x-go-name": "CIDR" }, "id": { "description": "ID of the VPC subnet.", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc", "type": "string", "x-go-name": "ID" }, "location": { "description": "Location of the VPC subnet.", "example": "us-northcentraleast1-a", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name of the VPC subnet.", "example": "my-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateways": { "description": "NAT gateways attached to the subnet. Empty unless a NAT gateway is enabled for the subnet.", "items": { "$ref": "#/definitions/NATGateway" }, "type": "array", "x-go-name": "NATGateways" }, "vpc_network_id": { "description": "ID of the VPC network that the subnet belongs to.", "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": { "description": "New name for the VPC subnet.", "example": "my-cool-vpc-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateway_action": { "description": "Action to take on the subnet's NAT gateway. \"enable\" creates a NAT gateway if one does not\nexist; \"disable\" deletes the NAT gateway if one exists. If omitted, the subnet's NAT gateway\nis left unchanged.\nenable NATGatewayActionEnable\ndisable NATGatewayActionDisable", "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": { "description": "Address range for the VPC subnet, in CIDR notation (for example, 172.27.0.0/16).", "example": "172.27.0.0/16", "type": "string", "x-go-name": "Cidr" }, "location": { "description": "Location to create the subnet in.", "example": "us-east", "type": "string", "x-go-name": "Location" }, "name": { "description": "Name for the new VPC subnet.", "example": "my-cool-vpc-subnet", "type": "string", "x-go-name": "Name" }, "nat_gateway_enabled": { "description": "Whether to create a NAT gateway for the subnet.", "example": true, "type": "boolean", "x-go-name": "NATGatewayEnabled" }, "vpc_network_id": { "description": "ID of the VPC network to create the subnet in.", "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": { "description": "Build version component.", "type": "string" }, "MajorMinorVersion": { "description": "Major and minor version components, for example \"1.30\".", "type": "string" }, "PatchVersion": { "description": "Patch version component.", "type": "string" } }, "type": "object", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/models" }, "VirtualizationFeatures": { "properties": { "nested_virtualization": { "description": "Whether nested virtualization is enabled, allowing a VM to run inside this VM.", "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" }, "customerDeleteSSHKeyResponse": { "description": "DeleteSSHKeyResponse is the response for deleting an SSH key.\n\nSuccessful delete calls should be empty", "type": "object" }, "customerDeleteUserCredentialResponse": { "description": "DeleteUserCredentialResponse is the response containing the user's remaining identity credentials.", "properties": { "credentials_map": { "additionalProperties": { "$ref": "#/definitions/customerIdentityCredential" }, "readOnly": true, "title": "credentials_map is the user's remaining credentials keyed by credential type", "type": "object" } }, "type": "object" }, "customerGenerateNameResponse": { "description": "GenerateNameResponse is the response containing a suggested project name.", "properties": { "name": { "example": "fresh-earth-782", "title": "name is an available project name that does not collide with an existing project in the organization", "type": "string" } }, "type": "object" }, "customerGetOrganizationMFAResponse": { "description": "GetOrganizationMFAResponse is the response containing an organization's required MFA methods.", "properties": { "mfa_methods": { "items": { "$ref": "#/definitions/customerOrganizationMFA", "type": "object" }, "title": "mfa_methods is the set of MFA methods currently required by the organization", "type": "array" } }, "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" }, "customerListPublicFeatureFlagsResponse": { "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": "ListPublicFeatureFlagsResponse is the list public feature flags response", "type": "object" }, "customerListSSHKeysResponse": { "description": "ListSSHKeysResponse is the response for listing the SSH keys registered to a user.", "properties": { "items": { "items": { "$ref": "#/definitions/customerSSHKey", "type": "object" }, "readOnly": true, "title": "items is the list of SSH keys", "type": "array" } }, "type": "object" }, "customerListUserCredentialsResponse": { "description": "ListUserCredentialsResponse is the response containing a user's identity credentials.", "properties": { "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" } }, "type": "object" }, "customerOrganizationMFA": { "description": "OrganizationMFA describes a single MFA method required by an organization.", "properties": { "created_at": { "format": "date-time", "readOnly": true, "title": "created_at is when this MFA method was required by the organization", "type": "string" }, "method": { "example": "totp", "readOnly": true, "title": "method is the required MFA method (one of: totp, webauthn)", "type": "string" } }, "type": "object" }, "customerOrganizationUsage": { "description": "OrganizationUsage is the project-level usage of products across an organization.", "properties": { "items": { "items": { "$ref": "#/definitions/customerProductProjectUsage", "type": "object" }, "readOnly": true, "title": "items is the list of per-project usage line items", "type": "array" } }, "type": "object" }, "customerProductProjectUsage": { "description": "ProductProjectUsage is the usage of a product within a project for a single date.", "properties": { "billable_metric": { "example": "gpu-hours", "title": "billable_metric is the unit the quantity is measured in", "type": "string" }, "date": { "example": "2022-07-01", "title": "date is the date the usage was incurred, formatted YYYY-MM-DD", "type": "string" }, "project_id": { "example": "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb", "title": "project_id is the ID of the project the usage was incurred in", "type": "string" }, "quantity": { "example": 2.123, "format": "double", "title": "quantity is the amount of the product used", "type": "number" }, "region": { "example": "us-northcentral1", "title": "region is the region the usage was incurred in", "type": "string" }, "reservation_id": { "example": "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb", "title": "reservation_id is the ID of the reservation the usage was incurred under", "type": "string" }, "resource_type": { "example": "a40.1x", "title": "resource_type is the product type the usage was incurred for", "type": "string" } }, "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" }, "customerSSHKey": { "description": "SSHKey is an SSH public key registered to a user.", "properties": { "created_at": { "example": "2022-01-24T20:13:35.328Z", "readOnly": true, "title": "created_at is when the SSH key was registered", "type": "string" }, "fingerprints": { "$ref": "#/definitions/customerSSHKeyFingerprints", "readOnly": true, "title": "fingerprints is the fingerprints of the SSH public key" }, "id": { "example": "0b880f48-6a97-408f-8351-3cc30871e010", "readOnly": true, "title": "id is the ID of the SSH key", "type": "string" }, "name": { "example": "public key 1", "title": "name is the display name of the SSH key", "type": "string" }, "public_key": { "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E", "title": "public_key is the SSH public key material", "type": "string" } }, "type": "object" }, "customerSSHKeyFingerprints": { "description": "SSHKeyFingerprints is the fingerprints of an SSH public key.", "properties": { "md5": { "example": "bf:60:fa:cc:9f:42:1f:5e:23:9e:ed:d2:69:d8:76:93", "title": "md5 is the MD5 fingerprint of the SSH public key", "type": "string" }, "sha256": { "example": "tARFxQkVHeqm6TzqpI897QsHVdgZlxgL2/YhVltmEUk", "title": "sha256 is the SHA256 fingerprint of the SSH public key", "type": "string" } }, "type": "object" }, "customerUpdateOrganizationMFAResponse": { "description": "UpdateOrganizationMFAResponse is the response for setting an organization's required MFA methods.\n\nSuccessful update calls return an empty body", "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" }, "byom_request_form_submitted": { "example": true, "title": "byom_request_form_submitted indicates whether the user has submitted the BYOM request form", "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": { "asyncOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/AsyncOperationResponse" } }, "auditLogsResponse": { "description": "", "schema": { "$ref": "#/definitions/AuditLogsGetResponse" } }, "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" } }, "billingCostsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingCostData" } }, "billingOptionsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageOptions" } }, "cancelNodePoolRotateResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesCancelNodePoolRotateResponse" } }, "capacitiesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCapacitiesResponseV1Alpha5" } }, "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" } }, "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" } }, "deleteSSOProviderResponse": { "description": "", "schema": { "$ref": "#/definitions/SSOProvider" } }, "emptyResponse": { "description": "Empty Response" }, "foundryActivityResponse": { "description": "", "schema": { "$ref": "#/definitions/ListActivityResponse" } }, "foundryCredentialListResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCredentialsResponse" } }, "foundryCredentialResponse": { "description": "", "schema": { "$ref": "#/definitions/CredentialResponse" } }, "foundryDeployedModelsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListModelsResponse" } }, "foundryDeploymentAcceptedResponse": { "description": "", "schema": { "$ref": "#/definitions/DeploymentAcceptedResponse" } }, "foundryDeploymentDetailResponse": { "description": "", "schema": { "$ref": "#/definitions/SelfServeDeploymentDetail" } }, "foundryDeploymentListResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDeploymentsResponse" } }, "foundryFlavorsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListFlavorsResponse" } }, "foundryLoraListResponse": { "description": "", "schema": { "items": { "$ref": "#/definitions/LoRAAdapterDeployment" }, "type": "array" } }, "foundryLoraResponse": { "description": "", "schema": { "$ref": "#/definitions/LoRAAdapterDeployment" } }, "foundryProgressResponse": { "description": "", "schema": { "$ref": "#/definitions/DeploymentProgress" } }, "foundryProgressStreamResponse": { "description": "" }, "foundryRenameModelResponse": { "description": "", "schema": { "$ref": "#/definitions/RenameModelResponse" } }, "foundryUpdateModelResponse": { "description": "", "schema": { "$ref": "#/definitions/UpdateModelResponse" } }, "getAutoClusterOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/Operation" } }, "getAutoClustersConfigResponse": { "description": "", "schema": { "$ref": "#/definitions/AutoClustersConfigResponse" } }, "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" } } }, "getDiskResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskV1Alpha5" } }, "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/InstanceV1Alpha5" } }, "getInstanceTemplateResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceTemplate" } }, "getKubernetesClusterCredentialsResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesAuthenticationDetails" } }, "getKubernetesClusterResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesCluster" } }, "getKubernetesNodePoolResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesNodePool" } }, "getLoadBalancerResponse": { "description": "", "schema": { "$ref": "#/definitions/LoadBalancer" } }, "getNodePoolRotateStatusResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesGetNodePoolRotateStatusResponse" } }, "getOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/Operation" } }, "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/ListSSHKeysResponseV1Alpha5" } }, "getSlurmClusterResponse": { "description": "", "schema": { "$ref": "#/definitions/SlurmCluster" } }, "getSlurmNodesetResponse": { "description": "", "schema": { "$ref": "#/definitions/SlurmNodeset" } }, "getSnapshotResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskSnapshot" } }, "getSupportSettingsResponse": { "description": "", "schema": { "$ref": "#/definitions/KubernetesClusterSupportSettingsResponse" } }, "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/ListLimitedUsageAPIKeysResponseV1Alpha5" } }, "limitedUsageAPIKeyPostResponse": { "description": "", "schema": { "$ref": "#/definitions/LimitedUsageAPIKeyPostResponse" } }, "listAutoClusterOperationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOperationsResponseV1Alpha5" } }, "listDiskSnapshotsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDiskSnapshotsResponseV1Alpha5" } }, "listDisksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDisksResponseV1Alpha5" } }, "listExternalLoadBalancersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListExternalLoadBalancersResponse" } }, "listIBPartitionsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListIBPartitionsResponseV1Alpha5" } }, "listIbNetworksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListIBNetworksResponseV1Alpha5" } }, "listImagesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListImagesResponseV1Alpha5" } }, "listInstanceGroupsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstanceGroupsResponse" } }, "listInstanceTemplatesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstanceTemplatesResponseV1Alpha5" } }, "listInstancesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListInstancesResponseV1Alpha5" } }, "listKubernetesClustersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesClustersResponse" } }, "listKubernetesNodePoolVMsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesNodePoolVMsResponse" } }, "listKubernetesNodePoolsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesNodePoolsResponse" } }, "listKubernetesVersionsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListKubernetesVersionsResponse" } }, "listLoadBalancersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListLoadBalancersResponseV1Alpha5" } }, "listNvlinkDomainsResponse": { "description": "", "schema": { "$ref": "#/definitions/NvlinkDomainsSummaryListResponse" } }, "listOperationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOperationsResponseV1Alpha5" } }, "listOrgQuotasResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOrgQuotasResponse" } }, "listProjectQuotasResponse": { "description": "", "schema": { "$ref": "#/definitions/ListProjectQuotasResponse" } }, "listProjectsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListProjectsResponseV1Alpha5" } }, "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/ListVPCNetworksResponseV1Alpha5" } }, "listVpcFirewallRulesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListVPCFirewallRulesResponseV1Alpha5" } }, "listVpcSubnetsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListVPCSubnetsResponseV1Alpha5" } }, "locationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListLocationsResponseV1Alpha5" } }, "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": "" }, "organizationsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/ListEntitiesResponseV1Alpha5" } }, "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" } }, "projectsPutPostResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectsPutPostResponseV1Alpha5" } }, "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" } }, "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/ListTokensResponseV1Alpha5" } }, "tokensPostResponse": { "description": "", "schema": { "$ref": "#/definitions/TokensPostResponse" } }, "typesGetResponse": { "description": "", "schema": { "$ref": "#/definitions/ListTypesResponseV1Alpha5" } }, "updateAutoClustersConfigResponse": { "description": "", "schema": { "$ref": "#/definitions/AutoClustersConfigResponse" } }, "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" } } }, "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": "OrganizationsMFAService" }, { "name": "ProjectsService" }, { "name": "SSHKeysService" }, { "name": "UsageService" }, { "name": "UsersService" } ], "x-tagGroups": [ { "name": "Compute", "tags": [ "VMs", "VM Operations", "Images", "Instance Templates" ] }, { "name": "Organizations", "tags": [ "Projects", "Billing", "Entities", "Prospects", "Usage", "Quotas", "Audit Logs", "SCIM" ] }, { "name": "Users", "tags": [ "Identities", "SSH Keys", "Tokens" ] }, { "name": "Storage", "tags": [ "Disks", "Disk Operations", "Snapshots", "Snapshot Operations", "S3Buckets", "S3Users" ] }, { "name": "Networking", "tags": [ "VPC Firewall Rules", "VPC Firewall Rule Operations", "VPC Networks", "VPC Subnets", "IB Partitions", "Load Balancers", "NVLink Domains" ] }, { "name": "Orchestration", "tags": [ "Kubernetes Clusters", "Kubernetes Cluster Operations", "Kubernetes Node Pools", "Kubernetes Node Pool Operations", "Kubernetes Versions", "AutoClusters", "AutoCluster Operations" ] }, { "name": "Locations", "tags": [ "Locations" ] }, { "name": "Capacities", "tags": [ "Capacities" ] }, { "name": "Container Registry", "tags": [ "Container Registry" ] }, { "name": "Foundry", "tags": [ "Foundry" ] } ] }