pub struct SchemaMetadataEntry {
pub properties: Vec<String>,
pub required: Vec<String>,
pub property_types: HashMap<String, String>,
pub property_enums: HashMap<String, Vec<Value>>,
pub property_constraints: HashMap<String, SchemaPropertyConstraints>,
pub dependent_required: HashMap<String, Vec<String>>,
pub dependent_excluded: HashMap<String, Vec<String>>,
pub required_or: Vec<String>,
pub required_xor: Vec<String>,
pub additional: BTreeMap<String, Value>,
}Expand description
Per-resource-type schema metadata describing the type’s top-level properties.
The nested shape of object and array properties is not repeated here: the schema validator enforces it from the compiled schemas, which keep shared definitions by reference. What the engines need per property is its primary type, its allowed values, and the scalar constraints on its own value.
properties, required, property_types, and property_enums always
serialize, even when empty, because the generator emits them for every type;
preserving that presence is required for lossless round-tripping. Fields the
current code does not model are retained in Self::additional.
Fields§
§properties: Vec<String>§required: Vec<String>§property_types: HashMap<String, String>Each property’s primary type: the declared type, or the first non-null member when the schema lists several.
property_enums: HashMap<String, Vec<Value>>Each property’s allowed values: its enum, or its enumCaseInsensitive
values when the service compares them case-insensitively.
property_constraints: HashMap<String, SchemaPropertyConstraints>§dependent_required: HashMap<String, Vec<String>>§dependent_excluded: HashMap<String, Vec<String>>§required_or: Vec<String>§required_xor: Vec<String>§additional: BTreeMap<String, Value>