SharedFolderMetadata enc.IEncodable <SharedFolderMetadata> .Decode(enc.IDecoder decoder)
        {
            var tag = string.Empty;

            using (var obj = decoder.GetObject())
            {
                tag = obj.GetField <string>(".tag");
            }

            switch (tag)
            {
            case "basic":
                var basic = new BasicSharedFolderMetadata();
                return(((enc.IEncodable <BasicSharedFolderMetadata>)basic).Decode(decoder));

            case "full":
                var full = new FullSharedFolderMetadata();
                return(((enc.IEncodable <FullSharedFolderMetadata>)full).Decode(decoder));

            default:
                throw new sys.InvalidOperationException();
            }
        }
 /// <summary>
 /// <para>Initializes a new instance of the <see cref="Complete" /> class.</para>
 /// </summary>
 /// <param name="value">The value</param>
 public Complete(FullSharedFolderMetadata value)
 {
     this.Value = value;
 }