/// <summary>
        /// Update Metadata
        /// </summary>
        /// <example>
        /// {
        /// "Value":"metadata value"
        /// }
        /// </example>
        /// <remarks>
        /// Updates a single Metadata entry that has a specified Name for a given Item. Fails if an entry with the given name doesn't exist for this Item.
        /// </remarks>
        /// <param name="url"></param>
        /// <param name="metadataId"></param>
        /// <returns>
        /// The updated Metadata object
        /// </returns>
        public IQuery<Metadata> UpdateByItem(Uri url, string metadataId, Metadata metadata)
        {
            var sfApiQuery = new ShareFile.Api.Client.Requests.Query<Metadata>(Client);
		    sfApiQuery.Action("Metadata");
            sfApiQuery.Uri(url);
            sfApiQuery.ActionIds(metadataId);
            sfApiQuery.Body = metadata;
            sfApiQuery.HttpMethod = "PATCH";	
		    return sfApiQuery;
        }
        /// <summary>
        /// Update Metadata
        /// </summary>
        /// <example>
        /// {
        /// "Value":"metadata value"
        /// }
        /// </example>
        /// <remarks>
        /// Updates a single Metadata entry that has a specified Name for a given Item. Fails if an entry with the given name doesn't exist for this Item.
        /// </remarks>
        /// <returns>
        /// The updated Metadata object
        /// </returns>
        public IQuery<Metadata> Update(Uri url, Metadata metadata)
        {
            var sfApiQuery = new ShareFile.Api.Client.Requests.Query<Metadata>(Client);
            sfApiQuery.Uri(url);
            sfApiQuery.Body = metadata;
            sfApiQuery.HttpMethod = "GET";	
		    return sfApiQuery;
        }
        /// <summary>
        /// Create Metadata
        /// </summary>
        /// <example>
        /// {
        /// "Name":"metadata name",
        /// "Value":"metadata value"
        /// }
        /// </example>
        /// <remarks>
        /// Creates a single Metadata entry that has a specified Name for a given Item. Fails if an entry with the given name already exists for this Item.
        /// </remarks>
        /// <param name="url"></param>
        /// <returns>
        /// The created Metadata object
        /// </returns>
        public IQuery<Metadata> CreateByItem(Uri url, Metadata metadata)
        {
            var sfApiQuery = new ShareFile.Api.Client.Requests.Query<Metadata>(Client);
		    sfApiQuery.Action("Metadata");
            sfApiQuery.Uri(url);
            sfApiQuery.Body = metadata;
            sfApiQuery.HttpMethod = "POST";	
		    return sfApiQuery;
        }