diff --git a/Cargo.lock b/Cargo.lock index 49876fbb..f6259d88 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3001,7 +3001,7 @@ dependencies = [ [[package]] name = "progenitor" version = "0.14.0" -source = "git+https://github.com/oxidecomputer/progenitor#bfbc0d40ef5ce793d211494dd12894c33f8ea891" +source = "git+https://github.com/oxidecomputer/progenitor#1a5b88f727afaa20c8c19b6aacc87e911a6045b2" dependencies = [ "progenitor-impl", ] @@ -3024,7 +3024,7 @@ dependencies = [ [[package]] name = "progenitor-impl" version = "0.14.0" -source = "git+https://github.com/oxidecomputer/progenitor#bfbc0d40ef5ce793d211494dd12894c33f8ea891" +source = "git+https://github.com/oxidecomputer/progenitor#1a5b88f727afaa20c8c19b6aacc87e911a6045b2" dependencies = [ "heck", "http 1.4.0", diff --git a/oxide.json b/oxide.json index aad8895b..9fc59f29 100644 --- a/oxide.json +++ b/oxide.json @@ -7,7 +7,7 @@ "url": "https://oxide.computer", "email": "api@oxide.computer" }, - "version": "2026041900.0.0" + "version": "2026043000.0.0" }, "paths": { "/device/auth": { @@ -5039,13 +5039,14 @@ } ], "responses": { - "default": { - "description": "", - "content": { - "*/*": { - "schema": {} - } - } + "101": { + "description": "Negotiating protocol upgrade from HTTP/1.1 to WebSocket" + }, + "4XX": { + "$ref": "#/components/responses/Error" + }, + "5XX": { + "$ref": "#/components/responses/Error" } }, "x-dropshot-websocket": {} @@ -25748,7 +25749,7 @@ ] }, "Probe": { - "description": "Identity-related metadata that's included in nearly all public API objects", + "description": "A networking probe", "type": "object", "properties": { "description": { @@ -26752,7 +26753,7 @@ ] }, "SamlIdentityProvider": { - "description": "Identity-related metadata that's included in nearly all public API objects", + "description": "A SAML identity provider", "type": "object", "properties": { "acs_url": { @@ -29759,7 +29760,8 @@ "volts", "amps", "watts", - "degrees_celsius" + "degrees_celsius", + "joules" ] }, { diff --git a/sdk-httpmock/src/generated_httpmock.rs b/sdk-httpmock/src/generated_httpmock.rs index 5409e51c..4c6db7a7 100644 --- a/sdk-httpmock/src/generated_httpmock.rs +++ b/sdk-httpmock/src/generated_httpmock.rs @@ -7554,6 +7554,26 @@ pub mod operations { pub fn switching_protocols(self) -> Self { Self(self.0.status(101u16)) } + + pub fn client_error(self, status: u16, value: &types::Error) -> Self { + assert_eq!(status / 100u16, 4u16); + Self( + self.0 + .status(status) + .header("content-type", "application/json") + .json_body_obj(value), + ) + } + + pub fn server_error(self, status: u16, value: &types::Error) -> Self { + assert_eq!(status / 100u16, 5u16); + Self( + self.0 + .status(status) + .header("content-type", "application/json") + .json_body_obj(value), + ) + } } pub struct InstanceSshPublicKeyListWhen(::httpmock::When); diff --git a/sdk/src/generated_sdk.rs b/sdk/src/generated_sdk.rs index f5a7714b..ae68b3f7 100644 --- a/sdk/src/generated_sdk.rs +++ b/sdk/src/generated_sdk.rs @@ -22685,15 +22685,13 @@ pub mod types { } } - /// Identity-related metadata that's included in nearly all public API - /// objects + /// A networking probe /// ///
JSON schema /// /// ```json /// { - /// "description": "Identity-related metadata that's included in nearly all - /// public API objects", + /// "description": "A networking probe", /// "type": "object", /// "required": [ /// "description", @@ -24927,15 +24925,13 @@ pub mod types { } } - /// Identity-related metadata that's included in nearly all public API - /// objects + /// A SAML identity provider /// ///
JSON schema /// /// ```json /// { - /// "description": "Identity-related metadata that's included in nearly all - /// public API objects", + /// "description": "A SAML identity provider", /// "type": "object", /// "required": [ /// "acs_url", @@ -32478,7 +32474,8 @@ pub mod types { /// "volts", /// "amps", /// "watts", - /// "degrees_celsius" + /// "degrees_celsius", + /// "joules" /// ] /// }, /// { @@ -32530,6 +32527,8 @@ pub mod types { Watts, #[serde(rename = "degrees_celsius")] DegreesCelsius, + #[serde(rename = "joules")] + Joules, /// No meaningful units, e.g. a dimensionless quanity. #[serde(rename = "none")] None, @@ -32549,6 +32548,7 @@ pub mod types { Self::Amps => f.write_str("amps"), Self::Watts => f.write_str("watts"), Self::DegreesCelsius => f.write_str("degrees_celsius"), + Self::Joules => f.write_str("joules"), Self::None => f.write_str("none"), Self::Rpm => f.write_str("rpm"), } @@ -32567,6 +32567,7 @@ pub mod types { "amps" => Ok(Self::Amps), "watts" => Ok(Self::Watts), "degrees_celsius" => Ok(Self::DegreesCelsius), + "joules" => Ok(Self::Joules), "none" => Ok(Self::None), "rpm" => Ok(Self::Rpm), _ => Err("invalid value".into()), @@ -65809,7 +65810,7 @@ pub mod types { /// /// API for interacting with the Oxide control plane /// -/// Version: 2026041900.0.0 +/// Version: 2026043000.0.0 pub struct Client { pub(crate) baseurl: String, pub(crate) client: reqwest::Client, @@ -65850,7 +65851,7 @@ impl Client { impl ClientInfo<()> for Client { fn api_version() -> &'static str { - "2026041900.0.0" + "2026043000.0.0" } fn baseurl(&self) -> &str { @@ -83991,7 +83992,7 @@ pub mod builder { /// Sends a `GET` request to /// `/v1/instances/{instance}/serial-console/stream` - pub async fn send(self) -> Result, Error<()>> { + pub async fn send(self) -> Result, Error> { let Self { client, instance, @@ -84041,6 +84042,12 @@ pub mod builder { let response = result?; match response.status().as_u16() { 101u16 => ResponseValue::upgrade(response).await, + 400u16..=499u16 => Err(Error::ErrorResponse( + ResponseValue::from_response(response).await?, + )), + 500u16..=599u16 => Err(Error::ErrorResponse( + ResponseValue::from_response(response).await?, + )), _ => Err(Error::UnexpectedResponse(response)), } }