diff --git a/Cargo.lock b/Cargo.lock index 9cc9046cc6..ad59ff2664 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -936,7 +936,7 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dropshot" version = "0.6.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#8e4af93207fb79998eea90bd094ff7a5475673e5" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#ff0a22485616a6440dfdd634f5871fbcca1ee2ee" dependencies = [ "async-stream", "async-trait", @@ -975,7 +975,7 @@ dependencies = [ [[package]] name = "dropshot_endpoint" version = "0.6.1-dev" -source = "git+https://github.com/oxidecomputer/dropshot?branch=main#8e4af93207fb79998eea90bd094ff7a5475673e5" +source = "git+https://github.com/oxidecomputer/dropshot?branch=main#ff0a22485616a6440dfdd634f5871fbcca1ee2ee" dependencies = [ "proc-macro2", "quote", @@ -1663,9 +1663,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.113" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eef78b64d87775463c549fbd80e19249ef436ea3bf1de2a1eb7e717ec7fab1e9" +checksum = "b0005d08a8f7b65fb8073cb697aa0b12b631ed251ce73d862ce50eeb52ce3b50" [[package]] name = "lock_api" @@ -2191,9 +2191,9 @@ dependencies = [ [[package]] name = "openapiv3" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de1b830d6f0f82e832f5a173d54f827f233e75b30f0f787c1289cca956879f8" +checksum = "b6b4689110fd71f196934fbdf1ad0f0a4b49ea41fbc6f19008c00dba735b544c" dependencies = [ "indexmap", "serde", @@ -3328,9 +3328,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] @@ -3366,9 +3366,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -3637,9 +3637,9 @@ dependencies = [ [[package]] name = "slog-json" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e9b96fb6b5e80e371423b4aca6656eb537661ce8f82c2697e619f8ca85d043" +checksum = "0f7f7a952ce80fca9da17bf0a53895d11f8aa1ba063668ca53fc72e7869329e9" dependencies = [ "chrono", "serde", diff --git a/nexus/src/external_api/http_entrypoints.rs b/nexus/src/external_api/http_entrypoints.rs index 81b0e4308e..40b9594d0f 100644 --- a/nexus/src/external_api/http_entrypoints.rs +++ b/nexus/src/external_api/http_entrypoints.rs @@ -327,7 +327,8 @@ async fn organizations_delete_organization( /** * Update a specific organization. - * + */ +/* * 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 @@ -513,7 +514,8 @@ async fn organization_projects_delete_project( /** * Update a specific project. - * + */ +/* * 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 @@ -590,7 +592,8 @@ async fn project_disks_get( /** * Create a disk in a project. - * + */ +/* * TODO-correctness See note about instance create. This should be async. */ #[endpoint { @@ -734,7 +737,8 @@ async fn project_instances_get( /** * Create an instance in a project. - * + */ +/* * 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 diff --git a/openapi/nexus-internal.json b/openapi/nexus-internal.json index 851af4194f..aba56c97f6 100644 --- a/openapi/nexus-internal.json +++ b/openapi/nexus-internal.json @@ -12,7 +12,7 @@ "paths": { "/disks/{disk_id}": { "put": { - "description": "Report updated state for a disk.", + "summary": "Report updated state for a disk.", "operationId": "cpapi_disks_put", "parameters": [ { @@ -45,7 +45,7 @@ }, "/instances/{instance_id}": { "put": { - "description": "Report updated state for an instance.", + "summary": "Report updated state for an instance.", "operationId": "cpapi_instances_put", "parameters": [ { @@ -78,7 +78,7 @@ }, "/metrics/collect/{producer_id}": { "get": { - "description": "Endpoint for oximeter to collect nexus server metrics.", + "summary": "Endpoint for oximeter to collect nexus server metrics.", "operationId": "cpapi_metrics_collect", "parameters": [ { @@ -112,7 +112,7 @@ }, "/metrics/collectors": { "post": { - "description": "Accept a notification of a new oximeter collection server.", + "summary": "Accept a notification of a new oximeter collection server.", "operationId": "cpapi_collectors_post", "requestBody": { "content": { @@ -133,7 +133,7 @@ }, "/metrics/producers": { "post": { - "description": "Accept a registration from a new metric producer", + "summary": "Accept a registration from a new metric producer", "operationId": "cpapi_producers_post", "requestBody": { "content": { @@ -154,7 +154,7 @@ }, "/sled_agents/{sled_id}": { "post": { - "description": "Report that the sled agent for the specified sled has come online.", + "summary": "Report that the sled agent for the specified sled has come online.", "operationId": "cpapi_sled_agents_post", "parameters": [ { @@ -187,7 +187,7 @@ }, "/sled_agents/{sled_id}/zpools/{zpool_id}": { "put": { - "description": "Report that a pool for a specified sled has come online.", + "summary": "Report that a pool for a specified sled has come online.", "operationId": "zpool_put", "parameters": [ { @@ -237,7 +237,7 @@ }, "/zpools/{zpool_id}/dataset/{dataset_id}": { "put": { - "description": "Report that a dataset within a pool has come online.", + "summary": "Report that a dataset within a pool has come online.", "operationId": "dataset_put", "parameters": [ { diff --git a/openapi/nexus.json b/openapi/nexus.json index 31fa68b889..26ab8a0efb 100644 --- a/openapi/nexus.json +++ b/openapi/nexus.json @@ -15,7 +15,7 @@ "tags": [ "racks" ], - "description": "List racks in the system.", + "summary": "List racks in the system.", "operationId": "hardware_racks_get", "parameters": [ { @@ -69,7 +69,7 @@ "tags": [ "racks" ], - "description": "Fetch information about a particular rack.", + "summary": "Fetch information about a particular rack.", "operationId": "hardware_racks_get_rack", "parameters": [ { @@ -103,7 +103,7 @@ "tags": [ "sleds" ], - "description": "List sleds in the system.", + "summary": "List sleds in the system.", "operationId": "hardware_sleds_get", "parameters": [ { @@ -157,7 +157,7 @@ "tags": [ "sleds" ], - "description": "Fetch information about a sled in the system.", + "summary": "Fetch information about a sled in the system.", "operationId": "hardware_sleds_get_sled", "parameters": [ { @@ -227,7 +227,7 @@ "tags": [ "organizations" ], - "description": "List all organizations.", + "summary": "List all organizations.", "operationId": "organizations_get", "parameters": [ { @@ -279,7 +279,7 @@ "tags": [ "organizations" ], - "description": "Create a new organization.", + "summary": "Create a new organization.", "operationId": "organizations_post", "requestBody": { "content": { @@ -310,7 +310,7 @@ "tags": [ "organizations" ], - "description": "Fetch a specific organization", + "summary": "Fetch a specific organization", "operationId": "organizations_get_organization", "parameters": [ { @@ -340,7 +340,7 @@ "tags": [ "organizations" ], - "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.", + "summary": "Update a specific organization.", "operationId": "organizations_put_organization", "parameters": [ { @@ -380,7 +380,7 @@ "tags": [ "organizations" ], - "description": "Delete a specific organization.", + "summary": "Delete a specific organization.", "operationId": "organizations_delete_organization", "parameters": [ { @@ -405,7 +405,7 @@ "tags": [ "projects" ], - "description": "List all projects.", + "summary": "List all projects.", "operationId": "organization_projects_get", "parameters": [ { @@ -466,7 +466,7 @@ "tags": [ "projects" ], - "description": "Create a new project.", + "summary": "Create a new project.", "operationId": "organization_projects_post", "parameters": [ { @@ -508,7 +508,7 @@ "tags": [ "projects" ], - "description": "Fetch a specific project", + "summary": "Fetch a specific project", "operationId": "organization_projects_get_project", "parameters": [ { @@ -547,7 +547,7 @@ "tags": [ "projects" ], - "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.", + "summary": "Update a specific project.", "operationId": "organization_projects_put_project", "parameters": [ { @@ -596,7 +596,7 @@ "tags": [ "projects" ], - "description": "Delete a specific project.", + "summary": "Delete a specific project.", "operationId": "organization_projects_delete_project", "parameters": [ { @@ -630,7 +630,7 @@ "tags": [ "disks" ], - "description": "List disks in a project.", + "summary": "List disks in a project.", "operationId": "project_disks_get", "parameters": [ { @@ -700,7 +700,7 @@ "tags": [ "disks" ], - "description": "Create a disk in a project.\n * TODO-correctness See note about instance create. This should be async.", + "summary": "Create a disk in a project.", "operationId": "project_disks_post", "parameters": [ { @@ -751,7 +751,7 @@ "tags": [ "disks" ], - "description": "Fetch a single disk in a project.", + "summary": "Fetch a single disk in a project.", "operationId": "project_disks_get_disk", "parameters": [ { @@ -799,7 +799,7 @@ "tags": [ "disks" ], - "description": "Delete a disk from a project.", + "summary": "Delete a disk from a project.", "operationId": "project_disks_delete_disk", "parameters": [ { @@ -842,7 +842,7 @@ "tags": [ "instances" ], - "description": "List instances in a project.", + "summary": "List instances in a project.", "operationId": "project_instances_get", "parameters": [ { @@ -912,7 +912,7 @@ "tags": [ "instances" ], - "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?", + "summary": "Create an instance in a project.", "operationId": "project_instances_post", "parameters": [ { @@ -963,7 +963,7 @@ "tags": [ "instances" ], - "description": "Get an instance in a project.", + "summary": "Get an instance in a project.", "operationId": "project_instances_get_instance", "parameters": [ { @@ -1011,7 +1011,7 @@ "tags": [ "instances" ], - "description": "Delete an instance from a project.", + "summary": "Delete an instance from a project.", "operationId": "project_instances_delete_instance", "parameters": [ { @@ -1054,7 +1054,7 @@ "tags": [ "instances" ], - "description": "List disks attached to this instance.", + "summary": "List disks attached to this instance.", "operationId": "instance_disks_get", "parameters": [ { @@ -1253,7 +1253,7 @@ "tags": [ "instances" ], - "description": "Migrate an instance to a different propolis-server, possibly on a different sled.", + "summary": "Migrate an instance to a different propolis-server, possibly on a different sled.", "operationId": "project_instances_migrate_instance", "parameters": [ { @@ -1313,7 +1313,7 @@ "tags": [ "instances" ], - "description": "Reboot an instance.", + "summary": "Reboot an instance.", "operationId": "project_instances_instance_reboot", "parameters": [ { @@ -1363,7 +1363,7 @@ "tags": [ "instances" ], - "description": "Boot an instance.", + "summary": "Boot an instance.", "operationId": "project_instances_instance_start", "parameters": [ { @@ -1413,7 +1413,7 @@ "tags": [ "instances" ], - "description": "Halt an instance.", + "summary": "Halt an instance.", "operationId": "project_instances_instance_stop", "parameters": [ { @@ -1463,7 +1463,7 @@ "tags": [ "vpcs" ], - "description": "List VPCs in a project.", + "summary": "List VPCs in a project.", "operationId": "project_vpcs_get", "parameters": [ { @@ -1533,7 +1533,7 @@ "tags": [ "vpcs" ], - "description": "Create a VPC in a project.", + "summary": "Create a VPC in a project.", "operationId": "project_vpcs_post", "parameters": [ { @@ -1584,7 +1584,7 @@ "tags": [ "vpcs" ], - "description": "Get a VPC in a project.", + "summary": "Get a VPC in a project.", "operationId": "project_vpcs_get_vpc", "parameters": [ { @@ -1632,7 +1632,7 @@ "tags": [ "vpcs" ], - "description": "Update a VPC.", + "summary": "Update a VPC.", "operationId": "project_vpcs_put_vpc", "parameters": [ { @@ -1683,7 +1683,7 @@ "tags": [ "vpcs" ], - "description": "Delete a vpc from a project.", + "summary": "Delete a vpc from a project.", "operationId": "project_vpcs_delete_vpc", "parameters": [ { @@ -1726,7 +1726,7 @@ "tags": [ "firewall" ], - "description": "List firewall rules for a VPC.", + "summary": "List firewall rules for a VPC.", "operationId": "vpc_firewall_rules_get", "parameters": [ { @@ -1805,7 +1805,7 @@ "tags": [ "firewall" ], - "description": "Replace the firewall rules for a VPC", + "summary": "Replace the firewall rules for a VPC", "operationId": "vpc_firewall_rules_put", "parameters": [ { @@ -1865,7 +1865,7 @@ "tags": [ "routers" ], - "description": "List VPC Custom and System Routers", + "summary": "List VPC Custom and System Routers", "operationId": "vpc_routers_get", "parameters": [ { @@ -1944,7 +1944,7 @@ "tags": [ "routers" ], - "description": "Create a VPC Router", + "summary": "Create a VPC Router", "operationId": "vpc_routers_post", "parameters": [ { @@ -2004,7 +2004,7 @@ "tags": [ "routers" ], - "description": "Get a VPC Router", + "summary": "Get a VPC Router", "operationId": "vpc_routers_get_router", "parameters": [ { @@ -2061,7 +2061,7 @@ "tags": [ "routers" ], - "description": "Update a VPC Router", + "summary": "Update a VPC Router", "operationId": "vpc_routers_put_router", "parameters": [ { @@ -2121,7 +2121,7 @@ "tags": [ "routers" ], - "description": "Delete a router from its VPC", + "summary": "Delete a router from its VPC", "operationId": "vpc_routers_delete_router", "parameters": [ { @@ -2173,7 +2173,7 @@ "tags": [ "routes" ], - "description": "List a Router's routes", + "summary": "List a Router's routes", "operationId": "routers_routes_get", "parameters": [ { @@ -2261,7 +2261,7 @@ "tags": [ "routes" ], - "description": "Create a VPC Router", + "summary": "Create a VPC Router", "operationId": "routers_routes_post", "parameters": [ { @@ -2330,7 +2330,7 @@ "tags": [ "routes" ], - "description": "Get a VPC Router route", + "summary": "Get a VPC Router route", "operationId": "routers_routes_get_route", "parameters": [ { @@ -2396,7 +2396,7 @@ "tags": [ "routes" ], - "description": "Update a Router route", + "summary": "Update a Router route", "operationId": "routers_routes_put_route", "parameters": [ { @@ -2465,7 +2465,7 @@ "tags": [ "routes" ], - "description": "Delete a route from its router", + "summary": "Delete a route from its router", "operationId": "routers_routes_delete_route", "parameters": [ { @@ -2526,7 +2526,7 @@ "tags": [ "subnets" ], - "description": "List subnets in a VPC.", + "summary": "List subnets in a VPC.", "operationId": "vpc_subnets_get", "parameters": [ { @@ -2605,7 +2605,7 @@ "tags": [ "subnets" ], - "description": "Create a subnet in a VPC.", + "summary": "Create a subnet in a VPC.", "operationId": "vpc_subnets_post", "parameters": [ { @@ -2665,7 +2665,7 @@ "tags": [ "subnets" ], - "description": "Get subnet in a VPC.", + "summary": "Get subnet in a VPC.", "operationId": "vpc_subnets_get_subnet", "parameters": [ { @@ -2722,7 +2722,7 @@ "tags": [ "subnets" ], - "description": "Update a VPC Subnet.", + "summary": "Update a VPC Subnet.", "operationId": "vpc_subnets_put_subnet", "parameters": [ { @@ -2782,7 +2782,7 @@ "tags": [ "subnets" ], - "description": "Delete a subnet from a VPC.", + "summary": "Delete a subnet from a VPC.", "operationId": "vpc_subnets_delete_subnet", "parameters": [ { @@ -2834,7 +2834,7 @@ "tags": [ "subnets" ], - "description": "List IP addresses on a VPC subnet.", + "summary": "List IP addresses on a VPC subnet.", "operationId": "subnets_ips_get", "parameters": [ { @@ -2924,7 +2924,7 @@ "tags": [ "roles" ], - "description": "List the built-in roles", + "summary": "List the built-in roles", "operationId": "roles_get", "parameters": [ { @@ -2970,7 +2970,7 @@ "tags": [ "roles" ], - "description": "Fetch a specific built-in role", + "summary": "Fetch a specific built-in role", "operationId": "roles_get_role", "parameters": [ { @@ -3003,7 +3003,7 @@ "tags": [ "sagas" ], - "description": "List all sagas (for debugging)", + "summary": "List all sagas (for debugging)", "operationId": "sagas_get", "parameters": [ { @@ -3057,7 +3057,7 @@ "tags": [ "sagas" ], - "description": "Fetch information about a single saga (for debugging)", + "summary": "Fetch information about a single saga (for debugging)", "operationId": "sagas_get_saga", "parameters": [ { @@ -3090,7 +3090,7 @@ "tags": [ "hidden" ], - "description": "Fetch the user associated with the current session", + "summary": "Fetch the user associated with the current session", "operationId": "session_me", "responses": { "200": { @@ -3111,7 +3111,7 @@ "tags": [ "metrics" ], - "description": "List all timeseries schema", + "summary": "List all timeseries schema", "operationId": "timeseries_schema_get", "parameters": [ { @@ -3157,7 +3157,7 @@ "tags": [ "users" ], - "description": "List the built-in system users", + "summary": "List the built-in system users", "operationId": "users_get", "parameters": [ { @@ -3211,7 +3211,7 @@ "tags": [ "users" ], - "description": "Fetch a specific built-in system user", + "summary": "Fetch a specific built-in system user", "operationId": "users_get_user", "parameters": [ {