{ "openapi": "3.0.3", "info": { "title": "Oxide Region API", "description": "API for interacting with the Oxide control plane", "contact": { "url": "https://oxide.computer", "email": "api@oxide.computer" }, "version": "0.0.1" }, "paths": { "/hardware/racks": { "get": { "description": "List racks in the system.", "operationId": "hardware_racks_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/IdSortMode" }, "style": "form" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RackResultsPage" } } } } }, "x-dropshot-pagination": true } }, "/hardware/racks/{rack_id}": { "get": { "description": "Fetch information about a particular rack.", "operationId": "hardware_racks_get_rack", "parameters": [ { "in": "path", "name": "rack_id", "required": true, "schema": { "description": "The rack's unique ID.", "type": "string", "format": "uuid" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Rack" } } } } } } }, "/hardware/sleds": { "get": { "description": "List sleds in the system.", "operationId": "hardware_sleds_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/IdSortMode" }, "style": "form" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SledResultsPage" } } } } }, "x-dropshot-pagination": true } }, "/hardware/sleds/{sled_id}": { "get": { "description": "Fetch information about a sled in the system.", "operationId": "hardware_sleds_get_sled", "parameters": [ { "in": "path", "name": "sled_id", "required": true, "schema": { "description": "The sled's unique ID.", "type": "string", "format": "uuid" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Sled" } } } } } } }, "/login": { "post": { "operationId": "spoof_login", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginParams" } } }, "required": true }, "responses": {} } }, "/logout": { "post": { "operationId": "logout", "responses": {} } }, "/organizations": { "get": { "description": "List all organizations.", "operationId": "organizations_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameOrIdSortMode" }, "style": "form" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a new organization.", "operationId": "organizations_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organization" } } } } } } }, "/organizations/{organization_name}": { "get": { "description": "Fetch a specific organization", "operationId": "organizations_get_organization", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organization" } } } } } }, "put": { "description": "Update a specific organization.\n * TODO-correctness: Is it valid for PUT to accept application/json that's a subset of what the resource actually represents? If not, is that a problem? (HTTP may require that this be idempotent.) If so, can we get around that having this be a slightly different content-type (e.g., \"application/json-patch\")? We should see what other APIs do.", "operationId": "organizations_put_organization", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationUpdate" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organization" } } } } } }, "delete": { "description": "Delete a specific organization.", "operationId": "organizations_delete_organization", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects": { "get": { "description": "List all projects.", "operationId": "organization_projects_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameOrIdSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a new project.", "operationId": "organization_projects_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}": { "get": { "description": "Fetch a specific project", "operationId": "organization_projects_get_project", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } } }, "put": { "description": "Update a specific project.\n * TODO-correctness: Is it valid for PUT to accept application/json that's a subset of what the resource actually represents? If not, is that a problem? (HTTP may require that this be idempotent.) If so, can we get around that having this be a slightly different content-type (e.g., \"application/json-patch\")? We should see what other APIs do.", "operationId": "organization_projects_put_project", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectUpdate" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } } }, "delete": { "description": "Delete a specific project.", "operationId": "organization_projects_delete_project", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/disks": { "get": { "description": "List disks in a project.", "operationId": "project_disks_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiskResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a disk in a project.\n * TODO-correctness See note about instance create. This should be async.", "operationId": "project_disks_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiskCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Disk" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/disks/{disk_name}": { "get": { "description": "Fetch a single disk in a project.", "operationId": "project_disks_get_disk", "parameters": [ { "in": "path", "name": "disk_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Disk" } } } } } }, "delete": { "description": "Delete a disk from a project.", "operationId": "project_disks_delete_disk", "parameters": [ { "in": "path", "name": "disk_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/instances": { "get": { "description": "List instances in a project.", "operationId": "project_instances_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create an instance in a project.\n * TODO-correctness This is supposed to be async. Is that right? We can create the instance immediately -- it's just not booted yet. Maybe the boot operation is what's a separate operation_id. What about the response code (201 Created vs 202 Accepted)? Is that orthogonal? Things can return a useful response, including an operation id, with either response code. Maybe a \"reboot\" operation would return a 202 Accepted because there's no actual resource created?", "operationId": "project_instances_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}": { "get": { "description": "Get an instance in a project.", "operationId": "project_instances_get_instance", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" } } } } } }, "delete": { "description": "Delete an instance from a project.", "operationId": "project_instances_delete_instance", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks": { "get": { "description": "List disks attached to this instance.", "operationId": "instance_disks_get", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "title": "Array_of_DiskAttachment", "type": "array", "items": { "$ref": "#/components/schemas/DiskAttachment" } } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks/{disk_name}": { "get": { "description": "Fetch a description of the attachment of this disk to this instance.", "operationId": "instance_disks_get_disk", "parameters": [ { "in": "path", "name": "disk_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiskAttachment" } } } } } }, "put": { "description": "Attach a disk to this instance.", "operationId": "instance_disks_put_disk", "parameters": [ { "in": "path", "name": "disk_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiskAttachment" } } } } } }, "delete": { "description": "Detach a disk from this instance.", "operationId": "instance_disks_delete_disk", "parameters": [ { "in": "path", "name": "disk_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/reboot": { "post": { "description": "Reboot an instance.", "operationId": "project_instances_instance_reboot", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "202": { "description": "successfully enqueued operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/start": { "post": { "description": "Boot an instance.", "operationId": "project_instances_instance_start", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "202": { "description": "successfully enqueued operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/stop": { "post": { "description": "Halt an instance.", "operationId": "project_instances_instance_stop", "parameters": [ { "in": "path", "name": "instance_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "202": { "description": "successfully enqueued operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Instance" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs": { "get": { "description": "List VPCs in a project.", "operationId": "project_vpcs_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a VPC in a project.", "operationId": "project_vpcs_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vpc" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}": { "get": { "description": "Get a VPC in a project.", "operationId": "project_vpcs_get_vpc", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vpc" } } } } } }, "put": { "description": "Update a VPC.", "operationId": "project_vpcs_put_vpc", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcUpdate" } } }, "required": true }, "responses": { "200": { "description": "successful operation" } } }, "delete": { "description": "Delete a vpc from a project.", "operationId": "project_vpcs_delete_vpc", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/firewall/rules": { "get": { "description": "List firewall rules for a VPC.", "operationId": "vpc_firewall_rules_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcFirewallRuleResultsPage" } } } } }, "x-dropshot-pagination": true }, "put": { "description": "Replace the firewall rules for a VPC", "operationId": "vpc_firewall_rules_put", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcFirewallRuleUpdateParams" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcFirewallRuleUpdateResult" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers": { "get": { "description": "List VPC Custom and System Routers", "operationId": "vpc_routers_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcRouterResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a VPC Router", "operationId": "vpc_routers_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcRouterCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcRouter" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}": { "get": { "description": "Get a VPC Router", "operationId": "vpc_routers_get_router", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcRouter" } } } } } }, "put": { "description": "Update a VPC Router", "operationId": "vpc_routers_put_router", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcRouterUpdate" } } }, "required": true }, "responses": { "200": { "description": "successful operation" } } }, "delete": { "description": "Delete a router from its VPC", "operationId": "vpc_routers_delete_router", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}/routes": { "get": { "description": "List a Router's routes", "operationId": "routers_routes_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterRouteResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a VPC Router", "operationId": "routers_routes_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterRouteCreateParams" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterRoute" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}/routes/{route_name}": { "get": { "description": "Get a VPC Router route", "operationId": "routers_routes_get_route", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "route_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterRoute" } } } } } }, "put": { "description": "Update a Router route", "operationId": "routers_routes_put_route", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "route_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterRouteUpdateParams" } } }, "required": true }, "responses": { "200": { "description": "successful operation" } } }, "delete": { "description": "Delete a route from its router", "operationId": "routers_routes_delete_route", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "route_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "router_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/subnets": { "get": { "description": "List subnets in a VPC.", "operationId": "vpc_subnets_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" }, { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcSubnetResultsPage" } } } } }, "x-dropshot-pagination": true }, "post": { "description": "Create a subnet in a VPC.", "operationId": "vpc_subnets_post", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcSubnetCreate" } } }, "required": true }, "responses": { "201": { "description": "successful creation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcSubnet" } } } } } } }, "/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/subnets/{subnet_name}": { "get": { "description": "Get subnet in a VPC.", "operationId": "vpc_subnets_get_subnet", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "subnet_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcSubnet" } } } } } }, "put": { "description": "Update a VPC Subnet.", "operationId": "vpc_subnets_put_subnet", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "subnet_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VpcSubnetUpdate" } } }, "required": true }, "responses": { "200": { "description": "successful operation" } } }, "delete": { "description": "Delete a subnet from a VPC.", "operationId": "vpc_subnets_delete_subnet", "parameters": [ { "in": "path", "name": "organization_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "project_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "subnet_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" }, { "in": "path", "name": "vpc_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "204": { "description": "successful deletion" } } } }, "/sagas": { "get": { "description": "List all sagas (for debugging)", "operationId": "sagas_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/IdSortMode" }, "style": "form" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SagaResultsPage" } } } } }, "x-dropshot-pagination": true } }, "/sagas/{saga_id}": { "get": { "description": "Fetch information about a single saga (for debugging)", "operationId": "sagas_get_saga", "parameters": [ { "in": "path", "name": "saga_id", "required": true, "schema": { "type": "string", "format": "uuid" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Saga" } } } } } } }, "/users": { "get": { "description": "List the built-in system users", "operationId": "users_get", "parameters": [ { "in": "query", "name": "limit", "schema": { "nullable": true, "description": "Maximum number of items returned by a single call", "type": "integer", "format": "uint32", "minimum": 1 }, "style": "form" }, { "in": "query", "name": "page_token", "schema": { "nullable": true, "description": "Token returned by previous call to retreive the subsequent page", "type": "string" }, "style": "form" }, { "in": "query", "name": "sort_by", "schema": { "$ref": "#/components/schemas/NameSortMode" }, "style": "form" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResultsPage" } } } } }, "x-dropshot-pagination": true } }, "/users/{user_name}": { "get": { "description": "Fetch a specific built-in system user", "operationId": "users_get_user", "parameters": [ { "in": "path", "name": "user_name", "required": true, "schema": { "$ref": "#/components/schemas/Name" }, "style": "simple" } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } } } } } } }, "components": { "schemas": { "ByteCount": { "description": "A count of bytes, typically used either for memory or storage capacity\n\nThe maximum supported byte count is [`i64::MAX`]. This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX). We provide all of these for consumers' convenience.", "type": "integer", "format": "uint64", "minimum": 0 }, "Disk": { "description": "Client view of an [`Disk`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "devicePath": { "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "projectId": { "type": "string", "format": "uuid" }, "size": { "$ref": "#/components/schemas/ByteCount" }, "snapshotId": { "nullable": true, "type": "string", "format": "uuid" }, "state": { "$ref": "#/components/schemas/DiskState" }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "devicePath", "id", "name", "projectId", "size", "state", "timeCreated", "timeModified" ] }, "DiskAttachment": { "description": "Describes a Disk's attachment to an Instance", "type": "object", "properties": { "diskId": { "type": "string", "format": "uuid" }, "diskName": { "$ref": "#/components/schemas/Name" }, "diskState": { "$ref": "#/components/schemas/DiskState" }, "instanceId": { "type": "string", "format": "uuid" } }, "required": [ "diskId", "diskName", "diskState", "instanceId" ] }, "DiskCreate": { "description": "Create-time parameters for a [`Disk`]", "type": "object", "properties": { "description": { "type": "string" }, "name": { "$ref": "#/components/schemas/Name" }, "size": { "description": "size of the Disk", "allOf": [ { "$ref": "#/components/schemas/ByteCount" } ] }, "snapshotId": { "nullable": true, "description": "id for snapshot from which the Disk should be created, if any", "type": "string", "format": "uuid" } }, "required": [ "description", "name", "size" ] }, "DiskResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Disk" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "DiskState": { "description": "State of a Disk (primarily: attached or not)", "oneOf": [ { "description": "Disk is being initialized", "type": "object", "properties": { "state": { "type": "string", "enum": [ "creating" ] } }, "required": [ "state" ] }, { "description": "Disk is ready but detached from any Instance", "type": "object", "properties": { "state": { "type": "string", "enum": [ "detached" ] } }, "required": [ "state" ] }, { "description": "Disk is being attached to the given Instance", "type": "object", "properties": { "instance": { "type": "string", "format": "uuid" }, "state": { "type": "string", "enum": [ "attaching" ] } }, "required": [ "instance", "state" ] }, { "description": "Disk is attached to the given Instance", "type": "object", "properties": { "instance": { "type": "string", "format": "uuid" }, "state": { "type": "string", "enum": [ "attached" ] } }, "required": [ "instance", "state" ] }, { "description": "Disk is being detached from the given Instance", "type": "object", "properties": { "instance": { "type": "string", "format": "uuid" }, "state": { "type": "string", "enum": [ "detaching" ] } }, "required": [ "instance", "state" ] }, { "description": "Disk has been destroyed", "type": "object", "properties": { "state": { "type": "string", "enum": [ "destroyed" ] } }, "required": [ "state" ] }, { "description": "Disk is unavailable", "type": "object", "properties": { "state": { "type": "string", "enum": [ "faulted" ] } }, "required": [ "state" ] } ] }, "IdentityMetadata": { "description": "Identity-related metadata that's included in nearly all public API objects", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "id", "name", "timeCreated", "timeModified" ] }, "Instance": { "description": "Client view of an [`Instance`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "hostname": { "description": "RFC1035-compliant hostname for the Instance.", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "memory": { "description": "memory allocated for this Instance", "allOf": [ { "$ref": "#/components/schemas/ByteCount" } ] }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "ncpus": { "description": "number of CPUs allocated for this Instance", "allOf": [ { "$ref": "#/components/schemas/InstanceCpuCount" } ] }, "projectId": { "description": "id for the project containing this Instance", "type": "string", "format": "uuid" }, "runState": { "$ref": "#/components/schemas/InstanceState" }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" }, "timeRunStateUpdated": { "type": "string", "format": "date-time" } }, "required": [ "description", "hostname", "id", "memory", "name", "ncpus", "projectId", "runState", "timeCreated", "timeModified", "timeRunStateUpdated" ] }, "InstanceCpuCount": { "description": "The number of CPUs in an Instance", "type": "integer", "format": "uint16", "minimum": 0 }, "InstanceCreate": { "description": "Create-time parameters for an [`Instance`]", "type": "object", "properties": { "description": { "type": "string" }, "hostname": { "type": "string" }, "memory": { "$ref": "#/components/schemas/ByteCount" }, "name": { "$ref": "#/components/schemas/Name" }, "ncpus": { "$ref": "#/components/schemas/InstanceCpuCount" } }, "required": [ "description", "hostname", "memory", "name", "ncpus" ] }, "InstanceResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Instance" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "InstanceState": { "description": "Running state of an Instance (primarily: booted or stopped)\n\nThis typically reflects whether it's starting, running, stopping, or stopped, but also includes states related to the Instance's lifecycle", "type": "string", "enum": [ "creating", "starting", "running", "stopping", "stopped", "rebooting", "repairing", "failed", "destroyed" ] }, "Ipv4Net": { "title": "An IPv4 subnet", "description": "An IPv4 subnet, including prefix and subnet mask", "type": "string", "pattern": "^(10\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9]\\.){2}(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[0-9]|2[0-8]|[8-9]))$^(172\\.16\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[2-9]|2[0-8]))$^(192\\.168\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[6-9]|2[0-8]))$", "maxLength": 18 }, "Ipv6Net": { "title": "An IPv6 subnet", "description": "An IPv6 subnet, including prefix and subnet mask", "type": "string", "pattern": "^(fd|FD)00:((([0-9a-fA-F]{1,4}\\:){6}[0-9a-fA-F]{1,4})|(([0-9a-fA-F]{1,4}:){1,6}:))/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$", "maxLength": 43 }, "L4PortRange": { "title": "A range of IP ports", "description": "An inclusive-inclusive range of IP ports. The second port may be omitted to represent a single port", "type": "string", "pattern": "^[0-9]{1,5}(-[0-9]{1,5})?$", "minLength": 1, "maxLength": 11 }, "LoginParams": { "type": "object", "properties": { "username": { "type": "string" } }, "required": [ "username" ] }, "Name": { "title": "A name used in the API", "description": "Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.", "type": "string", "pattern": "[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])", "maxLength": 63 }, "Organization": { "description": "Client view of an [`Organization`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "id", "name", "timeCreated", "timeModified" ] }, "OrganizationCreate": { "description": "Create-time parameters for an [`Organization`]", "type": "object", "properties": { "description": { "type": "string" }, "name": { "$ref": "#/components/schemas/Name" } }, "required": [ "description", "name" ] }, "OrganizationResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Organization" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "OrganizationUpdate": { "description": "Updateable properties of an [`Organization`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] } } }, "Project": { "description": "Client view of a [`Project`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "organizationId": { "type": "string", "format": "uuid" }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "id", "name", "organizationId", "timeCreated", "timeModified" ] }, "ProjectCreate": { "description": "Create-time parameters for a [`Project`]", "type": "object", "properties": { "description": { "type": "string" }, "name": { "$ref": "#/components/schemas/Name" } }, "required": [ "description", "name" ] }, "ProjectResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Project" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "ProjectUpdate": { "description": "Updateable properties of a [`Project`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] } } }, "Rack": { "description": "Client view of an [`Rack`]", "type": "object", "properties": { "identity": { "$ref": "#/components/schemas/IdentityMetadata" } }, "required": [ "identity" ] }, "RackResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Rack" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "RouteDestination": { "description": "A subset of [`NetworkTarget`], `RouteDestination` specifies the kind of network traffic that will be matched to be forwarded to the [`RouteTarget`].", "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ip" ] }, "value": { "type": "string", "format": "ip" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vpc" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "subnet" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] } ] }, "RouteTarget": { "description": "A subset of [`NetworkTarget`], `RouteTarget` specifies all possible targets that a route can forward to.", "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ip" ] }, "value": { "type": "string", "format": "ip" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vpc" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "subnet" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "instance" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "internetGateway" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] } ] }, "RouterRoute": { "description": "A route defines a rule that governs where traffic should be sent based on its destination.", "type": "object", "properties": { "destination": { "$ref": "#/components/schemas/RouteDestination" }, "identity": { "description": "common identifying metadata", "allOf": [ { "$ref": "#/components/schemas/IdentityMetadata" } ] }, "kind": { "description": "Describes the kind of router. Set at creation. `read-only`", "allOf": [ { "$ref": "#/components/schemas/RouterRouteKind" } ] }, "router_id": { "description": "The VPC Router to which the route belongs.", "type": "string", "format": "uuid" }, "target": { "$ref": "#/components/schemas/RouteTarget" } }, "required": [ "destination", "identity", "kind", "router_id", "target" ] }, "RouterRouteCreateParams": { "description": "Create-time parameters for a [`RouterRoute`]", "type": "object", "properties": { "description": { "type": "string" }, "destination": { "$ref": "#/components/schemas/RouteDestination" }, "name": { "$ref": "#/components/schemas/Name" }, "target": { "$ref": "#/components/schemas/RouteTarget" } }, "required": [ "description", "destination", "name", "target" ] }, "RouterRouteKind": { "description": "The classification of a [`RouterRoute`] as defined by the system. The kind determines certain attributes such as if the route is modifiable and describes how or where the route was created.\n\nSee [RFD-21](https://rfd.shared.oxide.computer/rfd/0021#concept-router) for more context", "type": "string", "enum": [ "Default", "VpcSubnet", "VpcPeering", "Custom" ] }, "RouterRouteResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/RouterRoute" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "RouterRouteUpdateParams": { "description": "Updateable properties of a [`RouterRoute`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "destination": { "$ref": "#/components/schemas/RouteDestination" }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "target": { "$ref": "#/components/schemas/RouteTarget" } }, "required": [ "destination", "target" ] }, "Saga": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "state": { "$ref": "#/components/schemas/SagaState" } }, "required": [ "id", "state" ] }, "SagaErrorInfo": { "oneOf": [ { "type": "object", "properties": { "error": { "type": "string", "enum": [ "actionFailed" ] }, "source_error": {} }, "required": [ "error", "source_error" ] }, { "type": "object", "properties": { "error": { "type": "string", "enum": [ "deserializeFailed" ] }, "message": { "type": "string" } }, "required": [ "error", "message" ] }, { "type": "object", "properties": { "error": { "type": "string", "enum": [ "injectedError" ] } }, "required": [ "error" ] }, { "type": "object", "properties": { "error": { "type": "string", "enum": [ "serializeFailed" ] }, "message": { "type": "string" } }, "required": [ "error", "message" ] }, { "type": "object", "properties": { "error": { "type": "string", "enum": [ "subsagaCreateFailed" ] }, "message": { "type": "string" } }, "required": [ "error", "message" ] } ] }, "SagaResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Saga" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "SagaState": { "oneOf": [ { "type": "object", "properties": { "state": { "type": "string", "enum": [ "running" ] } }, "required": [ "state" ] }, { "type": "object", "properties": { "state": { "type": "string", "enum": [ "succeeded" ] } }, "required": [ "state" ] }, { "type": "object", "properties": { "error_info": { "$ref": "#/components/schemas/SagaErrorInfo" }, "error_node_name": { "type": "string" }, "state": { "type": "string", "enum": [ "failed" ] } }, "required": [ "error_info", "error_node_name", "state" ] } ] }, "Sled": { "description": "Client view of an [`Sled`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "serviceAddress": { "type": "string" }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "id", "name", "serviceAddress", "timeCreated", "timeModified" ] }, "SledResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Sled" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "User": { "description": "Client view of a [`User`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "id", "name", "timeCreated", "timeModified" ] }, "UserResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/User" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "Vpc": { "description": "Client view of a [`Vpc`]", "type": "object", "properties": { "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "dnsName": { "description": "The name used for the VPC in DNS.", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "id": { "description": "unique, immutable, system-controlled identifier for each resource", "type": "string", "format": "uuid" }, "name": { "description": "unique, mutable, user-controlled identifier for each resource", "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "projectId": { "description": "id for the project containing this VPC", "type": "string", "format": "uuid" }, "systemRouterId": { "description": "id for the system router where subnet default routes are registered", "type": "string", "format": "uuid" }, "timeCreated": { "description": "timestamp when this resource was created", "type": "string", "format": "date-time" }, "timeModified": { "description": "timestamp when this resource was last modified", "type": "string", "format": "date-time" } }, "required": [ "description", "dnsName", "id", "name", "projectId", "systemRouterId", "timeCreated", "timeModified" ] }, "VpcCreate": { "description": "Create-time parameters for a [`Vpc`]", "type": "object", "properties": { "description": { "type": "string" }, "dnsName": { "$ref": "#/components/schemas/Name" }, "name": { "$ref": "#/components/schemas/Name" } }, "required": [ "description", "dnsName", "name" ] }, "VpcFirewallRule": { "description": "A single rule in a VPC firewall", "type": "object", "properties": { "action": { "description": "whether traffic matching the rule should be allowed or dropped", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleAction" } ] }, "direction": { "description": "whether this rule is for incoming or outgoing traffic", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleDirection" } ] }, "filters": { "description": "reductions on the scope of the rule", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleFilter" } ] }, "identity": { "description": "common identifying metadata", "allOf": [ { "$ref": "#/components/schemas/IdentityMetadata" } ] }, "priority": { "description": "the relative priority of this rule", "type": "integer", "format": "uint16", "minimum": 0 }, "status": { "description": "whether this rule is in effect", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleStatus" } ] }, "targets": { "description": "list of sets of instances that the rule applies to", "type": "array", "items": { "$ref": "#/components/schemas/VpcFirewallRuleTarget" } } }, "required": [ "action", "direction", "filters", "identity", "priority", "status", "targets" ] }, "VpcFirewallRuleAction": { "type": "string", "enum": [ "allow", "deny" ] }, "VpcFirewallRuleDirection": { "type": "string", "enum": [ "inbound", "outbound" ] }, "VpcFirewallRuleFilter": { "description": "Filter for a firewall rule. A given packet must match every field that is present for the rule to apply to it. A packet matches a field if any entry in that field matches the packet.", "type": "object", "properties": { "hosts": { "nullable": true, "description": "If present, the sources (if incoming) or destinations (if outgoing) this rule applies to.", "type": "array", "items": { "$ref": "#/components/schemas/VpcFirewallRuleHostFilter" } }, "ports": { "nullable": true, "description": "If present, the destination ports this rule applies to.", "type": "array", "items": { "$ref": "#/components/schemas/L4PortRange" } }, "protocols": { "nullable": true, "description": "If present, the networking protocols this rule applies to.", "type": "array", "items": { "$ref": "#/components/schemas/VpcFirewallRuleProtocol" } } } }, "VpcFirewallRuleHostFilter": { "description": "A subset of [`NetworkTarget`], `VpcFirewallRuleHostFilter` specifies all possible targets that a route can forward to.", "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vpc" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "subnet" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "instance" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ip" ] }, "value": { "type": "string", "format": "ip" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "internetGateway" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] } ] }, "VpcFirewallRuleProtocol": { "description": "The protocols that may be specified in a firewall rule's filter", "type": "string", "enum": [ "TCP", "UDP", "ICMP" ] }, "VpcFirewallRuleResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/VpcFirewallRule" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "VpcFirewallRuleStatus": { "type": "string", "enum": [ "disabled", "enabled" ] }, "VpcFirewallRuleTarget": { "description": "A subset of [`NetworkTarget`], `VpcFirewallRuleTarget` specifies all possible targets that a firewall rule can be attached to.", "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vpc" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "subnet" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "instance" ] }, "value": { "$ref": "#/components/schemas/Name" } }, "required": [ "type", "value" ] } ] }, "VpcFirewallRuleUpdate": { "description": "A single rule in a VPC firewall", "type": "object", "properties": { "action": { "description": "whether traffic matching the rule should be allowed or dropped", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleAction" } ] }, "description": { "description": "human-readable free-form text about a resource", "type": "string" }, "direction": { "description": "whether this rule is for incoming or outgoing traffic", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleDirection" } ] }, "filters": { "description": "reductions on the scope of the rule", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleFilter" } ] }, "priority": { "description": "the relative priority of this rule", "type": "integer", "format": "uint16", "minimum": 0 }, "status": { "description": "whether this rule is in effect", "allOf": [ { "$ref": "#/components/schemas/VpcFirewallRuleStatus" } ] }, "targets": { "description": "list of sets of instances that the rule applies to", "type": "array", "items": { "$ref": "#/components/schemas/VpcFirewallRuleTarget" } } }, "required": [ "action", "description", "direction", "filters", "priority", "status", "targets" ] }, "VpcFirewallRuleUpdateParams": { "description": "Updateable properties of a [`Vpc`]'s firewall Note that VpcFirewallRules are implicitly created along with a Vpc, so there is no explicit creation.", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/VpcFirewallRuleUpdate" } }, "VpcFirewallRuleUpdateResult": { "description": "Response to an update replacing [`Vpc`]'s firewall", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/VpcFirewallRule" } }, "VpcResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/Vpc" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "VpcRouter": { "description": "A VPC router defines a series of rules that indicate where traffic should be sent depending on its destination.", "type": "object", "properties": { "identity": { "description": "common identifying metadata", "allOf": [ { "$ref": "#/components/schemas/IdentityMetadata" } ] }, "kind": { "$ref": "#/components/schemas/VpcRouterKind" }, "vpc_id": { "description": "The VPC to which the router belongs.", "type": "string", "format": "uuid" } }, "required": [ "identity", "kind", "vpc_id" ] }, "VpcRouterCreate": { "description": "Create-time parameters for a [`VpcRouter`]", "type": "object", "properties": { "description": { "type": "string" }, "name": { "$ref": "#/components/schemas/Name" } }, "required": [ "description", "name" ] }, "VpcRouterKind": { "type": "string", "enum": [ "system", "custom" ] }, "VpcRouterResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/VpcRouter" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "VpcRouterUpdate": { "description": "Updateable properties of a [`VpcRouter`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] } } }, "VpcSubnet": { "description": "A VPC subnet represents a logical grouping for instances that allows network traffic between them, within a IPv4 subnetwork or optionall an IPv6 subnetwork.", "type": "object", "properties": { "identity": { "description": "common identifying metadata", "allOf": [ { "$ref": "#/components/schemas/IdentityMetadata" } ] }, "ipv4_block": { "nullable": true, "description": "The IPv4 subnet CIDR block.", "allOf": [ { "$ref": "#/components/schemas/Ipv4Net" } ] }, "ipv6_block": { "nullable": true, "description": "The IPv6 subnet CIDR block.", "allOf": [ { "$ref": "#/components/schemas/Ipv6Net" } ] }, "vpc_id": { "description": "The VPC to which the subnet belongs.", "type": "string", "format": "uuid" } }, "required": [ "identity", "vpc_id" ] }, "VpcSubnetCreate": { "description": "Create-time parameters for a [`VpcSubnet`]", "type": "object", "properties": { "description": { "type": "string" }, "ipv4Block": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Ipv4Net" } ] }, "ipv6Block": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Ipv6Net" } ] }, "name": { "$ref": "#/components/schemas/Name" } }, "required": [ "description", "name" ] }, "VpcSubnetResultsPage": { "description": "A single page of results", "type": "object", "properties": { "items": { "description": "list of items on this page of results", "type": "array", "items": { "$ref": "#/components/schemas/VpcSubnet" } }, "next_page": { "nullable": true, "description": "token used to fetch the next page of results (if any)", "type": "string" } }, "required": [ "items" ] }, "VpcSubnetUpdate": { "description": "Updateable properties of a [`VpcSubnet`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "ipv4Block": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Ipv4Net" } ] }, "ipv6Block": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Ipv6Net" } ] }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] } } }, "VpcUpdate": { "description": "Updateable properties of a [`Vpc`]", "type": "object", "properties": { "description": { "nullable": true, "type": "string" }, "dnsName": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] }, "name": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/Name" } ] } } }, "IdSortMode": { "description": "Supported set of sort modes for scanning by id only.\n\nCurrently, we only support scanning in ascending order.", "type": "string", "enum": [ "id-ascending" ] }, "NameOrIdSortMode": { "description": "Supported set of sort modes for scanning by name or id", "type": "string", "enum": [ "name-ascending", "name-descending", "id-ascending" ] }, "NameSortMode": { "description": "Supported set of sort modes for scanning by name only\n\nCurrently, we only support scanning in ascending order.", "type": "string", "enum": [ "name-ascending" ] } } } }