private IResource MapResource()

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;
        }