diff --git a/progenitor-impl/tests/output/buildomat-builder.out b/progenitor-impl/tests/output/buildomat-builder.out index 442e959..efa37da 100644 --- a/progenitor-impl/tests/output/buildomat-builder.out +++ b/progenitor-impl/tests/output/buildomat-builder.out @@ -7,7 +7,7 @@ pub mod types { use serde::{Deserialize, Serialize}; #[allow(unused_imports)] use std::convert::TryFrom; - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Task { pub id: String, pub name: String, @@ -28,7 +28,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TaskEvent { pub payload: String, pub seq: u32, @@ -48,7 +48,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TaskOutput { pub id: String, pub path: String, @@ -67,7 +67,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TaskSubmit { pub name: String, #[serde(default, skip_serializing_if = "Vec::is_empty")] @@ -87,7 +87,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TaskSubmitResult { pub id: String, } @@ -104,7 +104,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UploadedChunk { pub id: String, } @@ -121,7 +121,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserCreate { pub name: String, } @@ -138,7 +138,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserCreateResult { pub id: String, pub name: String, @@ -157,7 +157,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WhoamiResult { pub id: String, pub name: String, @@ -175,7 +175,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Worker { pub deleted: bool, pub id: String, @@ -199,7 +199,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerAddOutput { pub chunks: Vec, pub path: String, @@ -218,7 +218,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerAppendTask { pub payload: String, pub stream: String, @@ -237,7 +237,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerBootstrap { pub bootstrap: String, pub token: String, @@ -255,7 +255,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerBootstrapResult { pub id: String, } @@ -272,7 +272,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerCompleteTask { pub failed: bool, } @@ -289,7 +289,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerPingResult { pub poweroff: bool, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -308,7 +308,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerPingTask { pub id: String, pub output_rules: Vec, @@ -327,7 +327,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkerTask { pub id: String, pub name: String, @@ -346,7 +346,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct WorkersResult { pub workers: Vec, } diff --git a/progenitor-impl/tests/output/keeper-builder.out b/progenitor-impl/tests/output/keeper-builder.out index 436f820..97706cd 100644 --- a/progenitor-impl/tests/output/keeper-builder.out +++ b/progenitor-impl/tests/output/keeper-builder.out @@ -7,7 +7,7 @@ pub mod types { use serde::{Deserialize, Serialize}; #[allow(unused_imports)] use std::convert::TryFrom; - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct EnrolBody { pub host: String, pub key: String, @@ -25,7 +25,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct GlobalJobsResult { pub summary: Vec, } @@ -42,7 +42,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OutputRecord { pub msg: String, pub stream: String, @@ -61,7 +61,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct PingResult { pub host: String, pub ok: bool, @@ -79,7 +79,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportFinishBody { pub duration_millis: usize, pub end_time: chrono::DateTime, @@ -99,7 +99,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportId { pub host: String, pub job: String, @@ -120,7 +120,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportOutputBody { pub id: ReportId, pub record: OutputRecord, @@ -138,7 +138,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportResult { pub existed_already: bool, } @@ -155,7 +155,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportStartBody { pub id: ReportId, pub script: String, @@ -174,7 +174,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ReportSummary { pub age_seconds: usize, pub duration_seconds: usize, diff --git a/progenitor-impl/tests/output/nexus-builder.out b/progenitor-impl/tests/output/nexus-builder.out index 0e80306..9ab544e 100644 --- a/progenitor-impl/tests/output/nexus-builder.out +++ b/progenitor-impl/tests/output/nexus-builder.out @@ -8,7 +8,7 @@ pub mod types { #[allow(unused_imports)] use std::convert::TryFrom; ///Describes properties that should uniquely identify a Gimlet. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Baseboard { pub part: String, pub revision: i64, @@ -32,7 +32,7 @@ pub mod types { ///This type supports ranges similar to the `RangeTo`, `Range` and /// `RangeFrom` types in the standard library. Those cover `(..end)`, /// `(start..end)`, and `(start..)` respectively. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum BinRangedouble { ///A range unbounded below and exclusively above, `..end`. @@ -58,7 +58,7 @@ pub mod types { ///This type supports ranges similar to the `RangeTo`, `Range` and /// `RangeFrom` types in the standard library. Those cover `(..end)`, /// `(start..end)`, and `(start..)` respectively. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum BinRangeint64 { ///A range unbounded below and exclusively above, `..end`. @@ -80,7 +80,7 @@ pub mod types { } ///Type storing bin edges and a count of samples within it. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Bindouble { ///The total count of samples in this bin. pub count: u64, @@ -101,7 +101,7 @@ pub mod types { } ///Type storing bin edges and a count of samples within it. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Binint64 { ///The total count of samples in this bin. pub count: u64, @@ -121,7 +121,7 @@ pub mod types { } } - #[derive(Clone, Debug, JsonSchema, Serialize)] + #[derive(Clone, Debug, Serialize, schemars :: JsonSchema)] pub struct BlockSize(i64); impl std::ops::Deref for BlockSize { type Target = i64; @@ -170,7 +170,7 @@ pub mod types { /// 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. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ByteCount(pub u64); impl std::ops::Deref for ByteCount { type Target = u64; @@ -232,7 +232,7 @@ pub mod types { } ///Client view of a [`Certificate`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Certificate { ///human-readable free-form text about a resource pub description: String, @@ -261,7 +261,7 @@ pub mod types { ///Create-time parameters for a /// [`Certificate`](crate::external_api::views::Certificate) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct CertificateCreate { ///PEM file containing public certificate chain pub cert: Vec, @@ -286,7 +286,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct CertificateResultsPage { ///list of items on this page of results pub items: Vec, @@ -309,7 +309,7 @@ pub mod types { ///Identity-related metadata that's included in "asset" public API objects /// (which generally have no name or description) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ComponentUpdate { pub component_type: UpdateableComponentType, ///unique, immutable, system-controlled identifier for each resource @@ -334,7 +334,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ComponentUpdateResultsPage { ///list of items on this page of results pub items: Vec, @@ -356,7 +356,7 @@ pub mod types { } ///A cumulative or counter data type. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Cumulativedouble { pub start_time: chrono::DateTime, pub value: f64, @@ -375,7 +375,7 @@ pub mod types { } ///A cumulative or counter data type. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Cumulativeint64 { pub start_time: chrono::DateTime, pub value: i64, @@ -394,7 +394,7 @@ pub mod types { } ///A `Datum` is a single sampled data point from a metric. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "datum")] pub enum Datum { #[serde(rename = "bool")] @@ -473,7 +473,17 @@ pub mod types { ///The type of an individual datum of a metric. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum DatumType { #[serde(rename = "bool")] @@ -557,7 +567,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DerEncodedKeyPair { ///request signing private key (base64 encoded der file) pub private_key: String, @@ -577,7 +587,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DeviceAccessTokenRequest { pub client_id: uuid::Uuid, pub device_code: String, @@ -596,7 +606,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DeviceAuthRequest { pub client_id: uuid::Uuid, } @@ -613,7 +623,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DeviceAuthVerify { pub user_code: String, } @@ -630,7 +640,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "value")] pub enum Digest { #[serde(rename = "sha256")] @@ -644,7 +654,7 @@ pub mod types { } ///Client view of a [`Disk`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Disk { pub block_size: ByteCount, ///human-readable free-form text about a resource @@ -681,7 +691,7 @@ pub mod types { ///Create-time parameters for a /// [`Disk`](omicron_common::api::external::Disk) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskCreate { pub description: String, ///initial source for this disk @@ -706,7 +716,7 @@ pub mod types { ///TODO-v1: Delete this Parameters for the /// [`Disk`](omicron_common::api::external::Disk) to be attached or detached /// to an instance - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskIdentifier { pub name: Name, } @@ -724,7 +734,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum DiskMetricName { #[serde(rename = "activated")] @@ -796,7 +816,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskPath { pub disk: NameOrId, } @@ -814,7 +834,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskResultsPage { ///list of items on this page of results pub items: Vec, @@ -836,7 +856,7 @@ pub mod types { } ///Different sources for a disk - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum DiskSource { ///Create a blank disk @@ -864,7 +884,7 @@ pub mod types { } ///State of a Disk (primarily: attached or not) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "state", content = "instance")] pub enum DiskState { #[serde(rename = "creating")] @@ -893,7 +913,7 @@ pub mod types { } ///OS image distribution - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Distribution { ///The name of the distribution (e.g. "alpine" or "ubuntu") pub name: Name, @@ -914,7 +934,7 @@ pub mod types { } ///Error information from a response. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Error { #[serde(default, skip_serializing_if = "Option::is_none")] pub error_code: Option, @@ -934,7 +954,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ExternalIp { pub ip: std::net::IpAddr, pub kind: IpKind, @@ -953,7 +973,7 @@ pub mod types { } ///Parameters for creating an external IP address for instances. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum ExternalIpCreate { ///An IP address providing both inbound and outbound access. The @@ -973,7 +993,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ExternalIpResultsPage { ///list of items on this page of results pub items: Vec, @@ -995,7 +1015,7 @@ pub mod types { } ///The name and type information for a field of a timeseries schema. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct FieldSchema { pub name: String, pub source: FieldSource, @@ -1016,7 +1036,17 @@ pub mod types { ///The source from which a field is derived, the target or metric. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum FieldSource { #[serde(rename = "target")] @@ -1074,7 +1104,17 @@ pub mod types { ///The `FieldType` identifies the data type of a target or metric field. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum FieldType { #[serde(rename = "string")] @@ -1143,7 +1183,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum FleetRole { #[serde(rename = "admin")] @@ -1209,7 +1259,7 @@ pub mod types { ///Note that the Policy only describes access granted explicitly for this /// resource. The policies of parent resources can also cause a user to /// have access to this resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct FleetRolePolicy { ///Roles directly assigned on this resource pub role_assignments: Vec, @@ -1233,7 +1283,7 @@ pub mod types { ///The resource is not part of this structure. Rather, [`RoleAssignment`]s /// are put into a [`Policy`] and that Policy is applied to a particular /// resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct FleetRoleRoleAssignment { pub identity_id: uuid::Uuid, pub identity_type: IdentityType, @@ -1253,7 +1303,7 @@ pub mod types { } ///Client view of global Images - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct GlobalImage { ///size of blocks in bytes pub block_size: ByteCount, @@ -1295,7 +1345,7 @@ pub mod types { ///Create-time parameters for an /// [`GlobalImage`](crate::external_api::views::GlobalImage) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct GlobalImageCreate { ///block size in bytes pub block_size: BlockSize, @@ -1320,7 +1370,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct GlobalImageResultsPage { ///list of items on this page of results pub items: Vec, @@ -1342,7 +1392,7 @@ pub mod types { } ///Client view of a [`Group`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Group { ///Human-readable name that can identify the group pub display_name: String, @@ -1364,7 +1414,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct GroupResultsPage { ///list of items on this page of results pub items: Vec, @@ -1427,7 +1477,7 @@ pub mod types { /// _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In /// fact, every bin is one of those variants, the `BinRange::RangeTo` is /// only provided as a convenience during construction. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Histogramdouble { pub bins: Vec, pub n_samples: u64, @@ -1488,7 +1538,7 @@ pub mod types { /// _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In /// fact, every bin is one of those variants, the `BinRange::RangeTo` is /// only provided as a convenience during construction. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Histogramint64 { pub bins: Vec, pub n_samples: u64, @@ -1511,7 +1561,17 @@ pub mod types { /// ///Currently, we only support scanning in ascending order. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum IdSortMode { ///sort in increasing order of "id" @@ -1565,7 +1625,7 @@ pub mod types { } ///Client view of an [`IdentityProvider`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IdentityProvider { ///human-readable free-form text about a resource pub description: String, @@ -1594,7 +1654,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IdentityProviderResultsPage { ///list of items on this page of results pub items: Vec, @@ -1616,7 +1676,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum IdentityProviderType { ///SAML identity provider @@ -1671,7 +1741,17 @@ pub mod types { ///Describes what kind of identity is described by an id #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum IdentityType { #[serde(rename = "silo_user")] @@ -1727,7 +1807,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum IdpMetadataSource { #[serde(rename = "url")] @@ -1743,7 +1823,7 @@ pub mod types { } ///Client view of project Images - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Image { ///size of blocks in bytes pub block_size: ByteCount, @@ -1786,7 +1866,7 @@ pub mod types { ///Create-time parameters for an /// [`Image`](crate::external_api::views::Image) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ImageCreate { ///block size in bytes pub block_size: BlockSize, @@ -1809,7 +1889,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ImageResultsPage { ///list of items on this page of results pub items: Vec, @@ -1831,7 +1911,7 @@ pub mod types { } ///The source of the underlying image. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum ImageSource { #[serde(rename = "url")] @@ -1849,7 +1929,7 @@ pub mod types { } ///Client view of an [`Instance`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Instance { ///human-readable free-form text about a resource pub description: String, @@ -1886,7 +1966,7 @@ pub mod types { } ///The number of CPUs in an Instance - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceCpuCount(pub u16); impl std::ops::Deref for InstanceCpuCount { type Target = u16; @@ -1949,7 +2029,7 @@ pub mod types { ///Create-time parameters for an /// [`Instance`](omicron_common::api::external::Instance) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceCreate { pub description: String, ///The disks to be created or attached for this instance. @@ -1993,7 +2073,7 @@ pub mod types { } ///Describe the instance's disks at creation time - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum InstanceDiskAttachment { ///During instance creation, create and attach disks @@ -2022,7 +2102,7 @@ pub mod types { ///Migration parameters for an /// [`Instance`](omicron_common::api::external::Instance) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceMigrate { pub dst_sled_id: uuid::Uuid, } @@ -2041,7 +2121,7 @@ pub mod types { ///Describes an attachment of a `NetworkInterface` to an `Instance`, at the /// time the instance is created. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "params")] pub enum InstanceNetworkInterfaceAttachment { ///Create one or more `NetworkInterface`s for the `Instance`. @@ -2069,7 +2149,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceResultsPage { ///list of items on this page of results pub items: Vec, @@ -2091,7 +2171,7 @@ pub mod types { } ///Contents of an Instance's serial console buffer. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceSerialConsoleData { ///The bytes starting from the requested offset up to either the end of /// the buffer or the request's `max_bytes`. Provided as a u8 array @@ -2119,7 +2199,17 @@ pub mod types { ///This typically reflects whether it's starting, running, stopping, or /// stopped, but also includes states related to the Instance's lifecycle #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum InstanceState { ///The instance is being created. @@ -2223,7 +2313,17 @@ pub mod types { ///The kind of an external IP address for an instance #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum IpKind { #[serde(rename = "ephemeral")] @@ -2279,7 +2379,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(untagged)] pub enum IpNet { V4(Ipv4Net), @@ -2349,7 +2449,7 @@ pub mod types { ///Identity-related metadata that's included in nearly all public API /// objects - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPool { ///human-readable free-form text about a resource pub description: String, @@ -2378,7 +2478,7 @@ pub mod types { ///Create-time parameters for an IP Pool. /// ///See [`IpPool`](crate::external_api::views::IpPool) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPoolCreate { pub description: String, pub name: Name, @@ -2396,7 +2496,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPoolRange { pub id: uuid::Uuid, pub range: IpRange, @@ -2416,7 +2516,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPoolRangeResultsPage { ///list of items on this page of results pub items: Vec, @@ -2438,7 +2538,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPoolResultsPage { ///list of items on this page of results pub items: Vec, @@ -2460,7 +2560,7 @@ pub mod types { } ///Parameters for updating an IP Pool - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct IpPoolUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -2480,7 +2580,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(untagged)] pub enum IpRange { V4(Ipv4Range), @@ -2506,7 +2606,9 @@ pub mod types { } ///An IPv4 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct Ipv4Net(String); impl std::ops::Deref for Ipv4Net { type Target = String; @@ -2583,7 +2685,7 @@ pub mod types { ///A non-decreasing IPv4 address range, inclusive of both ends. /// ///The first address must be less than or equal to the last address. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Ipv4Range { pub first: std::net::Ipv4Addr, pub last: std::net::Ipv4Addr, @@ -2602,7 +2704,9 @@ pub mod types { } ///An IPv6 subnet, including prefix and subnet mask - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct Ipv6Net(String); impl std::ops::Deref for Ipv6Net { type Target = String; @@ -2678,7 +2782,7 @@ pub mod types { ///A non-decreasing IPv6 address range, inclusive of both ends. /// ///The first address must be less than or equal to the last address. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Ipv6Range { pub first: std::net::Ipv6Addr, pub last: std::net::Ipv6Addr, @@ -2698,7 +2802,9 @@ pub mod types { ///An inclusive-inclusive range of IP ports. The second port may be omitted /// to represent a single port - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct L4PortRange(String); impl std::ops::Deref for L4PortRange { type Target = String; @@ -2772,7 +2878,9 @@ pub mod types { } ///A Media Access Control address, in EUI-48 format - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct MacAddr(String); impl std::ops::Deref for MacAddr { type Target = String; @@ -2846,7 +2954,7 @@ pub mod types { } ///A `Measurement` is a timestamped datum from a single metric - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Measurement { pub datum: Datum, pub timestamp: chrono::DateTime, @@ -2865,7 +2973,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct MeasurementResultsPage { ///list of items on this page of results pub items: Vec, @@ -2889,7 +2997,9 @@ pub mod types { ///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 '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct Name(String); impl std::ops::Deref for Name { type Target = String; @@ -2953,7 +3063,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(untagged)] pub enum NameOrId { Id(uuid::Uuid), @@ -3023,7 +3133,17 @@ pub mod types { ///Supported set of sort modes for scanning by name or id #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum NameOrIdSortMode { ///sort in increasing order of "name" @@ -3090,7 +3210,17 @@ pub mod types { /// ///Currently, we only support scanning in ascending order. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum NameSortMode { ///sort in increasing order of "name" @@ -3144,7 +3274,7 @@ pub mod types { } ///A `NetworkInterface` represents a virtual network interface device. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterface { ///human-readable free-form text about a resource pub description: String, @@ -3185,7 +3315,7 @@ pub mod types { ///Create-time parameters for a /// [`NetworkInterface`](omicron_common::api::external::NetworkInterface) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterfaceCreate { pub description: String, ///The IP address for the interface. One will be auto-assigned if not @@ -3212,7 +3342,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterfaceResultsPage { ///list of items on this page of results pub items: Vec, @@ -3238,7 +3368,7 @@ pub mod types { /// ///Note that modifying IP addresses for an interface is not yet supported, /// a new interface must be created instead. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterfaceUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -3278,7 +3408,16 @@ pub mod types { /// (either directly or indirectly) can access the node's output using its /// name. #[derive( - Clone, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub struct NodeName(pub String); impl std::ops::Deref for NodeName { @@ -3320,7 +3459,7 @@ pub mod types { } ///Client view of an [`Organization`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Organization { ///human-readable free-form text about a resource pub description: String, @@ -3348,7 +3487,7 @@ pub mod types { ///Create-time parameters for an /// [`Organization`](crate::external_api::views::Organization) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OrganizationCreate { pub description: String, pub name: Name, @@ -3367,7 +3506,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OrganizationResultsPage { ///list of items on this page of results pub items: Vec, @@ -3389,7 +3528,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum OrganizationRole { #[serde(rename = "admin")] @@ -3455,7 +3604,7 @@ pub mod types { ///Note that the Policy only describes access granted explicitly for this /// resource. The policies of parent resources can also cause a user to /// have access to this resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OrganizationRolePolicy { ///Roles directly assigned on this resource pub role_assignments: Vec, @@ -3479,7 +3628,7 @@ pub mod types { ///The resource is not part of this structure. Rather, [`RoleAssignment`]s /// are put into a [`Policy`] and that Policy is applied to a particular /// resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OrganizationRoleRoleAssignment { pub identity_id: uuid::Uuid, pub identity_type: IdentityType, @@ -3500,7 +3649,7 @@ pub mod types { ///Updateable properties of an /// [`Organization`](crate::external_api::views::Organization) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct OrganizationUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -3521,7 +3670,9 @@ pub mod types { } ///Passwords may be subject to additional constraints. - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct Password(String); impl std::ops::Deref for Password { type Target = String; @@ -3585,7 +3736,7 @@ pub mod types { } ///Client view of a [`PhysicalDisk`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct PhysicalDisk { pub disk_type: PhysicalDiskType, ///unique, immutable, system-controlled identifier for each resource @@ -3615,7 +3766,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct PhysicalDiskResultsPage { ///list of items on this page of results pub items: Vec, @@ -3637,7 +3788,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum PhysicalDiskType { #[serde(rename = "internal")] @@ -3694,7 +3855,7 @@ pub mod types { } ///Client view of a [`Project`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Project { ///human-readable free-form text about a resource pub description: String, @@ -3723,7 +3884,7 @@ pub mod types { ///Create-time parameters for a /// [`Project`](crate::external_api::views::Project) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ProjectCreate { pub description: String, pub name: Name, @@ -3742,7 +3903,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ProjectResultsPage { ///list of items on this page of results pub items: Vec, @@ -3764,7 +3925,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum ProjectRole { #[serde(rename = "admin")] @@ -3830,7 +4001,7 @@ pub mod types { ///Note that the Policy only describes access granted explicitly for this /// resource. The policies of parent resources can also cause a user to /// have access to this resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ProjectRolePolicy { ///Roles directly assigned on this resource pub role_assignments: Vec, @@ -3854,7 +4025,7 @@ pub mod types { ///The resource is not part of this structure. Rather, [`RoleAssignment`]s /// are put into a [`Policy`] and that Policy is applied to a particular /// resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ProjectRoleRoleAssignment { pub identity_id: uuid::Uuid, pub identity_type: IdentityType, @@ -3875,7 +4046,7 @@ pub mod types { ///Updateable properties of a /// [`Project`](crate::external_api::views::Project) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct ProjectUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -3896,7 +4067,7 @@ pub mod types { } ///Client view of an [`Rack`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Rack { ///unique, immutable, system-controlled identifier for each resource pub id: uuid::Uuid, @@ -3919,7 +4090,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RackResultsPage { ///list of items on this page of results pub items: Vec, @@ -3941,7 +4112,7 @@ pub mod types { } ///Client view of a [`Role`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Role { pub description: String, pub name: RoleName, @@ -3960,7 +4131,9 @@ pub mod types { } ///Role names consist of two string components separated by dot ("."). - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct RoleName(String); impl std::ops::Deref for RoleName { type Target = String; @@ -4031,7 +4204,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RoleResultsPage { ///list of items on this page of results pub items: Vec, @@ -4058,7 +4231,7 @@ pub mod types { ///When traffic is to be sent to a destination that is within a given /// `RouteDestination`, the corresponding [`RouterRoute`] applies, and /// traffic will be forward to the [`RouteTarget`] for that rule. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "value")] pub enum RouteDestination { ///Route applies to traffic destined for a specific IP address @@ -4095,7 +4268,7 @@ pub mod types { ///A `RouteTarget` describes the possible locations that traffic matching a /// route destination can be sent. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "value")] pub enum RouteTarget { ///Forward traffic to a particular IP address. @@ -4129,7 +4302,7 @@ pub mod types { ///A route defines a rule that governs where traffic should be sent based /// on its destination. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RouterRoute { ///human-readable free-form text about a resource pub description: String, @@ -4162,7 +4335,7 @@ pub mod types { } ///Create-time parameters for a [`RouterRoute`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RouterRouteCreateParams { pub description: String, pub destination: RouteDestination, @@ -4188,7 +4361,17 @@ pub mod types { /// ///See [RFD-21](https://rfd.shared.oxide.computer/rfd/0021#concept-router) for more context #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum RouterRouteKind { ///Determines the default destination of traffic, such as whether it @@ -4266,7 +4449,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RouterRouteResultsPage { ///list of items on this page of results pub items: Vec, @@ -4288,7 +4471,7 @@ pub mod types { } ///Updateable properties of a [`RouterRoute`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct RouterRouteUpdateParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -4310,7 +4493,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Saga { pub id: uuid::Uuid, pub state: SagaState, @@ -4328,7 +4511,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "error")] pub enum SagaErrorInfo { #[serde(rename = "action_failed")] @@ -4350,7 +4533,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SagaResultsPage { ///list of items on this page of results pub items: Vec, @@ -4371,7 +4554,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "state")] pub enum SagaState { #[serde(rename = "running")] @@ -4393,7 +4576,7 @@ pub mod types { ///Identity-related metadata that's included in nearly all public API /// objects - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SamlIdentityProvider { ///service provider endpoint where the response will be sent pub acs_url: String, @@ -4434,7 +4617,7 @@ pub mod types { } ///Create-time identity-related parameters - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SamlIdentityProviderCreate { ///service provider endpoint where the response will be sent pub acs_url: String, @@ -4472,7 +4655,9 @@ pub mod types { } } - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct SemverVersion(String); impl std::ops::Deref for SemverVersion { type Target = String; @@ -4541,7 +4726,17 @@ pub mod types { ///The service intended to use this certificate. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum ServiceUsingCertificate { ///This certificate is intended for access to the external API. @@ -4595,7 +4790,7 @@ pub mod types { } ///Client view of a ['Silo'] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Silo { ///human-readable free-form text about a resource pub description: String, @@ -4627,7 +4822,7 @@ pub mod types { } ///Create-time parameters for a [`Silo`](crate::external_api::views::Silo) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SiloCreate { ///If set, this group will be created during Silo creation and granted /// the "Silo Admin" role. Identity providers can assert that users @@ -4660,7 +4855,17 @@ pub mod types { ///Describes how identities are managed and users are authenticated in this /// Silo #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum SiloIdentityMode { ///Users are authenticated with SAML using an external authentication @@ -4723,7 +4928,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SiloResultsPage { ///list of items on this page of results pub items: Vec, @@ -4745,7 +4950,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum SiloRole { #[serde(rename = "admin")] @@ -4811,7 +5026,7 @@ pub mod types { ///Note that the Policy only describes access granted explicitly for this /// resource. The policies of parent resources can also cause a user to /// have access to this resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SiloRolePolicy { ///Roles directly assigned on this resource pub role_assignments: Vec, @@ -4835,7 +5050,7 @@ pub mod types { ///The resource is not part of this structure. Rather, [`RoleAssignment`]s /// are put into a [`Policy`] and that Policy is applied to a particular /// resource. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SiloRoleRoleAssignment { pub identity_id: uuid::Uuid, pub identity_type: IdentityType, @@ -4855,7 +5070,7 @@ pub mod types { } ///Client view of a [`Sled`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Sled { pub baseboard: Baseboard, ///unique, immutable, system-controlled identifier for each resource @@ -4880,7 +5095,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SledResultsPage { ///list of items on this page of results pub items: Vec, @@ -4902,7 +5117,7 @@ pub mod types { } ///Client view of a Snapshot - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Snapshot { ///human-readable free-form text about a resource pub description: String, @@ -4934,7 +5149,7 @@ pub mod types { ///Create-time parameters for a /// [`Snapshot`](crate::external_api::views::Snapshot) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SnapshotCreate { pub description: String, ///The name of the disk to be snapshotted @@ -4955,7 +5170,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SnapshotResultsPage { ///list of items on this page of results pub items: Vec, @@ -4977,7 +5192,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum SnapshotState { #[serde(rename = "creating")] @@ -5041,7 +5266,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SpoofLoginBody { pub username: String, } @@ -5059,7 +5284,7 @@ pub mod types { } ///Client view of a [`SshKey`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SshKey { ///human-readable free-form text about a resource pub description: String, @@ -5091,7 +5316,7 @@ pub mod types { ///Create-time parameters for an /// [`SshKey`](crate::external_api::views::SshKey) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SshKeyCreate { pub description: String, pub name: Name, @@ -5112,7 +5337,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SshKeyResultsPage { ///list of items on this page of results pub items: Vec, @@ -5134,7 +5359,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum SystemMetricName { #[serde(rename = "virtual_disk_space_provisioned")] @@ -5196,7 +5431,7 @@ pub mod types { ///Identity-related metadata that's included in "asset" public API objects /// (which generally have no name or description) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SystemUpdate { ///unique, immutable, system-controlled identifier for each resource pub id: uuid::Uuid, @@ -5220,7 +5455,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SystemUpdateResultsPage { ///list of items on this page of results pub items: Vec, @@ -5241,7 +5476,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SystemUpdateStart { pub version: SemverVersion, } @@ -5258,7 +5493,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct SystemVersion { pub status: UpdateStatus, pub version_range: VersionRange, @@ -5279,7 +5514,9 @@ pub mod types { ///Names are constructed by concatenating the target and metric names with /// ':'. Target and metric names must be lowercase alphanumeric characters /// with '_' separating words. - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct TimeseriesName(String); impl std::ops::Deref for TimeseriesName { type Target = String; @@ -5354,7 +5591,7 @@ pub mod types { /// ///This includes the name of the timeseries, as well as the datum type of /// its metric and the schema for each field. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TimeseriesSchema { pub created: chrono::DateTime, pub datum_type: DatumType, @@ -5375,7 +5612,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct TimeseriesSchemaResultsPage { ///list of items on this page of results pub items: Vec, @@ -5398,7 +5635,7 @@ pub mod types { ///Identity-related metadata that's included in "asset" public API objects /// (which generally have no name or description) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UpdateDeployment { ///unique, immutable, system-controlled identifier for each resource pub id: uuid::Uuid, @@ -5423,7 +5660,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UpdateDeploymentResultsPage { ///list of items on this page of results pub items: Vec, @@ -5445,7 +5682,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] #[serde(tag = "status")] pub enum UpdateStatus { @@ -5504,7 +5751,7 @@ pub mod types { ///Identity-related metadata that's included in "asset" public API objects /// (which generally have no name or description) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UpdateableComponent { pub component_type: UpdateableComponentType, pub device_id: String, @@ -5532,7 +5779,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UpdateableComponentResultsPage { ///list of items on this page of results pub items: Vec, @@ -5554,7 +5801,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum UpdateableComponentType { #[serde(rename = "bootloader_for_rot")] @@ -5651,7 +5908,7 @@ pub mod types { } ///Client view of a [`User`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct User { ///Human-readable name that can identify the user pub display_name: String, @@ -5673,7 +5930,7 @@ pub mod types { } ///Client view of a [`UserBuiltin`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserBuiltin { ///human-readable free-form text about a resource pub description: String, @@ -5700,7 +5957,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserBuiltinResultsPage { ///list of items on this page of results pub items: Vec, @@ -5722,7 +5979,7 @@ pub mod types { } ///Create-time parameters for a [`User`](crate::external_api::views::User) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserCreate { ///username used to log in pub external_id: UserId, @@ -5745,7 +6002,9 @@ pub mod types { ///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 '-'. Names cannot be a UUID though they may contain a UUID. - #[derive(Clone, Debug, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize)] + #[derive( + Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, schemars :: JsonSchema, + )] pub struct UserId(String); impl std::ops::Deref for UserId { type Target = String; @@ -5810,7 +6069,7 @@ pub mod types { } ///Parameters for setting a user's password - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "user_password_value", content = "details")] pub enum UserPassword { ///Sets the user's password to the provided value @@ -5833,7 +6092,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UserResultsPage { ///list of items on this page of results pub items: Vec, @@ -5855,7 +6114,7 @@ pub mod types { } ///Credentials for local user login - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct UsernamePasswordCredentials { pub password: Password, pub username: UserId, @@ -5873,7 +6132,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VersionRange { pub high: SemverVersion, pub low: SemverVersion, @@ -5892,7 +6151,7 @@ pub mod types { } ///Client view of a [`Vpc`] - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Vpc { ///human-readable free-form text about a resource pub description: String, @@ -5927,7 +6186,7 @@ pub mod types { } ///Create-time parameters for a [`Vpc`](crate::external_api::views::Vpc) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcCreate { pub description: String, pub dns_name: Name, @@ -5955,7 +6214,7 @@ pub mod types { } ///A single rule in a VPC firewall - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcFirewallRule { ///whether traffic matching the rule should be allowed or dropped pub action: VpcFirewallRuleAction, @@ -5996,7 +6255,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum VpcFirewallRuleAction { #[serde(rename = "allow")] @@ -6053,7 +6322,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum VpcFirewallRuleDirection { #[serde(rename = "inbound")] @@ -6112,7 +6391,7 @@ pub mod types { ///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. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcFirewallRuleFilter { ///If present, the sources (if incoming) or destinations (if outgoing) /// this rule applies to. @@ -6140,7 +6419,7 @@ pub mod types { ///The `VpcFirewallRuleHostFilter` is used to filter traffic on the basis /// of its source or destination host. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "value")] pub enum VpcFirewallRuleHostFilter { ///The rule applies to traffic from/to all instances in the VPC @@ -6180,7 +6459,17 @@ pub mod types { ///The protocols that may be specified in a firewall rule's filter #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum VpcFirewallRuleProtocol { #[serde(rename = "TCP")] @@ -6241,7 +6530,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum VpcFirewallRuleStatus { #[serde(rename = "disabled")] @@ -6299,7 +6598,7 @@ pub mod types { ///A `VpcFirewallRuleTarget` is used to specify the set of [`Instance`]s to /// which a firewall rule applies. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type", content = "value")] pub enum VpcFirewallRuleTarget { ///The rule applies to all instances in the VPC @@ -6338,7 +6637,7 @@ pub mod types { } ///A single rule in a VPC firewall - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcFirewallRuleUpdate { ///whether traffic matching the rule should be allowed or dropped pub action: VpcFirewallRuleAction, @@ -6373,7 +6672,7 @@ pub mod types { ///Updateable properties of a `Vpc`'s firewall Note that VpcFirewallRules /// are implicitly created along with a Vpc, so there is no explicit /// creation. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcFirewallRuleUpdateParams { pub rules: Vec, } @@ -6391,7 +6690,7 @@ pub mod types { } ///Collection of a Vpc's firewall rules - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcFirewallRules { pub rules: Vec, } @@ -6409,7 +6708,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcResultsPage { ///list of items on this page of results pub items: Vec, @@ -6432,7 +6731,7 @@ pub mod types { ///A VPC router defines a series of rules that indicate where traffic /// should be sent depending on its destination. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcRouter { ///human-readable free-form text about a resource pub description: String, @@ -6463,7 +6762,7 @@ pub mod types { ///Create-time parameters for a /// [`VpcRouter`](crate::external_api::views::VpcRouter) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcRouterCreate { pub description: String, pub name: Name, @@ -6482,7 +6781,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum VpcRouterKind { #[serde(rename = "system")] @@ -6539,7 +6848,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcRouterResultsPage { ///list of items on this page of results pub items: Vec, @@ -6562,7 +6871,7 @@ pub mod types { ///Updateable properties of a /// [`VpcRouter`](crate::external_api::views::VpcRouter) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcRouterUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -6585,7 +6894,7 @@ pub mod types { ///A VPC subnet represents a logical grouping for instances that allows /// network traffic between them, within a IPv4 subnetwork or optionall an /// IPv6 subnetwork. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcSubnet { ///human-readable free-form text about a resource pub description: String, @@ -6619,7 +6928,7 @@ pub mod types { ///Create-time parameters for a /// [`VpcSubnet`](crate::external_api::views::VpcSubnet) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcSubnetCreate { pub description: String, ///The IPv4 address range for this subnet. @@ -6651,7 +6960,7 @@ pub mod types { } ///A single page of results - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcSubnetResultsPage { ///list of items on this page of results pub items: Vec, @@ -6674,7 +6983,7 @@ pub mod types { ///Updateable properties of a /// [`VpcSubnet`](crate::external_api::views::VpcSubnet) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcSubnetUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, @@ -6695,7 +7004,7 @@ pub mod types { } ///Updateable properties of a [`Vpc`](crate::external_api::views::Vpc) - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct VpcUpdate { #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, diff --git a/progenitor-impl/tests/output/propolis-server-builder.out b/progenitor-impl/tests/output/propolis-server-builder.out index 71c5f11..3852f12 100644 --- a/progenitor-impl/tests/output/propolis-server-builder.out +++ b/progenitor-impl/tests/output/propolis-server-builder.out @@ -7,7 +7,7 @@ pub mod types { use serde::{Deserialize, Serialize}; #[allow(unused_imports)] use std::convert::TryFrom; - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct CrucibleOpts { #[serde(default, skip_serializing_if = "Option::is_none")] pub cert_pem: Option, @@ -39,7 +39,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskAttachment { pub disk_id: uuid::Uuid, pub generation_id: u64, @@ -58,7 +58,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub enum DiskAttachmentState { Detached, Destroyed, @@ -78,7 +78,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct DiskRequest { pub device: String, pub gen: u64, @@ -101,7 +101,7 @@ pub mod types { } ///Error information from a response. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Error { #[serde(default, skip_serializing_if = "Option::is_none")] pub error_code: Option, @@ -121,7 +121,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Instance { pub disks: Vec, pub nics: Vec, @@ -141,7 +141,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceEnsureRequest { #[serde(default, skip_serializing_if = "Option::is_none")] pub cloud_init_bytes: Option, @@ -166,7 +166,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceEnsureResponse { #[serde(default, skip_serializing_if = "Option::is_none")] pub migrate: Option, @@ -184,7 +184,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceGetResponse { pub instance: Instance, } @@ -201,7 +201,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceMigrateInitiateRequest { pub migration_id: uuid::Uuid, pub src_addr: String, @@ -220,7 +220,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceMigrateInitiateResponse { pub migration_id: uuid::Uuid, } @@ -237,7 +237,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceMigrateStatusRequest { pub migration_id: uuid::Uuid, } @@ -254,7 +254,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceMigrateStatusResponse { pub state: MigrationState, } @@ -271,7 +271,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceProperties { ///ID of the bootrom used to initialize this Instance. pub bootrom_id: uuid::Uuid, @@ -303,7 +303,17 @@ pub mod types { ///Current state of an Instance. #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum InstanceState { Creating, @@ -381,7 +391,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceStateMonitorRequest { pub gen: u64, } @@ -398,7 +408,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct InstanceStateMonitorResponse { pub gen: u64, pub state: InstanceState, @@ -417,7 +427,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum InstanceStateRequested { Run, @@ -478,7 +498,17 @@ pub mod types { } #[derive( - Clone, Copy, Debug, Deserialize, Eq, Hash, JsonSchema, Ord, PartialEq, PartialOrd, Serialize, + Clone, + Copy, + Debug, + Deserialize, + Eq, + Hash, + Ord, + PartialEq, + PartialOrd, + Serialize, + schemars :: JsonSchema, )] pub enum MigrationState { Sync, @@ -556,7 +586,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterface { pub attachment: NetworkInterfaceAttachmentState, pub name: String, @@ -574,7 +604,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub enum NetworkInterfaceAttachmentState { Detached, Faulted, @@ -593,7 +623,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct NetworkInterfaceRequest { pub name: String, pub slot: Slot, @@ -613,7 +643,7 @@ pub mod types { ///A stable index which is translated by Propolis into a PCI BDF, visible /// to the guest. - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] pub struct Slot(pub u8); impl std::ops::Deref for Slot { type Target = u8; @@ -674,7 +704,7 @@ pub mod types { } } - #[derive(Clone, Debug, Deserialize, JsonSchema, Serialize)] + #[derive(Clone, Debug, Deserialize, Serialize, schemars :: JsonSchema)] #[serde(tag = "type")] pub enum VolumeConstructionRequest { #[serde(rename = "volume")] diff --git a/progenitor-impl/tests/test_output.rs b/progenitor-impl/tests/test_output.rs index d50325a..e910d97 100644 --- a/progenitor-impl/tests/test_output.rs +++ b/progenitor-impl/tests/test_output.rs @@ -66,7 +66,7 @@ fn verify_apis(openapi_file: &str) { GenerationSettings::default() .with_interface(InterfaceStyle::Builder) .with_tag(TagStyle::Merged) - .with_derive("JsonSchema") + .with_derive("schemars::JsonSchema") .with_patch("Name", TypePatch::default().with_derive("Hash")) .with_conversion( schemars::schema::SchemaObject {