{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "schemes": [ "https" ], "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.crusoecloud.com", "basePath": "/v1alpha5", "paths": { "/capacities": { "get": { "tags": [ "Capacities" ], "summary": "Lists available Crusoe Cloud capacity with optional filters on location and product name.", "operationId": "listSliceCapacities", "parameters": [ { "type": "array", "items": { "type": "string" }, "example": "[a100.1x, a100.2x]", "x-go-name": "ProductNames", "name": "product_name", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": "[us-northcentral1-a, us-northcentral1-b]", "x-go-name": "Locations", "name": "location", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/capacitiesResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/compute/images": { "get": { "tags": [ "Images" ], "summary": "Lists all VM images available for use.", "operationId": "listImages", "responses": { "200": { "$ref": "#/responses/listImagesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/compute/images/{image_id}": { "get": { "tags": [ "Images" ], "summary": "Retrieve details about a VM image.", "operationId": "getImage", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ImageID", "name": "image_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getImageResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "Feature-Flags" ], "summary": "Get feature flags for the currently logged in user.", "operationId": "getFeatureFlags", "responses": { "200": { "$ref": "#/responses/featureFlagsGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/locations": { "get": { "tags": [ "Locations" ], "summary": "Lists all Crusoe Cloud locations usable for resource hosting.", "operationId": "listLocations", "responses": { "200": { "$ref": "#/responses/locationsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/billing/intent": { "get": { "tags": [ "Billing" ], "summary": "Retrieve an intent to facilitate a Stripe action.", "operationId": "getBillingIntent", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true }, { "enum": [ "dashboard" ], "type": "string", "x-go-name": "Type", "name": "intent_type", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/billingIntentGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/entities": { "get": { "tags": [ "Entities" ], "summary": "Retrieve details about all active organizations the logged in user belongs to.", "operationId": "getOrganizations", "responses": { "200": { "$ref": "#/responses/organizationsGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "put": { "description": "A successful response from this resource will contain the updated organization details.", "tags": [ "Entities" ], "summary": "Update details for an organization that the logged in user owns.", "operationId": "updateOrganization", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true }, { "name": "Body", "in": "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" } } }, "post": { "description": "A successful response from this resource will contain the json encoded organization details.", "tags": [ "Entities" ], "summary": "Create a new organization owned by the logged in user.", "operationId": "createOrganization", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/EntitiesPutPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/organizationsPutPostResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "Delete operations will cascade to projects and VMs, and all members will be removed from the organization.", "tags": [ "Entities" ], "summary": "Delete an organization owned by the logged in user.", "operationId": "deleteOrganization", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/projects": { "get": { "description": "If querying for projects within an organization, the logged in user must be the owner of the organization.", "tags": [ "Projects" ], "summary": "Retrieve details about projects that the logged in user belongs to or owns.", "operationId": "listProjects", "parameters": [ { "type": "string", "example": "ee2a6bc3-aed5-4756-8995-9990a53d3a17", "x-go-name": "OrgID", "name": "org_id", "in": "query" }, { "type": "string", "example": "default", "x-go-name": "ProjectName", "name": "project_name", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listProjectsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "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.", "tags": [ "Projects" ], "summary": "Update details for a project that the logged in user owns.", "operationId": "updateProject", "parameters": [ { "type": "string", "example": "f058d0db-2fa4-4cf2-8cf1-dfbcfe05a814", "x-go-name": "ProjectID", "name": "project_id", "in": "query", "required": true }, { "name": "Body", "in": "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" } } }, "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.", "tags": [ "Projects" ], "summary": "Create a new project that will be owned by the logged in user.", "operationId": "createProject", "parameters": [ { "name": "Body", "in": "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" } } } }, "/organizations/projects/{project_id}": { "get": { "tags": [ "Projects" ], "summary": "Retrieve details about a project that the logged in user belongs to or owns.", "operationId": "getProject", "parameters": [ { "type": "string", "example": "ee2a6bc3-aed5-4756-8995-9990a53d3a17", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getProjectResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "Delete operations cascade to VMs created under that project.", "tags": [ "Projects" ], "summary": "Delete a project that the logged in user owns.", "operationId": "deleteProject", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/prospects": { "post": { "tags": [ "Prospects" ], "summary": "Create a new prospective customer in Crusoe Cloud.", "operationId": "createProspect", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ProspectPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/prospectPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/usage": { "get": { "tags": [ "Usage" ], "summary": "Get project-level usage for products in Crusoe Cloud.", "operationId": "getUsage", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "x-go-name": "Projects", "name": "projects", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "persistent-ssd", "a40.1x" ], "x-go-name": "ResourceTypes", "name": "resource_types", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "us-east1", "us-northcentral1" ], "x-go-name": "Regions", "name": "regions", "in": "query", "required": true }, { "type": "string", "example": "\"2022-07-01\"", "x-go-name": "StartDate", "name": "start_date", "in": "query", "required": true }, { "type": "string", "example": "\"2023-08-08\"", "x-go-name": "EndDate", "name": "end_date", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/usageGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/usage/export": { "get": { "produces": [ "text/csv" ], "tags": [ "Usage" ], "summary": "Get resource-level usage for products in Crusoe Cloud.", "operationId": "getUsageExport", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "x-go-name": "Projects", "name": "projects", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ], "x-go-name": "Resources", "name": "resources", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "persistent-ssd", "a40.1x" ], "x-go-name": "ResourceTypes", "name": "resource_types", "in": "query", "required": true }, { "type": "array", "items": { "type": "string" }, "example": [ "us-east1", "us-northcentral1" ], "x-go-name": "Regions", "name": "regions", "in": "query", "required": true }, { "type": "string", "example": "\"2022-07-01\"", "x-go-name": "StartDate", "name": "start_date", "in": "query", "required": true }, { "type": "string", "example": "\"2023-08-08\"", "x-go-name": "EndDate", "name": "end_date", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/usageExportGetResponse" }, "400": { "$ref": "#/responses/badReqError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/organizations/usage/options": { "get": { "tags": [ "Usage" ], "summary": "Get options which exist for filters for /usage and /usage/export routes.", "operationId": "getUsageOptions", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OrgID", "name": "org_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/usageOptionsGetResponse" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/instance-groups": { "get": { "tags": [ "Instance-Groups" ], "summary": "Lists all instance groups.", "operationId": "listInstanceGroups", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listInstanceGroupsResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "tags": [ "Instance-Groups" ], "summary": "Create an instance group.", "operationId": "createInstanceGroup", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstanceGroupPostRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/createInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/instance-groups/{instance_group_id}": { "get": { "tags": [ "Instance-Groups" ], "summary": "Retrieve details about an instance group.", "operationId": "getInstanceGroup", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "InstanceGroupID", "name": "instance_group_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "Instance-Groups" ], "summary": "Delete an instance group.", "operationId": "deleteInstanceGroup", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "InstanceGroupID", "name": "instance_group_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "patch": { "tags": [ "Instance-Groups" ], "summary": "Update an instance group.", "operationId": "patchInstanceGroup", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "InstanceGroupID", "name": "instance_group_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstanceGroupPatchRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/patchInstanceGroupResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/instance-templates": { "get": { "tags": [ "Instance-Templates" ], "summary": "Lists all VM instance templates available for use.", "operationId": "listInstanceTemplates", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listInstanceTemplatesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "tags": [ "Instance-Templates" ], "summary": "Create a VM instance template, for use in bulk VM creation.", "operationId": "createInstanceTemplate", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstanceTemplatePostRequestV1Alpha5" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/createInstanceTemplateResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/instance-templates/{instance_template_id}": { "get": { "tags": [ "Instance-Templates" ], "summary": "Retrieve details about a VM instance template.", "operationId": "getInstanceTemplate", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "InstanceTemplateID", "name": "instance_template_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getInstanceTemplateResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "Instance-Templates" ], "summary": "Delete a VM instance template.", "operationId": "deleteInstanceTemplate", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "InstanceTemplateID", "name": "instance_template_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/vms/bulk-instances": { "post": { "tags": [ "VMs" ], "summary": "Create new VM instances owned by the logged in user.", "operationId": "bulkCreateInstance", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/compute/vms/instances": { "get": { "tags": [ "VMs" ], "summary": "Retrieve details about all VMs that the logged in user owns or has access to.", "operationId": "listInstances", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "string", "example": "my-first-vm", "x-go-name": "Names", "name": "names", "in": "query" }, { "type": "string", "example": "a40.2x,a100.8x", "x-go-name": "Types", "name": "types", "in": "query" }, { "type": "string", "example": "us-east1,us-northcentral1", "x-go-name": "Locations", "name": "locations", "in": "query" }, { "type": "string", "example": "STATE_RUNNING", "x-go-name": "States", "name": "states", "in": "query" }, { "type": "string", "example": "20", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "example": "name", "x-go-name": "Sort", "name": "sort", "in": "query" }, { "type": "string", "example": "bXktZmlyc3Qtdm0", "x-go-name": "NextToken", "name": "next_token", "in": "query" }, { "type": "string", "example": "bXktZmlyc3Qtdm0", "x-go-name": "PrevToken", "name": "prev_token", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listInstancesResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "tags": [ "VMs" ], "summary": "Create a new VM instance owned by the logged in user.", "operationId": "createInstance", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/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.", "tags": [ "VM-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listComputeVMsInstancesOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "2021-12-03T19:58:34Z", "x-go-name": "LowerTimeBound", "name": "lower_time_bound", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VM-Operations" ], "summary": "Get the status of a single asynchronous operation", "operationId": "getComputeVMsInstancesOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/vms/instances/{vm_id}": { "get": { "tags": [ "VMs" ], "summary": "Retrieve details about a particular VM.", "operationId": "getInstance", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VMID", "name": "vm_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getInstanceResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "VMs" ], "summary": "Delete a VM that the logged in user owns.", "operationId": "deleteInstance", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VMID", "name": "vm_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "patch": { "tags": [ "VMs" ], "summary": "Change the state of a VM the logged in user owns.", "operationId": "updateInstance", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstancesPatchRequestV1Alpha5" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VMID", "name": "vm_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/vms/instances/{vm_id}/attach-disks": { "post": { "tags": [ "VMs" ], "summary": "Attach disks to a VM the logged in user owns.", "operationId": "updateInstanceAttachDisks", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstancesAttachDiskPostRequestV1Alpha5" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VMID", "name": "vm_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/vms/instances/{vm_id}/detach-disks": { "post": { "tags": [ "VMs" ], "summary": "Detach disks from a VM the logged in user owns.", "operationId": "updateInstanceDetachDisks", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InstancesDetachDiskPostRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VMID", "name": "vm_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/compute/vms/types": { "get": { "tags": [ "VMs" ], "summary": "Retrieve information about the types of VMs that are available to purchase along with their prices.", "operationId": "getVMTypes", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/typesGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/ib-networks": { "get": { "tags": [ "IB-Networks" ], "summary": "Retrieve details for all Infiniband networks.", "operationId": "listIBNetworks", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listIbNetworksResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/ib-networks/{ib_network_id}": { "get": { "tags": [ "IB-Networks" ], "summary": "Retrieve details for an Infiniband network.", "operationId": "getIBNetwork", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "IBNetworkID", "name": "ib_network_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getIbNetworkResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/ib-partitions": { "get": { "tags": [ "IB-Partitions" ], "summary": "Retrieve details for all Infiniband partitions that belongs to the user.", "operationId": "listIBPartitions", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listIBPartitionsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "tags": [ "IB-Partitions" ], "summary": "Create a new Infiniband partition owned by the logged in user.", "operationId": "createIBPartition", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/IBPartitionsPostRequestV1Alpha5" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/ibPartitionsPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/ib-partitions/{ib_partition_id}": { "get": { "tags": [ "IB-Partitions" ], "summary": "Retrieve details for an Infiniband partition that belongs to the user.", "operationId": "getIBPartition", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "IBPartitionID", "name": "ib_partition_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getIbPartitionResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "IB-Partitions" ], "summary": "Delete an Infiniband partition owned by the logged in user.", "operationId": "deleteIBPartition", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "IBPartitionID", "name": "ib_partition_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/load-balancers": { "get": { "tags": [ "Load-Balancers" ], "summary": "Retrieve details about all load balancers that belong to the logged in user.", "operationId": "listLoadBalancers", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listLoadBalancersResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "Load-Balancers" ], "summary": "Create a new load balancer owned by the logged in user.", "operationId": "createLoadBalancer", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/LoadBalancersPostRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/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.", "tags": [ "Load-Balancer-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listNetworkingLoadBalancersOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/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.", "tags": [ "Load-Balancer-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getNetworkingLoadBalancersOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/load-balancers/{load_balancer_id}": { "get": { "tags": [ "Load-Balancers" ], "summary": "Retrieve details for a load balancer that belongs to the logged in user.", "operationId": "getLoadBalancer", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "LoadBalancerID", "name": "load_balancer_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getLoadBalancerResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "Load-Balancers" ], "summary": "Delete a load balancer owned by the logged in user.", "operationId": "deleteLoadBalancer", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "LoadBalancerID", "name": "load_balancer_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "patch": { "description": "A successful response from this resource will contain the async operation.\nTo disable health checking, pass \"health_check\": {\"port\": 0}", "tags": [ "Load-Balancers" ], "summary": "Patch (update) a load balancer owned by the logged in user.", "operationId": "patchLoadBalancer", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "LoadBalancerID", "name": "load_balancer_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/networking/vpc-firewall-rules": { "get": { "tags": [ "VPC-Firewall-Rules" ], "summary": "Retrieve details about all VPC firewall rules that belong to the logged in user.", "operationId": "listVPCFirewallRules", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listVpcFirewallRulesResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Firewall-Rules" ], "summary": "Create a new VPC firewall rule owned by the logged in user.", "operationId": "createVPCFirewallRule", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VPCFirewallRulesPostRequestV1Alpha5" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Firewall-Rule-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listNetworkingVPCFirewallRulesOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Firewall-Rule-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getNetworkingVPCFirewallRulesOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id}": { "get": { "tags": [ "VPC-Firewall-Rules" ], "summary": "Retrieve details for a VPC firewall rule that belongs to the logged in user.", "operationId": "getVPCFirewallRule", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCFirewallRuleID", "name": "vpc_firewall_rule_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getVpcFirewallRuleResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Firewall-Rules" ], "summary": "Delete a VPC firewall rule owned by the logged in user.", "operationId": "deleteVPCFirewallRule", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCFirewallRuleID", "name": "vpc_firewall_rule_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "patch": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Firewall-Rules" ], "summary": "Patch (update) a VPC firewall rule owned by the logged in user.", "operationId": "patchVPCFirewallRule", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCFirewallRuleID", "name": "vpc_firewall_rule_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/networking/vpc-networks": { "get": { "tags": [ "VPC-Networks" ], "summary": "Retrieve details about all VPC networks that belong to the logged in user.", "operationId": "listVPCNetworks", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listVPCNetworksResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource will contain information regarding the created VPC network.", "tags": [ "VPC-Networks" ], "summary": "Create a new VPC network owned by the logged in user.", "operationId": "createVPCNetwork", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VPCNetworkPostRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/vpcNetworkPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Network-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listNetworkingVPCNetworksOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Network-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getNetworkingVPCNetworksOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/vpc-networks/{vpc_network_id}": { "get": { "tags": [ "VPC-Networks" ], "summary": "Retrieve details for a VPC network that belongs to the logged in user.", "operationId": "getVPCNetwork", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCNetworkID", "name": "vpc_network_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getVPCNetworkResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Networks" ], "summary": "Delete a VPC network owned by the logged in user.", "operationId": "deleteVPCNetwork", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCNetworkID", "name": "vpc_network_id", "in": "path", "required": true } ], "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" } } }, "patch": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Networks" ], "summary": "Patch (update) a VPC network owned by the logged in user.", "operationId": "patchVPCNetwork", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCNetworkID", "name": "vpc_network_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/networking/vpc-subnets": { "get": { "tags": [ "VPC-Subnets" ], "summary": "Retrieve details about all VPC subnets that belong to the logged in user.", "operationId": "listVPCSubnets", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listVpcSubnetsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource will contain information regarding the created subnet.", "tags": [ "VPC-Subnets" ], "summary": "Create a new VPC subnet owned by the logged in user.", "operationId": "createVPCSubnet", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/VPCSubnetPostRequest" } }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/vpcSubnetPostResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Subnet-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listNetworkingVPCSubnetsOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "VPC-Subnet-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getNetworkingVPCSubnetsOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}": { "get": { "tags": [ "VPC-Subnets" ], "summary": "Retrieve details for a VPC subnet that belongs to the logged in user.", "operationId": "getVPCSubnet", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCSubnetID", "name": "vpc_subnet_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getVpcSubnetResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Subnets" ], "summary": "Delete a VPC subnet owned by the logged in user.", "operationId": "deleteVPCSubnet", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCSubnetID", "name": "vpc_subnet_id", "in": "path", "required": true } ], "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" } } }, "patch": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "VPC-Subnets" ], "summary": "Patch (update) a VPC subnet owned by the logged in user.", "operationId": "patchVPCSubnet", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "VPCSubnetID", "name": "vpc_subnet_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/storage/disks": { "get": { "description": "Size of disks will be in gibibytes (GiB)", "tags": [ "Disks" ], "summary": "Retrieve details about all disks that belong to the logged in user.", "operationId": "listDisks", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listDisksResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "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.", "tags": [ "Disks" ], "summary": "Create a new disk owned by the logged in user.", "operationId": "createDisk", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/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.", "tags": [ "Disk-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listStorageDisksOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "Disk-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getStorageDisksOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/storage/disks/{disk_id}": { "get": { "description": "Size of disk will be in gibibytes (GiB)", "tags": [ "Disks" ], "summary": "Retrieve details for a disk that belongs to the logged in user.", "operationId": "getDisk", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "DiskID", "name": "disk_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getDiskResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "Disks" ], "summary": "Delete a disk owned by the logged in user.", "operationId": "deleteDisk", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "DiskID", "name": "disk_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "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.", "tags": [ "Disks" ], "summary": "Resize a disk that the logged in user owns.", "operationId": "resizeDisk", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "DiskID", "name": "disk_id", "in": "path", "required": true }, { "name": "Body", "in": "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" } } } }, "/projects/{project_id}/storage/snapshots": { "get": { "description": "Size of snapshots will be in bytes.", "tags": [ "Snapshots" ], "summary": "Retrieve details about all disk snapshots that belong to the logged in user.", "operationId": "listDiskSnapshots", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listDiskSnapshotsResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "Snapshots" ], "summary": "Create a new snapshot for a disk owned by the logged in user.", "operationId": "createDiskSnapshot", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/DiskSnapshotPostRequest" } } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "Snapshot-Operations" ], "summary": "Get status of asynchronous operations", "operationId": "listStorageSnapshotsOperations", "parameters": [ { "type": "string", "example": "452580d7-41d1-4b63-b4d7-4e4e21e95f96", "x-go-name": "ResourceID", "name": "resource_id", "in": "query" }, { "type": "array", "items": { "type": "string" }, "example": [ "IN_PROGRESS" ], "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/listOperationsResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/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.", "tags": [ "Snapshot-Operations" ], "summary": "Get status of a single asynchronous operation", "operationId": "getStorageSnapshotsOperation", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "OperationID", "name": "operation_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getOperationResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/projects/{project_id}/storage/snapshots/{snapshot_id}": { "get": { "description": "Size of snapshot will be in bytes.", "tags": [ "Snapshots" ], "summary": "Retrieve details about a disk snapshot that belongs to the logged in user.", "operationId": "getDiskSnapshot", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "SnapshotID", "name": "snapshot_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getSnapshotResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "A successful response from this resource will contain the async operation.", "tags": [ "Snapshots" ], "summary": "Delete a disk snapshot owned by the logged in user.", "operationId": "deleteDiskSnapshot", "parameters": [ { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "ProjectID", "name": "project_id", "in": "path", "required": true }, { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab", "x-go-name": "SnapshotID", "name": "snapshot_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/asyncOperationResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/users/identities": { "get": { "tags": [ "Identities" ], "summary": "Retrieve user details for the logged in user.", "operationId": "getUserIdentity", "responses": { "200": { "$ref": "#/responses/usersGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "put": { "description": "A successful response from this resource wil contain the updated user details.", "tags": [ "Identities" ], "summary": "Update user details for the logged in user.", "operationId": "updateUserIdentity", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/IdentityPutRequest" } } ], "responses": { "200": { "$ref": "#/responses/usersPutResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "description": "Delete operations will cascade to all entities the user owns (organizations, roles, vms).", "tags": [ "Identities" ], "summary": "Delete the account for the logged in user.", "operationId": "deleteUserIdentity", "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/users/ssh-keys": { "get": { "tags": [ "SSH-Keys" ], "summary": "Retrieve the list of SSH public keys registered to the logged in user.", "operationId": "getSSHKeys", "responses": { "200": { "$ref": "#/responses/getSSHKeysResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "post": { "description": "A successful response from this resource wil contain the created SSH key details.", "tags": [ "SSH-Keys" ], "summary": "Register a new SSH public key to the logged in user.", "operationId": "createSSHKey", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateSSHKeyRequest" } } ], "responses": { "200": { "$ref": "#/responses/createSSHKeysResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "SSH-Keys" ], "summary": "Delete an SSH public key registered to the logged in user.", "operationId": "deleteSSHKey", "parameters": [ { "type": "string", "example": "6e28cad3-98e6-47a9-a9fc-1cd83a7f25c1", "x-go-name": "ID", "name": "id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "400": { "$ref": "#/responses/badReqError" }, "401": { "$ref": "#/responses/authError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/serverError" } } } }, "/users/tokens": { "get": { "tags": [ "Tokens" ], "summary": "Retrieve all active/expired API tokens for the logged in user.", "operationId": "getTokens", "responses": { "200": { "$ref": "#/responses/tokensGetResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "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.", "tags": [ "Tokens" ], "summary": "Create a new token owned by the logged in user.", "operationId": "createToken", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateTokenRequest" } } ], "responses": { "200": { "$ref": "#/responses/tokensPostResponse" }, "401": { "$ref": "#/responses/authError" }, "500": { "$ref": "#/responses/serverError" } } }, "delete": { "tags": [ "Tokens" ], "summary": "Delete an API token owned by the logged in user.", "operationId": "deleteToken", "parameters": [ { "type": "string", "example": "WTUzcGibQ82y9_01h4MCdQ", "x-go-name": "AccessKey", "name": "access_key", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/emptyResponse" }, "401": { "$ref": "#/responses/authError" }, "403": { "$ref": "#/responses/permissionsError" }, "500": { "$ref": "#/responses/serverError" } } } } }, "definitions": { "AsyncOperationResponse": { "type": "object", "title": "AsyncOperationResponse is the response type for endpoints which return async operations.", "required": [ "operation" ], "properties": { "operation": { "$ref": "#/definitions/Operation" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "AttachedDiskV1Alpha5": { "type": "object", "required": [ "id", "name", "type", "size", "location", "block_size", "created_at", "updated_at", "serial_number", "attachment_type", "mode" ], "properties": { "attachment_type": { "type": "string", "x-go-name": "AttachmentType", "example": "os | data" }, "block_size": { "type": "integer", "format": "int64", "x-go-name": "BlockSize", "example": 4096 }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-12-03T19:58:34Z" }, "id": { "type": "string", "x-go-name": "ID", "example": "123e4567-e89b-12d3-a456-426614174000" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "mode": { "type": "string", "x-go-name": "Mode", "example": "read-write | read-only" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-disk" }, "serial_number": { "type": "string", "x-go-name": "SerialNumber", "example": "96FD14FDBCF7E21E8EC" }, "size": { "type": "string", "x-go-name": "Size", "example": "10GiB" }, "type": { "type": "string", "x-go-name": "Type", "example": "persistent-ssd" }, "updated_at": { "type": "string", "x-go-name": "UpdatedAt", "example": "2021-12-03T19:58:34Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Billing": { "type": "object", "title": "Billing contains information about the billing status of an organization.", "required": [ "balance", "has_valid_payment_method", "delinquent" ], "properties": { "balance": { "type": "string", "x-go-name": "Balance", "example": "$1000.00" }, "delinquent": { "type": "boolean", "x-go-name": "Delinquent", "example": false }, "has_valid_payment_method": { "type": "boolean", "x-go-name": "HasValidPaymentMethod", "example": true } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "BillingIntentGetResponse": { "type": "object", "title": "BillingIntentGetResponse is the response type for Get requests to the entities/billing/intent endpoint.", "required": [ "intent" ], "properties": { "intent": { "type": "string", "x-go-name": "Intent", "example": "https://billing.stripe.com/session/{SESSION_SECRET}" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "BulkCreateLocationInfo": { "type": "object", "required": [ "location" ], "properties": { "ib_partition_id": { "description": "The ID of the Infiniband partition to create the VMs in, if an IB type was specified.\nMust be in the same location as the VMs.", "type": "string", "x-go-name": "IBPartitionID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "location": { "description": "The location to create the VMs in.", "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "subnet_id": { "description": "The ID of the subnet to create the VMs in. Must be in the same location\nas the VMs. If not provided, the default subnet for the location will be\nused, if there is one.", "type": "string", "x-go-name": "SubnetID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "BulkInstancePostRequestV1Alpha5": { "type": "object", "required": [ "name_prefix", "count" ], "properties": { "count": { "description": "The number of VMs to create. If multiple locations are specified, this will be the number of VMs\ncreated in each location.", "type": "integer", "format": "int64", "x-go-name": "Count", "example": 6 }, "instance_group_id": { "description": "The ID of the instance group the VMs will be created in.", "type": "string", "x-go-name": "InstanceGroupID", "example": "cda562c4-6162-4565-95f3-ce06a8220c07" }, "instance_template": { "$ref": "#/definitions/InstanceTemplatePostRequestV1Alpha5" }, "instance_template_id": { "description": "The ID of the instance template to use for creating the VMs.", "type": "string", "x-go-name": "InstanceTemplateID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "locations": { "description": "The locations to create the VMs in. This will override any location specified in the instance template.", "type": "array", "items": { "$ref": "#/definitions/BulkCreateLocationInfo" }, "x-go-name": "Locations" }, "name_prefix": { "description": "The name prefix for the VMs to be created. E.g. \"my-vm\" will create VMs with names \"my-vm-1\",", "type": "string", "x-go-name": "NamePrefix", "example": "my-vm" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "CapacityV1Alpha5": { "type": "object", "required": [ "location", "quantity" ], "properties": { "location": { "type": "string", "x-go-name": "Location", "example": "us-east" }, "quantity": { "type": "integer", "format": "uint32", "x-go-name": "Quantity", "example": 8 }, "type": { "type": "string", "x-go-name": "Type", "example": "a100.2x" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "CreateSSHKeyRequest": { "type": "object", "required": [ "name", "public_key" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "John Doe" }, "public_key": { "type": "string", "x-go-name": "PublicKey", "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "CreateSSHKeyResponse": { "type": "object", "required": [ "ssh_key" ], "properties": { "ssh_key": { "$ref": "#/definitions/SSHKey" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "CreateTokenRequest": { "type": "object", "required": [ "expires_at" ], "properties": { "alias": { "type": "string", "x-go-name": "Alias", "example": "token1" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt", "example": "2021-12-03T19:58:34Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskAttachment": { "type": "object", "required": [ "disk_id", "mode", "attachment_type" ], "properties": { "attachment_type": { "type": "string", "enum": [ "os", "data" ], "x-go-name": "AttachmentType", "example": "data" }, "disk_id": { "type": "string", "x-go-name": "DiskID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "mode": { "type": "string", "enum": [ "read-only", "read-write" ], "x-go-name": "Mode", "example": "read-only, read-write" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskModeType": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskSnapshot": { "type": "object", "required": [ "id", "created_at", "updated_at", "created_from", "size", "block_size" ], "properties": { "block_size": { "type": "integer", "format": "int64", "x-go-name": "BlockSize", "example": 4096 }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-12-03T19:58:34Z" }, "created_from": { "type": "string", "x-go-name": "CreatedFrom", "example": "123e4567-e89b-12d3-a456-426614174000" }, "id": { "type": "string", "x-go-name": "ID", "example": "123e4567-e89b-12d3-a456-426614174000" }, "size": { "type": "string", "x-go-name": "Size", "example": "10457 bytes" }, "updated_at": { "type": "string", "x-go-name": "UpdatedAt", "example": "2021-12-03T19:58:34Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskSnapshotPostRequest": { "type": "object", "required": [ "role_id", "disk_id" ], "properties": { "disk_id": { "type": "string", "x-go-name": "DiskID", "example": "123e4567-e89b-12d3-a456-426614174000" }, "role_id": { "type": "string", "x-go-name": "RoleID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskTemplate": { "type": "object", "title": "DiskTemplate defines a disk to create for each VM during bulk VM creation.", "required": [ "size", "type" ], "properties": { "size": { "type": "string", "x-go-name": "Size", "example": "10GiB" }, "type": { "type": "string", "x-go-name": "Type", "example": "persistent-ssd" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DiskV1Alpha5": { "type": "object", "required": [ "id", "name", "type", "size", "location", "block_size", "created_at", "updated_at", "serial_number", "attached_to" ], "properties": { "attached_to": { "type": "array", "items": { "$ref": "#/definitions/VMAttachmentV1Alpha5" }, "x-go-name": "AttachedTo" }, "block_size": { "type": "integer", "format": "int64", "x-go-name": "BlockSize", "example": 4096 }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-12-03T19:58:34Z" }, "id": { "type": "string", "x-go-name": "ID", "example": "123e4567-e89b-12d3-a456-426614174000" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-disk" }, "serial_number": { "type": "string", "x-go-name": "SerialNumber", "example": "96FD14FDBCF7E21E8EC" }, "size": { "type": "string", "x-go-name": "Size", "example": "10GiB" }, "type": { "type": "string", "x-go-name": "Type", "example": "persistent-ssd" }, "updated_at": { "type": "string", "x-go-name": "UpdatedAt", "example": "2021-12-03T19:58:34Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DisksPatchRequest": { "type": "object", "required": [ "size" ], "properties": { "size": { "type": "string", "x-go-name": "Size", "example": "10GiB" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "DisksPostRequestV1Alpha5": { "type": "object", "required": [ "name", "type" ], "properties": { "block_size": { "type": "integer", "format": "int64", "x-go-name": "BlockSize", "example": 4096 }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-disk" }, "size": { "type": "string", "x-go-name": "Size", "example": "10GiB" }, "snapshot_id": { "type": "string", "x-go-name": "DiskSnapshotID", "example": "123e4567-e89b-12d3-a456-426614174000" }, "type": { "type": "string", "x-go-name": "Type", "example": "persistent-ssd" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "EntitiesPutPostRequest": { "type": "object", "title": "EntitiesPutPostRequest is the request type for PUT and POST requests to the entities endpoint.", "required": [ "organization_name" ], "properties": { "organization_name": { "type": "string", "x-go-name": "OrganizationName", "example": "Crusoe Energy" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "EntitiesPutPostResponse": { "type": "object", "title": "EntitiesPutPostResponse is the response type for PUT and POST requests to the entities endpoint.", "required": [ "entity" ], "properties": { "entity": { "$ref": "#/definitions/Entity" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Entity": { "type": "object", "title": "Entity contains identifying information for an organization.", "required": [ "id", "name", "relation", "billing", "features" ], "properties": { "billing": { "$ref": "#/definitions/Billing" }, "features": { "type": "object", "additionalProperties": { "type": "object" }, "x-go-name": "Features" }, "id": { "type": "string", "x-go-name": "ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "name": { "type": "string", "x-go-name": "Name", "example": "Crusoe Energy" }, "relation": { "type": "string", "x-go-name": "Relation", "example": "owner" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ErrorBody": { "type": "object", "properties": { "code": { "type": "string", "x-go-name": "Code" }, "message": { "type": "string", "x-go-name": "Message" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "FeatureFlagsGetResponse": { "type": "object", "title": "FeatureFlagsGetResponse is the response type for GET requests to the feature flags endpoint.", "required": [ "feature_flags" ], "properties": { "feature_flags": { "type": "object", "additionalProperties": { "type": "object" }, "x-go-name": "FeatureFlags", "example": { "curated-images": true, "infiniband": false } } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Fingerprints": { "type": "object", "required": [ "md5", "sha256" ], "properties": { "md5": { "type": "string", "x-go-name": "MD5", "example": "bf:60:fa:cc:9f:42:1f:5e:23:9e:ed:d2:69:d8:76:93" }, "sha256": { "type": "string", "x-go-name": "SHA256", "example": "tARFxQkVHeqm6TzqpI897QsHVdgZlxgL2/YhVltmEUk" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "FirewallRuleObject": { "description": "It has two fields: CIDR and ResourceID. The CIDR field may either be a\nCIDR or an IP address. If an IP, it will be converted to a CIDR. Resource ids\nof VPC networks, Subnets, and VMs are the only allowed. Only one of the two\nfields can be non empty.", "type": "object", "title": "FirewallRuleObject specifies the source or destination of a firewall rule.", "properties": { "cidr": { "type": "string", "x-go-name": "CIDR", "example": "10.1.2.3/24" }, "resource_id": { "type": "string", "x-go-name": "ResourceID", "example": "306aa10d-5570-4e47-88c9-46bf11bd8737" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "GeneratedToken": { "description": "These are the fields returned from a PUT request.", "type": "object", "title": "GeneratedToken contains the Traits Island stores for a Token inside of Kratos.", "required": [ "access_key", "secret_key", "created_at", "expires_at" ], "properties": { "access_key": { "type": "string", "x-go-name": "AccessKey", "example": "R7p5XctCQMuGlpVBmVdqzA" }, "alias": { "type": "string", "x-go-name": "Alias", "example": "newtoken" }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-11-03T22:16:27Z" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt", "example": "2021-12-03T19:58:34Z" }, "secret_key": { "type": "string", "x-go-name": "SecretKey", "example": "HrbZ3VTUb2YNAq53Md1EsA" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "HealthCheckOptions": { "type": "object", "required": [ "port" ], "properties": { "failure_count": { "type": "string", "x-go-name": "FailureCount", "example": "3" }, "interval": { "type": "string", "x-go-name": "Interval", "example": "60" }, "port": { "type": "string", "x-go-name": "Port", "example": "8080" }, "success_count": { "type": "string", "x-go-name": "SuccessCount", "example": "2" }, "timeout": { "type": "string", "x-go-name": "Timeout", "example": "20" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "HostChannelAdapter": { "type": "object", "required": [ "type", "guid", "ib_network_id", "ib_partition_id" ], "properties": { "guid": { "type": "string", "x-go-name": "GUID", "example": "946d:ae03:0021:69aa" }, "ib_network_id": { "type": "string", "x-go-name": "IBNetworkID", "example": "ca39e669-47ee-456b-968d-303234fbf99f" }, "ib_partition_id": { "type": "string", "x-go-name": "IBPartitionID", "example": "ca39e669-47ee-456b-968d-303234fbf99f" }, "type": { "type": "string", "x-go-name": "Type", "example": "infiniband" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IBNetwork": { "type": "object", "required": [ "id", "name", "location", "capacities" ], "properties": { "capacities": { "type": "array", "items": { "$ref": "#/definitions/IBNetworkCapacity" }, "x-go-name": "Capacities" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-east" }, "name": { "type": "string", "x-go-name": "Name", "example": "ib-network-1" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IBNetworkCapacity": { "type": "object", "required": [ "quantity", "slice_type" ], "properties": { "quantity": { "type": "integer", "format": "uint32", "x-go-name": "Quantity", "example": 8 }, "slice_type": { "type": "string", "x-go-name": "SliceType", "example": "16 vCPUs \u0026 125GB RAM \u0026 1 A100 (40GB) GPU" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IBPartition": { "type": "object", "required": [ "id", "name", "ib_network_id" ], "properties": { "ib_network_id": { "type": "string", "x-go-name": "IBNetworkID", "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0" }, "id": { "type": "string", "x-go-name": "ID", "example": "44701f9e-845c-4005-9240-adee6401b8d3" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-ib-partition" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IBPartitionsPostRequestV1Alpha5": { "type": "object", "title": "IBPartitionsPostRequestV1Alpha5 is the request type for POST requests to the IB Partitions endpoint.", "required": [ "name", "ib_network_id" ], "properties": { "ib_network_id": { "type": "string", "x-go-name": "IBNetworkID", "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-ib-partition" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IPAddresses": { "type": "object", "required": [ "private_ipv4", "public_ipv4" ], "properties": { "private_ipv4": { "$ref": "#/definitions/PrivateIPv4Address" }, "public_ipv4": { "$ref": "#/definitions/PublicIPv4Address" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Identity": { "description": "Identity contains the Traits Island stores for a User inside of Kratos. These are\nthe fields returned from a GET or PUT request.", "type": "object", "required": [ "email", "name", "role" ], "properties": { "email": { "type": "string", "x-go-name": "Email", "example": "john.doe@crusoeenergy.com" }, "name": { "type": "string", "x-go-name": "Name", "example": "John Doe" }, "role": { "type": "string", "x-go-name": "Role", "example": "Admin" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "IdentityPutRequest": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "John Doe" }, "role": { "type": "string", "x-go-name": "Role", "example": "Admin" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Image": { "type": "object", "required": [ "id", "name", "description", "tags", "created_at", "locations" ], "properties": { "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2023-06-29T20:03:26Z" }, "description": { "type": "string", "x-go-name": "Description", "example": "base Ubuntu 20.04 image" }, "id": { "type": "string", "x-go-name": "ID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "locations": { "type": "array", "items": { "type": "string" }, "x-go-name": "Locations", "example": "[us-east1, us-northcentral1]" }, "name": { "type": "string", "x-go-name": "Name", "example": "ubuntu" }, "tags": { "type": "array", "items": { "type": "string" }, "x-go-name": "Tags", "example": "[20.4, latest]" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceGroup": { "type": "object", "title": "InstanceGroup defines the specification of an instance group.", "required": [ "name", "id", "template_id", "created_at", "updated_at", "project_id", "running_instance_count", "instances" ], "properties": { "created_at": { "description": "Time the instance template was created.", "type": "string", "x-go-name": "CreatedAt", "example": "2024-01-01T00:00:00Z" }, "id": { "description": "ID of the instance group.", "type": "string", "x-go-name": "ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "instances": { "description": "A list of IDs of instances currently in the instance group.", "type": "array", "items": { "type": "string" }, "x-go-name": "Instances", "example": [ "066ce497-889e-4899-b53e-400df3fb7c0e" ] }, "name": { "description": "Name of the instance group.", "type": "string", "x-go-name": "Name", "example": "my-instance-group" }, "project_id": { "description": "Project ID of the project this instance template belongs to.", "type": "string", "x-go-name": "ProjectID", "example": "b67aec22-2908-4427-994c-4e32be87477e" }, "running_instance_count": { "description": "The number of running instances currently in the Instance Group.", "type": "integer", "format": "int64", "x-go-name": "RunningInstanceCount", "example": 3 }, "template_id": { "description": "Instance Template ID currently associated with the instance group.", "type": "string", "x-go-name": "TemplateID", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc" }, "updated_at": { "description": "Most recent time the instance group was updated.", "type": "string", "x-go-name": "UpdatedAt", "example": "2024-01-01T00:00:00Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceGroupPatchRequest": { "description": "This is a separate type from InstanceGroupPostRequest for clearer documentation, as these fields are not required\nin the PATCH endpoint.", "type": "object", "title": "InstanceGroupPatchRequest defines the specifications of the updates to be made to the instance group.", "properties": { "name": { "description": "Name of the instance group.", "type": "string", "x-go-name": "Name", "example": "my-instance-group" }, "template_id": { "description": "Instance Template ID to be associated with the instance group.", "type": "string", "x-go-name": "TemplateID", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceGroupPostRequest": { "type": "object", "title": "InstanceGroupPostRequest defines the specifications of the instance group to be created.", "required": [ "name", "template_id" ], "properties": { "name": { "description": "Name of the instance group.", "type": "string", "x-go-name": "Name", "example": "my-instance-group" }, "template_id": { "description": "Instance Template ID to be associated with the instance group.", "type": "string", "x-go-name": "TemplateID", "example": "7e6a6c5a-1314-409a-9e4f-3cc9f2a68fcc" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceTemplate": { "type": "object", "title": "InstanceTemplate defines the specifications of VMs to be created during bulk VM creation.", "required": [ "name", "id", "type", "ssh_public_key", "startup_script", "shutdown_script", "image_name", "ib_partition_id", "subnet_id", "location", "project_id", "created_at", "public_ip_address_type" ], "properties": { "created_at": { "description": "Time the instance template was created.", "type": "string", "x-go-name": "CreatedAt", "example": "2024-01-01T00:00:00Z" }, "disks": { "description": "Disks to create for all VMs created from this instance template.", "type": "array", "items": { "$ref": "#/definitions/DiskTemplate" }, "x-go-name": "Disks" }, "ib_partition_id": { "description": "IB Partition to use for all VMs created from this instance template.\nOnly used for IB-enabled VM types. Empty if template has no location.", "type": "string", "x-go-name": "IBPartition", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "id": { "description": "ID of the instance template.", "type": "string", "x-go-name": "ID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "image_name": { "description": "OS Image to use for all VMs created from this instance template.", "type": "string", "x-go-name": "Image", "example": "ubuntu:20.04" }, "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.", "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "name": { "description": "Name of the instance template. (This is not the name of the VMs created from this instance template.)", "type": "string", "x-go-name": "Name", "example": "my-instance-template" }, "project_id": { "description": "Project ID of the project this instance template belongs to.", "type": "string", "x-go-name": "ProjectID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "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\".", "type": "string", "x-go-name": "PublicIPAddressType", "example": "static" }, "reservation_id": { "type": "string", "x-go-name": "ReservationID", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8" }, "shutdown_script": { "description": "Shutdown script to use for all VMs created from this instance template.", "type": "string", "x-go-name": "ShutdownScript", "example": "\"#!/bin/bash\\necho'goodbye'\"" }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this instance template.", "type": "string", "x-go-name": "SSHPubKey", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D" }, "startup_script": { "description": "Startup script to use for all VMs created from this instance template.", "type": "string", "x-go-name": "StartupScript", "example": "\"#!/bin/bash\\necho'hello'\"" }, "subnet_id": { "description": "SubnetID to use for all VMs created from this instance template.\nOnly used if template has a location.", "type": "string", "x-go-name": "SubnetID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "type": { "description": "Product name of the VM type we want to create from this instance template.", "type": "string", "x-go-name": "Type", "example": "a100.2x" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceTemplatePostRequestV1Alpha5": { "type": "object", "title": "InstanceTemplate defines the specifications of VMs to be created during bulk VM creation.", "required": [ "template_name", "type", "ssh_public_key" ], "properties": { "disks": { "description": "Disks to create for all VMs created from this instance template.", "type": "array", "items": { "$ref": "#/definitions/DiskTemplate" }, "x-go-name": "Disks" }, "ib_partition_id": { "description": "IB Partition to use for all VMs created from this instance template.\nShould only be provided for IB-enabled VM types.\nThis is location-specific and must be provided if location is provided.", "type": "string", "x-go-name": "IBPartition", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "image_name": { "description": "OS Image to use for all VMs created from this instance template.", "type": "string", "x-go-name": "Image", "example": "ubuntu:20.04" }, "location": { "description": "Location to use for all VMs created from this instance template.\nIf provided, all location-specific resources must also be provided.", "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "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\".", "type": "string", "x-go-name": "PublicIPAddressType", "example": "static" }, "reservation_id": { "type": "string", "x-go-name": "ReservationID", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8" }, "shutdown_script": { "description": "Shutdown script to use for all VMs created from this instance template.", "type": "string", "x-go-name": "ShutdownScript", "example": "\"#!/bin/bash\\necho'goodbye'\"" }, "ssh_public_key": { "description": "SSH public key to use for all VMs created from this instance template.", "type": "string", "x-go-name": "SSHPublicKey", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D" }, "startup_script": { "description": "Startup script to use for all VMs created from this instance template.", "type": "string", "x-go-name": "StartupScript", "example": "\"#!/bin/bash\\necho'hello'\"" }, "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.", "type": "string", "x-go-name": "Subnet", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "template_name": { "description": "Name of the instance template. (This is not the name of the VMs created from this instance template.)", "type": "string", "x-go-name": "TemplateName", "example": "my-instance-template" }, "type": { "description": "Product name of the VM type we want to create from this instance template.", "type": "string", "x-go-name": "Type", "example": "a100.2x" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstanceV1Alpha5": { "description": "InstanceV1Alpha5 contains identifying information about a vm instance for\nvms.instances endpoints.", "type": "object", "required": [ "id", "project_id", "type", "state", "ssh_destination", "created_at", "updated_at", "name", "location", "commitment_period", "commitment_end", "disks", "network_interfaces", "host_channel_adapters" ], "properties": { "commitment_end": { "type": "string", "x-go-name": "CommitmentEnd", "example": "2021-12-03T19:58:34Z" }, "commitment_period": { "type": "integer", "format": "int64", "x-go-name": "CommitmentPeriod", "example": 6 }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-12-03T19:58:34Z" }, "disks": { "type": "array", "items": { "$ref": "#/definitions/AttachedDiskV1Alpha5" }, "x-go-name": "Disks" }, "host_channel_adapters": { "type": "array", "items": { "$ref": "#/definitions/HostChannelAdapter" }, "x-go-name": "HostChannelAdapters" }, "id": { "type": "string", "x-go-name": "ID", "example": "ca39e669-47ee-456b-968d-303234fbf99f" }, "instance_group_id": { "type": "string", "x-go-name": "InstanceGroupID", "example": "707749bd-ecad-4de8-aa00-1ae2fdb99e19" }, "instance_template_id": { "type": "string", "x-go-name": "InstanceTemplateID", "example": "75c6712a-8da8-463c-a72d-fc65cf922959" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-centralnorth1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-first-vm" }, "network_interfaces": { "type": "array", "items": { "$ref": "#/definitions/NetworkInterface" }, "x-go-name": "NetworkInterfaces" }, "project_id": { "type": "string", "x-go-name": "ProjectID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "reservation_id": { "type": "string", "x-go-name": "ReservationID", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8" }, "ssh_destination": { "type": "string", "x-go-name": "SSHDestination", "example": "12.21.12.21:22" }, "state": { "type": "string", "x-go-name": "State", "example": "RUNNING" }, "type": { "type": "string", "x-go-name": "Type", "example": "a100.2x" }, "updated_at": { "type": "string", "x-go-name": "UpdatedAt", "example": "2023-08-14T09:00:35Z" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstancesAttachDiskPostRequestV1Alpha5": { "description": "InstancesAttachDiskPostRequestV1Alpha5 is the request type for POST requests to the\nvms.instances.attach-disk endpoint.", "type": "object", "required": [ "attach_disks" ], "properties": { "attach_disks": { "description": "nolint:lll // DiskAttachment objects are large", "type": "array", "items": { "$ref": "#/definitions/DiskAttachment" }, "x-go-name": "AttachDisks", "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\"}]" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstancesDetachDiskPostRequest": { "description": "InstancesDetachDiskPostRequest is the request type for POST requests to the\nvms.instances.detach-disk endpoint.", "type": "object", "required": [ "detach_disks" ], "properties": { "detach_disks": { "type": "array", "items": { "type": "string" }, "x-go-name": "DetachDisks", "example": [ "09ae8411-0fbb-411c-898c-2b8f19622ae1", "123e4567-e89b-12d3-a456-426614174000" ] } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstancesPatchRequestV1Alpha5": { "type": "object", "title": "InstancesPatchRequestV1Alpha5 is the request type for PATCH requests to the vms.instances endpoint.", "required": [ "action" ], "properties": { "action": { "type": "string", "enum": [ "START", "STOP", "RESET", "COMMIT", "UPDATE" ], "x-go-name": "Action", "example": "START" }, "commitment_period": { "type": "integer", "format": "int64", "x-go-name": "CommitmentPeriod", "example": 6 }, "host_channel_adapters": { "type": "array", "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "x-go-name": "HostChannelAdapters" }, "network_interfaces": { "type": "array", "items": { "$ref": "#/definitions/NetworkInterface" }, "x-go-name": "NetworkInterfaces" }, "reservation_id": { "type": "string", "x-go-name": "ReservationID", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8" }, "type": { "type": "string", "x-go-name": "Type", "example": "a100.2x" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "InstancesPostRequestV1Alpha5": { "description": "InstancesPostRequestV1Alpha5 is the request type for POST requests to the\nvms.instances endpoint.", "type": "object", "required": [ "type", "ssh_public_key", "name" ], "properties": { "commitment_period": { "type": "integer", "format": "int64", "x-go-name": "CommitmentPeriod", "example": 6 }, "disks": { "type": "array", "items": { "$ref": "#/definitions/DiskAttachment" }, "x-go-name": "Disks", "example": "[{disk_id: \"09ae8411-0fbb-411c-898c-2b8f19622ae1\", mode: \"read-write\", attach_type: \"data\"}," }, "host_channel_adapters": { "type": "array", "items": { "$ref": "#/definitions/PartialHostChannelAdapter" }, "x-go-name": "HostChannelAdapters" }, "image": { "type": "string", "x-go-name": "Image", "example": "ubuntu:20.04" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentral1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-first-vm" }, "network_interfaces": { "type": "array", "items": { "$ref": "#/definitions/NetworkInterface" }, "x-go-name": "NetworkInterfaces" }, "reservation_id": { "type": "string", "x-go-name": "ReservationID", "example": "804bf3a2-81f2-4d78-9a9e-dc6a55ed33d8" }, "shutdown_script": { "type": "string", "x-go-name": "ShutdownScript", "example": "\"#!/bin/bash\\necho'goodbye'\"" }, "ssh_public_key": { "type": "string", "x-go-name": "SSHPublicKey", "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D" }, "startup_script": { "type": "string", "x-go-name": "StartupScript", "example": "\"#!/bin/bash\\necho'hello'\"" }, "type": { "type": "string", "x-go-name": "Type", "example": "a100.2x" }, "virtualization_features": { "$ref": "#/definitions/VirtualizationFeatures" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListCapacitiesResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/CapacityV1Alpha5" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListDiskSnapshotsResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/DiskSnapshot" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListDisksResponseV1Alpha5": { "type": "object", "title": "ListDisksResponseV1Alpha5 is the response type for GET requests to the disks endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/DiskV1Alpha5" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListEntitiesResponseV1Alpha5": { "type": "object", "title": "ListEntitiesResponseV1Alpha5 is the response type for GET requests to the entities endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Entity" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListIBNetworksResponseV1Alpha5": { "type": "object", "title": "ListIBNetworksResponseV1Alpha5 is the response type for GET requests to the IB Networks endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/IBNetwork" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListIBPartitionsResponseV1Alpha5": { "type": "object", "title": "ListIBPartitionsResponseV1Alpha5 is the response type for GET requests to the IB Partitions endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/IBPartition" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListImagesResponseV1Alpha5": { "type": "object", "title": "ListImagesResponseV1Alpha5 is the resource response type for GET requests to the Images endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Image" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListInstanceGroupsResponse": { "description": "ListInstanceGroupsResponse is the resource response type for GET\nrequests to the InstanceGroup endpoint.", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/InstanceGroup" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListInstanceTemplatesResponseV1Alpha5": { "description": "ListInstanceTemplatesResponseV1Alpha5 is the resource response type for GET\nrequests to the InstanceTemplates endpoint.", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/InstanceTemplate" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListInstancesResponseV1Alpha5": { "type": "object", "title": "ListInstancesResponseV1Alpha5 is the response type for GET requests to /compute/vms/instances.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/InstanceV1Alpha5" }, "x-go-name": "Items" }, "next_page_token": { "description": "Base64 encoded token representing the next page of instances.\nEmpty if currently on the last page.", "type": "string", "x-go-name": "NextPageToken", "example": "bXktbGFzdC12bQ" }, "prev_page_token": { "description": "Base64 encoded token representing the previous page of instances.\nEmpty if currently on the first page.", "type": "string", "x-go-name": "PrevPageToken", "example": "bXktZmlyc3Qtdm0" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListLoadBalancersResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/LoadBalancer" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListLocationsResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "type": "string" }, "x-go-name": "Items", "example": [ "us-northcentral1-a" ] } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListOperationsResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Operation" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListProjectsResponseV1Alpha5": { "type": "object", "title": "ListProjectsResponseV1Alpha5 is the response type for GET requests to the roles endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Project" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListSSHKeysResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/SSHKey" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListTokensResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/TokenInfo" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListTypesResponseV1Alpha5": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Type" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListVPCFirewallRulesResponseV1Alpha5": { "type": "object", "title": "ListVPCFirewallRulesResponseV1Alpha5 is the response type for GET requests to the VPC Firewall Rules endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/VPCFirewallRule" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListVPCNetworksResponseV1Alpha5": { "type": "object", "title": "ListVPCNetworksResponseV1Alpha5 is the response type for GET requests to the VPC Networks endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/VPCNetwork" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ListVPCSubnetsResponseV1Alpha5": { "type": "object", "title": "ListVPCSubnetsResponseV1Alpha5 is the response type for GET requests to the VPC Subnets endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/VPCSubnet" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "LoadBalancer": { "type": "object", "required": [ "id", "name", "network_interfaces", "destinations", "location", "protocols", "algorithm", "ips" ], "properties": { "algorithm": { "type": "string", "x-go-name": "Algorithm", "example": "random" }, "destinations": { "type": "array", "items": { "$ref": "#/definitions/NetworkTarget" }, "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "ips": { "type": "array", "items": { "$ref": "#/definitions/IPAddresses" }, "x-go-name": "IPs" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentraleast1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-subnet" }, "network_interfaces": { "type": "array", "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "x-go-name": "NetworkInterfaces" }, "protocols": { "type": "array", "items": { "type": "string" }, "x-go-name": "Protocols", "example": "[tcp]" }, "type": { "type": "string", "x-go-name": "Type", "example": "internal_ipv4," } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "LoadBalancerNetworkInterface": { "type": "object", "properties": { "network_id": { "type": "string", "x-go-name": "NetworkID", "example": "dbaafd53-96ea-4754-9cce-78e7f08ac151" }, "subnet_id": { "type": "string", "x-go-name": "SubnetID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "LoadBalancersPatchRequestV1Alpha5": { "type": "object", "properties": { "destinations": { "type": "array", "items": { "$ref": "#/definitions/NetworkTarget" }, "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-load-balancer" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "LoadBalancersPostRequest": { "type": "object", "required": [ "name", "destinations", "location", "protocols", "network_interfaces", "algorithm" ], "properties": { "algorithm": { "type": "string", "x-go-name": "Algorithm", "example": "random" }, "destinations": { "type": "array", "items": { "$ref": "#/definitions/NetworkTarget" }, "x-go-name": "Destinations" }, "health_check": { "$ref": "#/definitions/HealthCheckOptions" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentraleast1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-load-balancer" }, "network_interfaces": { "type": "array", "items": { "$ref": "#/definitions/LoadBalancerNetworkInterface" }, "x-go-name": "NetworkInterfaces" }, "protocols": { "type": "array", "items": { "type": "string" }, "x-go-name": "Protocols", "example": "[tcp]" }, "type": { "type": "string", "x-go-name": "Type", "example": "internal_ipv4" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "NetworkInterface": { "type": "object", "required": [ "id", "name", "network", "subnet", "interface_type", "mac_address", "ips" ], "properties": { "id": { "type": "string", "x-go-name": "ID", "example": "ca39e669-47ee-456b-968d-303234fbf99f" }, "interface_type": { "type": "string", "x-go-name": "InterfaceType", "example": "ethernet" }, "ips": { "type": "array", "items": { "$ref": "#/definitions/IPAddresses" }, "x-go-name": "IPs" }, "mac_address": { "type": "string", "x-go-name": "MACAddress", "example": "00:00:5e:00:53:af" }, "name": { "type": "string", "x-go-name": "Name", "example": "network-interface-1" }, "network": { "type": "string", "x-go-name": "Network", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "subnet": { "type": "string", "x-go-name": "Subnet", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "NetworkTarget": { "type": "object", "properties": { "cidr": { "type": "string", "x-go-name": "CIDR", "example": "10.1.2.3/24" }, "resource_id": { "type": "string", "x-go-name": "ResourceID", "example": "306aa10d-5570-4e47-88c9-46bf11bd8737" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Operation": { "description": "Individual resources that use Operations should populate the `metadata` field\nwith resource-specific information.", "type": "object", "title": "Operation contains the common fields for all Operation API objects.", "required": [ "operation_id", "state", "metadata", "started_at", "completed_at" ], "properties": { "completed_at": { "type": "string", "x-go-name": "CompletedAt", "example": "2021-12-03T19:59:34Z" }, "metadata": { "type": "object", "x-go-name": "Metadata", "example": {} }, "operation_id": { "type": "string", "x-go-name": "ID", "example": "F6EF489C-086E-458D-B812-7962964A28C9" }, "result": { "type": "object", "x-go-name": "Result", "example": {} }, "started_at": { "type": "string", "x-go-name": "StartedAt", "example": "2021-12-03T19:58:34Z" }, "state": { "type": "string", "enum": [ "IN_PROGRESS", "SUCCEEDED", "FAILED" ], "x-go-name": "State", "example": "IN_PROGRESS" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "PartialHostChannelAdapter": { "type": "object", "title": "PartialHostChannelAdapter is used when POSTing and PATCHing VMs to assign IB Partitions.", "properties": { "ib_partition_id": { "type": "string", "x-go-name": "IBPartitionID" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "PrivateIPv4Address": { "type": "object", "required": [ "address" ], "properties": { "address": { "type": "string", "x-go-name": "Address", "example": "10.1.2.3" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Project": { "type": "object", "title": "Project contains identifying information for a project.", "required": [ "id", "organization_id", "name", "relation" ], "properties": { "id": { "type": "string", "x-go-name": "ID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" }, "name": { "type": "string", "x-go-name": "Name", "example": "Admin" }, "organization_id": { "type": "string", "x-go-name": "OrganizationID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "relation": { "type": "string", "x-go-name": "Relation", "example": "owner" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProjectUsageResponse": { "type": "object", "required": [ "resource_type", "project_id", "region", "date", "quantity", "billable_metric" ], "properties": { "billable_metric": { "type": "string", "x-go-name": "Metric", "example": "\"gpu-hours\"" }, "date": { "type": "string", "x-go-name": "Date", "example": "\"2022-07-01\"" }, "project_id": { "type": "string", "x-go-name": "ProjectID", "example": "\"d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb\"" }, "quantity": { "type": "number", "format": "double", "x-go-name": "Quantity", "example": 2.123 }, "region": { "type": "string", "x-go-name": "Region", "example": "\"us-northcentral1\"" }, "resource_type": { "type": "string", "x-go-name": "ResourceType", "example": "\"a40.1x\"" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProjectsPostRequest": { "type": "object", "title": "ProjectsPostRequest is the request type for POST requests to the projects endpoint.", "required": [ "organization_id", "name" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "Admin" }, "organization_id": { "type": "string", "x-go-name": "OrganizationID", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProjectsPutPostResponseV1Alpha5": { "type": "object", "title": "ProjectsPutPostResponseV1Alpha5 is the response type for PUT and POST requests to the projects endpoint.", "required": [ "project" ], "properties": { "project": { "$ref": "#/definitions/Project" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProjectsPutRequest": { "type": "object", "title": "ProjectsPutRequest is the request type for PUT requests to the projects endpoint.", "required": [ "name" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "Crusoe Energy" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProspectPostRequest": { "type": "object", "title": "ProspectPostRequest is the request type for POST requests to the prospects endpoint.", "required": [ "email", "name", "company", "use_case", "source", "referral", "expected_commitment", "expected_capacity", "expected_service" ], "properties": { "company": { "type": "string", "x-go-name": "Company", "example": "crusoe" }, "email": { "type": "string", "x-go-name": "Email", "example": "john@crusoeenergy.com" }, "expected_capacity": { "type": "string", "enum": [ "\u003c64 GPUs", "64-128 GPUs", "128-256 GPUs", "256+ GPUs" ], "x-go-name": "ExpectedCapacity", "example": "\u003c64 GPUs" }, "expected_commitment": { "type": "string", "enum": [ "On-demand", "1 year", "2 year", "3 year" ], "x-go-name": "ExpectedCommitment", "example": "1 year" }, "expected_service": { "type": "array", "items": { "type": "string" }, "x-go-name": "ExpectedService", "example": "[Nvidia H100, Nvidia L40S]" }, "name": { "type": "string", "x-go-name": "Name", "example": "john" }, "referral": { "type": "string", "x-go-name": "Referral", "example": "marketing event" }, "source": { "type": "string", "x-go-name": "Source", "example": "portal" }, "use_case": { "type": "string", "x-go-name": "UseCase", "example": "training model to minimize energy usage" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "ProspectPostResponse": { "type": "object", "title": "ProspectPostResponse is the response type for POST requests to the prospects endpoint.", "properties": { "success": { "type": "boolean", "x-go-name": "Success", "example": true } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "PublicIPv4Address": { "type": "object", "required": [ "address", "id", "type" ], "properties": { "address": { "type": "string", "x-go-name": "Address", "example": "121.0.0.0" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "type": { "type": "string", "x-go-name": "Type", "example": "dynamic" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "SSHKey": { "type": "object", "required": [ "id", "name", "public_key", "created_at", "fingerprints" ], "properties": { "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2022-01-24T20:13:35.328Z" }, "fingerprints": { "$ref": "#/definitions/Fingerprints" }, "id": { "type": "string", "x-go-name": "ID", "example": "0b880f48-6a97-408f-8351-3cc30871e010" }, "name": { "type": "string", "x-go-name": "Name", "example": "public key 1" }, "public_key": { "type": "string", "x-go-name": "PublicKey", "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "TokenInfo": { "description": "These are the fields returned from a GET request.", "type": "object", "title": "TokenInfo contains the Traits Island stores for a Token inside of Kratos.", "required": [ "alias", "access_key", "created_at", "expires_at", "last_used" ], "properties": { "access_key": { "type": "string", "x-go-name": "AccessKey", "example": "Hm11C1coQZm2+Aihn9ofYg" }, "alias": { "type": "string", "x-go-name": "Alias", "example": "token1" }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "example": "2021-11-03T22:16:27Z" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt", "example": "2021-12-03T19:58:34Z" }, "last_used": { "type": "string", "x-go-name": "LastUsed", "example": "2021-11-03T22:22:55Z" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "TokensPostResponse": { "type": "object", "required": [ "token" ], "properties": { "token": { "$ref": "#/definitions/GeneratedToken" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "Type": { "type": "object", "title": "Types an instance of a Crusoe cloud offering, used in the GET vms.types endpoint response.", "required": [ "product_name", "description", "cpu_cores", "cpu_type", "memory_gb", "memory_type", "disk_gb", "disk_type", "num_gpu", "gpu_type" ], "properties": { "cpu_cores": { "type": "integer", "format": "int64", "x-go-name": "CPUCores", "example": 4 }, "cpu_type": { "type": "string", "x-go-name": "CPUType", "example": "intel" }, "description": { "type": "string", "x-go-name": "Description", "example": "2x Nvidia A100" }, "disk_gb": { "type": "integer", "format": "int64", "x-go-name": "DiskGB", "example": 8 }, "disk_type": { "type": "string", "x-go-name": "DiskType", "example": "SSD" }, "gpu_type": { "type": "string", "x-go-name": "GPUType", "example": "A100" }, "memory_gb": { "type": "integer", "format": "int64", "x-go-name": "MemoryGB", "example": 16 }, "memory_type": { "type": "string", "x-go-name": "MemoryType", "example": "RAM" }, "num_gpu": { "type": "integer", "format": "int64", "x-go-name": "NumGPU", "example": 2 }, "product_name": { "type": "string", "x-go-name": "ProductName", "example": "a100.2x" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "UsageByProjectGetResponse": { "type": "object", "title": "UsageByProjectGetResponse is the response type for GET requests to the usage.usageByProject endpoint.", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/ProjectUsageResponse" }, "x-go-name": "Items" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "UsageOptions": { "description": "UsageOptions contains the values which exist for the fields which we allow filtering\non for the usageByProjectGet endpoint.", "type": "object", "required": [ "projects", "resource_types", "regions", "start_date", "end_date" ], "properties": { "end_date": { "type": "string", "x-go-name": "EndDate", "example": "\"2023-08-08\"" }, "projects": { "type": "array", "items": { "type": "string" }, "x-go-name": "Projects", "example": [ "d8f58dfd-dd86-4ee4-8f01-643e6d0f15bb" ] }, "regions": { "type": "array", "items": { "type": "string" }, "x-go-name": "Regions", "example": [ "us-east1", "us-northcentral1" ] }, "resource_types": { "type": "array", "items": { "type": "string" }, "x-go-name": "ResourceTypes", "example": [ "persistent-ssd", "a40.1x" ] }, "start_date": { "type": "string", "x-go-name": "StartDate", "example": "\"2022-07-01\"" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "UserResponse": { "description": "The Identity of a user is returned.", "type": "object", "title": "UserResponse is the return type from the GET and PUT handlers to User.", "required": [ "identity" ], "properties": { "identity": { "$ref": "#/definitions/Identity" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VMAttachmentType": { "type": "string", "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VMAttachmentV1Alpha5": { "type": "object", "required": [ "vm_id", "attachment_type" ], "properties": { "attachment_type": { "$ref": "#/definitions/VMAttachmentType" }, "mode": { "$ref": "#/definitions/DiskModeType" }, "vm_id": { "type": "string", "x-go-name": "VMID", "example": "123e4567-e89b-12d3-a456-426614174000" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCFirewallRule": { "type": "object", "required": [ "id", "name", "direction", "action", "vpc_network_id", "state", "sources", "source_ports", "destinations", "destination_ports", "protocols" ], "properties": { "action": { "type": "string", "enum": [ "allow", "deny" ], "x-go-name": "Action", "example": "allow" }, "destination_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "DestinationPorts", "example": "[80, 443, 3000-8080]" }, "destinations": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Destinations" }, "direction": { "type": "string", "enum": [ "ingress", "egress" ], "x-go-name": "Direction", "example": "ingress" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-firewall-rule" }, "protocols": { "type": "array", "items": { "type": "string" }, "x-go-name": "Protocols", "example": "[tcp, udp]" }, "source_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "SourcePorts", "example": "[80, 443, 3000-8080]" }, "sources": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Sources" }, "state": { "type": "string", "enum": [ "active", "inactive" ], "x-go-name": "State", "example": "active" }, "vpc_network_id": { "type": "string", "x-go-name": "VPCNetworkID", "example": "74927f69-f6f6-43f4-bc0d-7bb2e864250e" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCFirewallRulesPatchRequest": { "type": "object", "title": "VPCFirewallRulesPatchRequest is the request type for PATCH requests to the VPC networks endpoint.", "properties": { "destination_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "DestinationPorts", "example": "[80, 443, 3000-8080]" }, "destinations": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Destinations" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-firewall-rule" }, "protocols": { "type": "array", "items": { "type": "string" }, "x-go-name": "Protocols", "example": "[tcp, udp]" }, "source_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "SourcePorts", "example": "[80, 443, 3000-8080]" }, "sources": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Sources" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCFirewallRulesPostRequestV1Alpha5": { "type": "object", "title": "VPCFirewallRulesPostRequest is the request type for POST requests to the VPC networks endpoint.", "required": [ "name", "direction", "action", "sources", "destinations", "protocols", "vpc_network_id" ], "properties": { "action": { "type": "string", "enum": [ "allow", "deny" ], "x-go-name": "Action", "example": "allow" }, "destination_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "DestinationPorts", "example": "[80, 443, 3000-8080]" }, "destinations": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Destinations" }, "direction": { "type": "string", "enum": [ "ingress", "egress" ], "x-go-name": "Direction", "example": "ingress" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-firewall-rule" }, "protocols": { "type": "array", "items": { "type": "string" }, "x-go-name": "Protocols", "example": "[tcp, udp]" }, "source_ports": { "type": "array", "items": { "type": "string" }, "x-go-name": "SourcePorts", "example": "[80, 443, 3000-8080]" }, "sources": { "type": "array", "items": { "$ref": "#/definitions/FirewallRuleObject" }, "x-go-name": "Sources" }, "vpc_network_id": { "type": "string", "x-go-name": "VPCNetworkID", "example": "09ae8411-0fbb-411c-898c-2b8f19622ae1" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCNetwork": { "type": "object", "required": [ "id", "name", "subnets", "gateway", "cidr" ], "properties": { "cidr": { "type": "string", "x-go-name": "CIDR", "example": "121.0.0.0/20" }, "gateway": { "type": "string", "x-go-name": "Gateway", "example": "11bf5b4c-e0e5-4017-bdb8-3861f3acedc1" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "name": { "type": "string", "x-go-name": "Name", "example": "default-ethernet" }, "subnets": { "type": "array", "items": { "type": "string" }, "x-go-name": "Subnets", "example": "[1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc]" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCNetworkPatchRequest": { "type": "object", "title": "VPCNetworkPatchRequest is the request type for PATCH requests to the VPC Networks endpoint.", "required": [ "name" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "my-cool-vpc-network" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCNetworkPostRequest": { "type": "object", "title": "VPCNetworkPostRequest is the request type for POST requests to the VPC Networks endpoint.", "required": [ "name", "cidr" ], "properties": { "cidr": { "type": "string", "x-go-name": "Cidr", "example": "172.27.0.0/16" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-cool-vpc-network" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCNetworkPostResponse": { "type": "object", "title": "VPCNetworkPostResponse is the response type for POST requests to the VPC Networks endpoint.", "required": [ "network" ], "properties": { "network": { "$ref": "#/definitions/VPCNetwork" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCSubnet": { "type": "object", "required": [ "id", "name", "vpc_network_id", "cidr", "location" ], "properties": { "cidr": { "type": "string", "x-go-name": "CIDR", "example": "121.0.0.0/24" }, "id": { "type": "string", "x-go-name": "ID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-northcentraleast1-a" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-subnet" }, "vpc_network_id": { "type": "string", "x-go-name": "VPCNetworkID", "example": "1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCSubnetPatchRequest": { "type": "object", "title": "VPCSubnetPatchRequest is the request type for PATCH requests to the VPC Subnets endpoint.", "required": [ "name" ], "properties": { "name": { "type": "string", "x-go-name": "Name", "example": "my-cool-vpc-subnet" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCSubnetPostRequest": { "type": "object", "title": "VPCSubnetPostRequest is the request type for POST requests to the VPC Subnet endpoint.", "required": [ "name", "cidr", "vpc_network_id", "location" ], "properties": { "cidr": { "type": "string", "x-go-name": "Cidr", "example": "172.27.0.0/16" }, "location": { "type": "string", "x-go-name": "Location", "example": "us-east" }, "name": { "type": "string", "x-go-name": "Name", "example": "my-cool-vpc-subnet" }, "vpc_network_id": { "type": "string", "x-go-name": "VPCNetworkID", "example": "36c0b0d9-8b68-4869-addb-227b06b64ee0" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VPCSubnetPostResponse": { "type": "object", "title": "VPCSubnetPostResponse is the response type for POST requests to the VPC Subnets endpoint.", "required": [ "subnet" ], "properties": { "subnet": { "$ref": "#/definitions/VPCSubnet" } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" }, "VirtualizationFeatures": { "type": "object", "properties": { "nested_virtualization": { "type": "boolean", "x-go-name": "NestedVirtualization", "example": true } }, "x-go-package": "gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers" } }, "responses": { "WrappedErrorBody": { "description": "WrappedErrorBody is a baseline Error Response Object\nThe body of every error response type must have the same structure as handlers.ErrorBody", "schema": { "$ref": "#/definitions/ErrorBody" }, "headers": { "Body": {} } }, "asyncOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/AsyncOperationResponse" } }, "authError": { "description": "Error Authentication Failed", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "x-go-name": "Code", "example": "401" }, "message": { "type": "string", "x-go-name": "Message", "example": "bad_credential" } } } }, "badReqError": { "description": "Error Bad Request", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "x-go-name": "Code", "example": "400" }, "message": { "type": "string", "x-go-name": "Message", "example": "bad_request" } } } }, "billingIntentGetResponse": { "description": "", "schema": { "$ref": "#/definitions/BillingIntentGetResponse" } }, "capacitiesResponse": { "description": "", "schema": { "$ref": "#/definitions/ListCapacitiesResponseV1Alpha5" } }, "createInstanceGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceGroup" } }, "createInstanceTemplateResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceTemplate" } }, "createSSHKeysResponse": { "description": "", "schema": { "$ref": "#/definitions/CreateSSHKeyResponse" } }, "emptyResponse": { "description": "Empty Response" }, "featureFlagsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/FeatureFlagsGetResponse" } }, "getDiskResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskV1Alpha5" } }, "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" } }, "getLoadBalancerResponse": { "description": "", "schema": { "$ref": "#/definitions/LoadBalancer" } }, "getOperationResponse": { "description": "", "schema": { "$ref": "#/definitions/Operation" } }, "getProjectResponse": { "description": "", "schema": { "$ref": "#/definitions/Project" } }, "getSSHKeysResponse": { "description": "", "schema": { "$ref": "#/definitions/ListSSHKeysResponseV1Alpha5" } }, "getSnapshotResponse": { "description": "", "schema": { "$ref": "#/definitions/DiskSnapshot" } }, "getVPCNetworkResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCNetwork" } }, "getVpcFirewallRuleResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCFirewallRule" } }, "getVpcSubnetResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCSubnet" } }, "ibPartitionsPostResponse": { "description": "", "schema": { "$ref": "#/definitions/IBPartition" } }, "listDiskSnapshotsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDiskSnapshotsResponseV1Alpha5" } }, "listDisksResponse": { "description": "", "schema": { "$ref": "#/definitions/ListDisksResponseV1Alpha5" } }, "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" } }, "listLoadBalancersResponse": { "description": "", "schema": { "$ref": "#/definitions/ListLoadBalancersResponseV1Alpha5" } }, "listOperationsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListOperationsResponseV1Alpha5" } }, "listProjectsResponse": { "description": "", "schema": { "$ref": "#/definitions/ListProjectsResponseV1Alpha5" } }, "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": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "x-go-name": "Code", "example": "404" }, "message": { "type": "string", "x-go-name": "Message", "example": "not_found" } } } }, "organizationsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/ListEntitiesResponseV1Alpha5" } }, "organizationsPutPostResponse": { "description": "", "schema": { "$ref": "#/definitions/EntitiesPutPostResponse" } }, "patchInstanceGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/InstanceGroup" } }, "permissionsError": { "description": "Error Permissions", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "x-go-name": "Code", "example": "403" }, "message": { "type": "string", "x-go-name": "Message", "example": "unauthorized" } } } }, "projectsPutPostResponse": { "description": "", "schema": { "$ref": "#/definitions/ProjectsPutPostResponseV1Alpha5" } }, "prospectPostResponse": { "description": "", "schema": { "$ref": "#/definitions/ProspectPostResponse" } }, "serverError": { "description": "Error Internal Server", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "x-go-name": "Code", "example": "500" }, "message": { "type": "string", "x-go-name": "Message", "example": "internal_error" } } } }, "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" } }, "usageExportGetResponse": { "description": "", "headers": { "metric": { "type": "string", "example": "instance-hours" }, "project_id": { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "quantity": { "type": "number", "format": "double", "example": "261.271111" }, "region": { "type": "string", "example": "us-east1" }, "resource_id": { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" }, "resource_type": { "type": "string", "example": "a40.1x" }, "usage_date": { "type": "string", "example": "ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab" } } }, "usageGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageByProjectGetResponse" } }, "usageOptionsGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageOptions" } }, "usersGetResponse": { "description": "", "schema": { "$ref": "#/definitions/UserResponse" } }, "usersPutResponse": { "description": "", "schema": { "$ref": "#/definitions/UserResponse" } }, "vpcNetworkPostResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCNetworkPostResponse" } }, "vpcSubnetPostResponse": { "description": "", "schema": { "$ref": "#/definitions/VPCSubnetPostResponse" } } }, "x-tagGroups": [ { "name": "Compute", "tags": [ "VMs", "VM-Operations", "Images", "Instance-Templates", "Instance-Groups" ] }, { "name": "Organizations", "tags": [ "Projects", "Billing", "Entities", "Prospects", "Usage" ] }, { "name": "Users", "tags": [ "Identities", "SSH-Keys", "Tokens" ] }, { "name": "Storage", "tags": [ "Disks", "Disk-Operations", "Snapshots", "Snapshot-Operations" ] }, { "name": "Networking", "tags": [ "VPC-Firewall-Rules", "VPC-Firewall-Rule-Operations", "VPC-Networks", "VPC-Subnets", "Internet-Gateways", "Load-Balancers", "Load-Balancer-Operations" ] }, { "name": "Locations", "tags": [ "Locations" ] }, { "name": "Capacities", "tags": [ "Capacities" ] } ] }