(app_version: &str)
| 9 | }; |
| 10 | |
| 11 | pub fn build_openapi_doc(app_version: &str) -> Result<OpenApiDoc> { |
| 12 | let info = DocumentInfo::new("dstack-vmm RPC", app_version.to_string()) |
| 13 | .with_description( |
| 14 | "Auto-generated OpenAPI spec for the pRPC surfaces exposed by dstack-vmm.", |
| 15 | ) |
| 16 | .add_server("/"); |
| 17 | |
| 18 | let sources = vec![ |
| 19 | DescriptorSource::new( |
| 20 | dstack_vmm_rpc::FILE_DESCRIPTOR_SET, |
| 21 | vec![ServiceConfig::new("Vmm", "/prpc")], |
| 22 | ), |
| 23 | DescriptorSource::new( |
| 24 | guest_api::FILE_DESCRIPTOR_SET, |
| 25 | vec![ServiceConfig::new("ProxiedGuestApi", "/guest")], |
| 26 | ), |
| 27 | ]; |
| 28 | |
| 29 | let ui = SwaggerUiConfig { |
| 30 | title: "dstack-vmm RPC Explorer".to_string(), |
| 31 | ..Default::default() |
| 32 | }; |
| 33 | |
| 34 | build_doc(&sources, &info, ui).context("failed to build OpenAPI document") |
| 35 | } |
no test coverage detected