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