progenitor/sample_openapi/nexus.json

6103 lines
162 KiB
JSON

{
"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": {
"tags": [
"racks"
],
"summary": "List racks in the system.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/hardware/racks/{rack_id}": {
"get": {
"tags": [
"racks"
],
"summary": "Fetch information about a particular rack.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/hardware/sleds": {
"get": {
"tags": [
"sleds"
],
"summary": "List sleds in the system.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/hardware/sleds/{sled_id}": {
"get": {
"tags": [
"sleds"
],
"summary": "Fetch information about a sled in the system.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/login": {
"post": {
"tags": [
"hidden"
],
"operationId": "spoof_login",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginParams"
}
}
},
"required": true
},
"responses": {
"default": {
"description": ""
}
}
}
},
"/logout": {
"post": {
"tags": [
"hidden"
],
"operationId": "logout",
"responses": {
"default": {
"description": ""
}
}
}
},
"/organizations": {
"get": {
"tags": [
"organizations"
],
"summary": "List all organizations.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"organizations"
],
"summary": "Create a new organization.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}": {
"get": {
"tags": [
"organizations"
],
"summary": "Fetch a specific organization",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"organizations"
],
"summary": "Update a specific organization.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"organizations"
],
"summary": "Delete a specific organization.",
"description": "",
"operationId": "organizations_delete_organization",
"parameters": [
{
"in": "path",
"name": "organization_name",
"required": true,
"schema": {
"$ref": "#/components/schemas/Name"
},
"style": "simple"
}
],
"responses": {
"204": {
"description": "successful deletion"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects": {
"get": {
"tags": [
"projects"
],
"summary": "List all projects.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"projects"
],
"summary": "Create a new project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}": {
"get": {
"tags": [
"projects"
],
"summary": "Fetch a specific project",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"projects"
],
"summary": "Update a specific project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"projects"
],
"summary": "Delete a specific project.",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/disks": {
"get": {
"tags": [
"disks"
],
"summary": "List disks in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"disks"
],
"summary": "Create a disk in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/disks/{disk_name}": {
"get": {
"tags": [
"disks"
],
"summary": "Fetch a single disk in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"disks"
],
"summary": "Delete a disk from a project.",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances": {
"get": {
"tags": [
"instances"
],
"summary": "List instances in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"instances"
],
"summary": "Create an instance in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}": {
"get": {
"tags": [
"instances"
],
"summary": "Get an instance in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"instances"
],
"summary": "Delete an instance from a project.",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks": {
"get": {
"tags": [
"instances"
],
"summary": "List disks attached to this instance.",
"description": "",
"operationId": "instance_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": "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/DiskResultsPage"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks/attach": {
"post": {
"tags": [
"instances"
],
"operationId": "instance_disks_attach",
"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"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DiskIdentifier"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "successfully enqueued operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Disk"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks/detach": {
"post": {
"tags": [
"instances"
],
"operationId": "instance_disks_detach",
"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"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DiskIdentifier"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "successfully enqueued operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Disk"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/migrate": {
"post": {
"tags": [
"instances"
],
"summary": "Migrate an instance to a different propolis-server, possibly on a different sled.",
"description": "",
"operationId": "project_instances_migrate_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"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InstanceMigrate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Instance"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/reboot": {
"post": {
"tags": [
"instances"
],
"summary": "Reboot an instance.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/start": {
"post": {
"tags": [
"instances"
],
"summary": "Boot an instance.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/stop": {
"post": {
"tags": [
"instances"
],
"summary": "Halt an instance.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs": {
"get": {
"tags": [
"vpcs"
],
"summary": "List VPCs in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"vpcs"
],
"summary": "Create a VPC in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}": {
"get": {
"tags": [
"vpcs"
],
"summary": "Get a VPC in a project.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"vpcs"
],
"summary": "Update a VPC.",
"description": "",
"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": {
"204": {
"description": "resource updated"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"vpcs"
],
"summary": "Delete a vpc from a project.",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/firewall/rules": {
"get": {
"tags": [
"firewall"
],
"summary": "List firewall rules for a VPC.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"put": {
"tags": [
"firewall"
],
"summary": "Replace the firewall rules for a VPC",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers": {
"get": {
"tags": [
"routers"
],
"summary": "List VPC Custom and System Routers",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"routers"
],
"summary": "Create a VPC Router",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}": {
"get": {
"tags": [
"routers"
],
"summary": "Get a VPC Router",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"routers"
],
"summary": "Update a VPC Router",
"description": "",
"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": {
"204": {
"description": "resource updated"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"routers"
],
"summary": "Delete a router from its VPC",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}/routes": {
"get": {
"tags": [
"routes"
],
"summary": "List a Router's routes",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"routes"
],
"summary": "Create a VPC Router",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/routers/{router_name}/routes/{route_name}": {
"get": {
"tags": [
"routes"
],
"summary": "Get a VPC Router route",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"routes"
],
"summary": "Update a Router route",
"description": "",
"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": {
"204": {
"description": "resource updated"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"routes"
],
"summary": "Delete a route from its router",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/subnets": {
"get": {
"tags": [
"subnets"
],
"summary": "List subnets in a VPC.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
},
"post": {
"tags": [
"subnets"
],
"summary": "Create a subnet in a VPC.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/subnets/{subnet_name}": {
"get": {
"tags": [
"subnets"
],
"summary": "Get subnet in a VPC.",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"put": {
"tags": [
"subnets"
],
"summary": "Update a VPC Subnet.",
"description": "",
"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": {
"204": {
"description": "resource updated"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
},
"delete": {
"tags": [
"subnets"
],
"summary": "Delete a subnet from a VPC.",
"description": "",
"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"
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/organizations/{organization_name}/projects/{project_name}/vpcs/{vpc_name}/subnets/{subnet_name}/ips": {
"get": {
"tags": [
"subnets"
],
"summary": "List IP addresses on a VPC subnet.",
"description": "",
"operationId": "subnets_ips_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": "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/NetworkInterfaceResultsPage"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/roles": {
"get": {
"tags": [
"roles"
],
"summary": "List the built-in roles",
"description": "",
"operationId": "roles_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"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RoleResultsPage"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/roles/{role_name}": {
"get": {
"tags": [
"roles"
],
"summary": "Fetch a specific built-in role",
"description": "",
"operationId": "roles_get_role",
"parameters": [
{
"in": "path",
"name": "role_name",
"required": true,
"schema": {
"description": "The built-in role's unique name.",
"type": "string"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Role"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/sagas": {
"get": {
"tags": [
"sagas"
],
"summary": "List all sagas (for debugging)",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/sagas/{saga_id}": {
"get": {
"tags": [
"sagas"
],
"summary": "Fetch information about a single saga (for debugging)",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/session/me": {
"get": {
"tags": [
"hidden"
],
"summary": "Fetch the user associated with the current session",
"operationId": "session_me",
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SessionUser"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/timeseries/schema": {
"get": {
"tags": [
"metrics"
],
"summary": "List all timeseries schema",
"description": "",
"operationId": "timeseries_schema_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"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TimeseriesSchemaResultsPage"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/users": {
"get": {
"tags": [
"users"
],
"summary": "List the built-in system users",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
},
"x-dropshot-pagination": true
}
},
"/users/{user_name}": {
"get": {
"tags": [
"users"
],
"summary": "Fetch a specific built-in system user",
"description": "",
"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"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
}
},
"components": {
"responses": {
"Error": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"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
},
"DatumType": {
"description": "The type of an individual datum of a metric.",
"type": "string",
"enum": [
"Bool",
"I64",
"F64",
"String",
"Bytes",
"CumulativeI64",
"CumulativeF64",
"HistogramI64",
"HistogramF64"
]
},
"Disk": {
"description": "Client view of an [`Disk`]",
"type": "object",
"properties": {
"description": {
"description": "human-readable free-form text about a resource",
"type": "string"
},
"device_path": {
"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"
}
]
},
"project_id": {
"type": "string",
"format": "uuid"
},
"size": {
"$ref": "#/components/schemas/ByteCount"
},
"snapshot_id": {
"nullable": true,
"type": "string",
"format": "uuid"
},
"state": {
"$ref": "#/components/schemas/DiskState"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"device_path",
"id",
"name",
"project_id",
"size",
"state",
"time_created",
"time_modified"
]
},
"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"
}
]
},
"snapshot_id": {
"nullable": true,
"description": "id for snapshot from which the Disk should be created, if any",
"type": "string",
"format": "uuid"
}
},
"required": [
"description",
"name",
"size"
]
},
"DiskIdentifier": {
"description": "Parameters for the [`Disk`] to be attached or detached to an instance",
"type": "object",
"properties": {
"disk": {
"$ref": "#/components/schemas/Name"
}
},
"required": [
"disk"
]
},
"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"
]
}
]
},
"Error": {
"description": "Body of an HTTP response for an `HttpError`. This type can be used to deserialize an HTTP response corresponding to an error in order to access the error code, message, etc.",
"type": "object",
"properties": {
"error_code": {
"type": "string"
},
"message": {
"type": "string"
},
"request_id": {
"type": "string"
}
},
"required": [
"message",
"request_id"
]
},
"FieldSchema": {
"description": "The name and type information for a field of a timeseries schema.",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FieldSource"
},
"ty": {
"$ref": "#/components/schemas/FieldType"
}
},
"required": [
"name",
"source",
"ty"
]
},
"FieldSource": {
"description": "The source from which a field is derived, the target or metric.",
"type": "string",
"enum": [
"Target",
"Metric"
]
},
"FieldType": {
"description": "The `FieldType` identifies the data type of a target or metric field.",
"type": "string",
"enum": [
"String",
"I64",
"IpAddr",
"Uuid",
"Bool"
]
},
"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"
}
]
},
"project_id": {
"description": "id for the project containing this Instance",
"type": "string",
"format": "uuid"
},
"run_state": {
"$ref": "#/components/schemas/InstanceState"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
},
"time_run_state_updated": {
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"hostname",
"id",
"memory",
"name",
"ncpus",
"project_id",
"run_state",
"time_created",
"time_modified",
"time_run_state_updated"
]
},
"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"
]
},
"InstanceMigrate": {
"description": "Migration parameters for an [`Instance`]",
"type": "object",
"properties": {
"dst_sled_uuid": {
"type": "string",
"format": "uuid"
}
},
"required": [
"dst_sled_uuid"
]
},
"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",
"migrating",
"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"
]
},
"MacAddr": {
"title": "A MAC address",
"description": "A Media Access Control address, in EUI-48 format",
"type": "string",
"pattern": "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$",
"minLength": 17,
"maxLength": 17
},
"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
},
"NetworkInterface": {
"description": "A `NetworkInterface` represents a virtual network interface device.",
"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"
},
"instance_id": {
"description": "The Instance to which the interface belongs.",
"type": "string",
"format": "uuid"
},
"ip": {
"description": "The IP address assigned to this interface.",
"type": "string",
"format": "ip"
},
"mac": {
"description": "The MAC address assigned to this interface.",
"allOf": [
{
"$ref": "#/components/schemas/MacAddr"
}
]
},
"name": {
"description": "unique, mutable, user-controlled identifier for each resource",
"allOf": [
{
"$ref": "#/components/schemas/Name"
}
]
},
"subnet_id": {
"description": "The subnet to which the interface belongs.",
"type": "string",
"format": "uuid"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
},
"vpc_id": {
"description": "The VPC to which the interface belongs.",
"type": "string",
"format": "uuid"
}
},
"required": [
"description",
"id",
"instance_id",
"ip",
"mac",
"name",
"subnet_id",
"time_created",
"time_modified",
"vpc_id"
]
},
"NetworkInterfaceResultsPage": {
"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/NetworkInterface"
}
},
"next_page": {
"nullable": true,
"description": "token used to fetch the next page of results (if any)",
"type": "string"
}
},
"required": [
"items"
]
},
"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"
}
]
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"id",
"name",
"time_created",
"time_modified"
]
},
"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"
}
]
},
"organization_id": {
"type": "string",
"format": "uuid"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"id",
"name",
"organization_id",
"time_created",
"time_modified"
]
},
"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": {
"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"
}
]
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"id",
"name",
"time_created",
"time_modified"
]
},
"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"
]
},
"Role": {
"description": "Client view of a [`Role`]",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"$ref": "#/components/schemas/RoleName"
}
},
"required": [
"description",
"name"
]
},
"RoleName": {
"title": "A name for a built-in role",
"description": "Role names consist of two string components separated by dot (\".\").",
"type": "string",
"pattern": "[a-z-]+\\.[a-z-]+",
"maxLength": 63
},
"RoleResultsPage": {
"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/Role"
}
},
"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": [
"internet_gateway"
]
},
"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": {
"description": {
"description": "human-readable free-form text about a resource",
"type": "string"
},
"destination": {
"$ref": "#/components/schemas/RouteDestination"
},
"id": {
"description": "unique, immutable, system-controlled identifier for each resource",
"type": "string",
"format": "uuid"
},
"kind": {
"description": "Describes the kind of router. Set at creation. `read-only`",
"allOf": [
{
"$ref": "#/components/schemas/RouterRouteKind"
}
]
},
"name": {
"description": "unique, mutable, user-controlled identifier for each resource",
"allOf": [
{
"$ref": "#/components/schemas/Name"
}
]
},
"router_id": {
"description": "The VPC Router to which the route belongs.",
"type": "string",
"format": "uuid"
},
"target": {
"$ref": "#/components/schemas/RouteTarget"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"destination",
"id",
"kind",
"name",
"router_id",
"target",
"time_created",
"time_modified"
]
},
"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",
"vpc_subnet",
"vpc_peering",
"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": [
"action_failed"
]
},
"source_error": {}
},
"required": [
"error",
"source_error"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"deserialize_failed"
]
},
"message": {
"type": "string"
}
},
"required": [
"error",
"message"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"injected_error"
]
}
},
"required": [
"error"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"serialize_failed"
]
},
"message": {
"type": "string"
}
},
"required": [
"error",
"message"
]
},
{
"type": "object",
"properties": {
"error": {
"type": "string",
"enum": [
"subsaga_create_failed"
]
},
"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"
]
}
]
},
"SessionUser": {
"description": "Client view of currently authed user.",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"id"
]
},
"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"
}
]
},
"service_address": {
"type": "string"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"id",
"name",
"service_address",
"time_created",
"time_modified"
]
},
"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"
]
},
"TimeseriesName": {
"title": "The name of a timeseries",
"description": "Names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words.",
"type": "string",
"pattern": "(([a-z]+[a-z0-9]*)(_([a-z0-9]+))*):(([a-z]+[a-z0-9]*)(_([a-z0-9]+))*)"
},
"TimeseriesSchema": {
"description": "The schema for a timeseries.\n\nThis includes the name of the timeseries, as well as the datum type of its metric and the schema for each field.",
"type": "object",
"properties": {
"created": {
"type": "string",
"format": "date-time"
},
"datum_type": {
"$ref": "#/components/schemas/DatumType"
},
"field_schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FieldSchema"
}
},
"timeseries_name": {
"$ref": "#/components/schemas/TimeseriesName"
}
},
"required": [
"created",
"datum_type",
"field_schema",
"timeseries_name"
]
},
"TimeseriesSchemaResultsPage": {
"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/TimeseriesSchema"
}
},
"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"
}
]
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"id",
"name",
"time_created",
"time_modified"
]
},
"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"
},
"dns_name": {
"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"
}
]
},
"project_id": {
"description": "id for the project containing this VPC",
"type": "string",
"format": "uuid"
},
"system_router_id": {
"description": "id for the system router where subnet default routes are registered",
"type": "string",
"format": "uuid"
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"description",
"dns_name",
"id",
"name",
"project_id",
"system_router_id",
"time_created",
"time_modified"
]
},
"VpcCreate": {
"description": "Create-time parameters for a [`Vpc`]",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"dns_name": {
"$ref": "#/components/schemas/Name"
},
"name": {
"$ref": "#/components/schemas/Name"
}
},
"required": [
"description",
"dns_name",
"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"
}
]
},
"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"
}
]
},
"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"
}
]
},
"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"
}
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
}
},
"required": [
"action",
"description",
"direction",
"filters",
"id",
"name",
"priority",
"status",
"targets",
"time_created",
"time_modified"
]
},
"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": [
"internet_gateway"
]
},
"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": {
"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"
},
"kind": {
"$ref": "#/components/schemas/VpcRouterKind"
},
"name": {
"description": "unique, mutable, user-controlled identifier for each resource",
"allOf": [
{
"$ref": "#/components/schemas/Name"
}
]
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
},
"vpc_id": {
"description": "The VPC to which the router belongs.",
"type": "string",
"format": "uuid"
}
},
"required": [
"description",
"id",
"kind",
"name",
"time_created",
"time_modified",
"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": {
"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"
},
"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"
}
]
},
"name": {
"description": "unique, mutable, user-controlled identifier for each resource",
"allOf": [
{
"$ref": "#/components/schemas/Name"
}
]
},
"time_created": {
"description": "timestamp when this resource was created",
"type": "string",
"format": "date-time"
},
"time_modified": {
"description": "timestamp when this resource was last modified",
"type": "string",
"format": "date-time"
},
"vpc_id": {
"description": "The VPC to which the subnet belongs.",
"type": "string",
"format": "uuid"
}
},
"required": [
"description",
"id",
"name",
"time_created",
"time_modified",
"vpc_id"
]
},
"VpcSubnetCreate": {
"description": "Create-time parameters for a [`VpcSubnet`]",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"ipv4_block": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Ipv4Net"
}
]
},
"ipv6_block": {
"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"
},
"ipv4_block": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Ipv4Net"
}
]
},
"ipv6_block": {
"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"
},
"dns_name": {
"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"
]
}
}
}
}