schema_registry_api/domain/subject/
mod.rs1mod name;
2
3use crate::{SchemaId, SchemaReference, SchemaType, SchemaVersion};
4
5pub use self::name::*;
6
7#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
9pub struct SubjectVersion {
10 pub subject: SubjectName,
12 pub version: SchemaVersion,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
18#[serde(rename_all = "camelCase")]
19pub struct Subject {
20 pub subject: SubjectName,
22 pub id: SchemaId,
24 pub version: SchemaVersion,
26 #[serde(rename = "schema_type", default)]
28 pub schema_type: SchemaType,
29 pub schema: String,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct RegisterSchema {
37 pub schema: String,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub schema_type: Option<SchemaType>,
42 #[serde(skip_serializing_if = "Vec::is_empty")]
44 pub references: Vec<SchemaReference>,
45}
46
47#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
49pub struct RegisteredSchema {
50 pub id: SchemaId,
52}