in src/PSDocs/Common/YamlConverters.cs [312:351]
private IResource MapResource(IParser reader, Func<IParser, Type, object> nestedObjectDeserializer, CommentMetadata comment)
{
IResource result = null;
string apiVersion = null;
string kind = null;
ResourceMetadata metadata = null;
if (reader.TryConsume<MappingStart>(out _))
{
while (reader.TryConsume(out Scalar scalar))
{
// Read apiVersion
if (TryApiVersion(reader, scalar, out string apiVersionValue))
{
apiVersion = apiVersionValue;
}
// Read kind
else if (TryKind(reader, scalar, out string kindValue))
{
kind = kindValue;
}
// Read metadata
else if (TryMetadata(reader, scalar, nestedObjectDeserializer, out ResourceMetadata metadataValue))
{
metadata = metadataValue;
}
// Read spec
else if (apiVersion != null && kind != null && TrySpec(reader, scalar, apiVersion, kind, nestedObjectDeserializer, metadata, comment, out IResource resource))
{
result = resource;
}
else
{
reader.SkipThisAndNestedEvents();
}
}
reader.Require<MappingEnd>();
reader.MoveNext();
}
return result;
}