1mod wire;
2
3use schemars::generate::SchemaSettings;
4
5pub use wire::{
6 AdapterError, AdapterErrorCode, AdapterProtocol, AdapterRequest, AdapterResponse,
7 AdapterResult, BenchCaseInput, BenchClientRequest, BenchClientResult, BenchDefinitionInput,
8 BenchLoadInput, CaptureControlRequirement, CaptureTargetRequirement, ClientEndpointInput,
9 ClientStatus, EndpointAssignment, EndpointProtocol, EndpointRequirement, EvalClientRequest,
10 EvalClientResult, EvalDefinitionInput, HttpActionSpec, HttpMethod, IntegrationIdentity,
11 KvTransferMechanism, Parallelism, ParallelismAttention, ParallelismExperts, ParallelismOuter,
12 PlanServeInput, PlanServeResult, ProcessSpec, ProtocolVersion, PublicEndpointRequirement,
13 RawArtifact, ReadinessProbe, RenderServeInput, RenderServeResult, RenderedServeProcess,
14 ServeModelInput, ServeProcessAllocation, ServeReplicaRequirement, ServeRoleInput,
15 ServeRoleKind, ServeRoleLink, ServeRoleResult, ServeTopology, SettingValue,
16};
17
18pub const PROTOCOL_SCHEMA_ID: &str = "https://inferlab.dev/schema/adapter-protocol/v3";
19
20#[must_use]
21pub fn protocol_schema() -> schemars::Schema {
22 let mut schema = SchemaSettings::draft2020_12()
23 .for_deserialize()
24 .into_generator()
25 .into_root_schema_for::<AdapterProtocol>();
26 schema
27 .ensure_object()
28 .insert("$id".to_owned(), PROTOCOL_SCHEMA_ID.into());
29 schema
30}