public async Task <KvMetadata> TryAddAsync <T>(string key,
                                                       T item)
        {
            Guard.ArgumentNotNullOrEmpty("key", key);
            Guard.ArgumentNotNull("item", item);

            HttpUrlBuilder uri = new HttpUrlBuilder(host)
                                 .AppendPath(CollectionName)
                                 .AppendPath(key);

            var response = await restClient.SendIfNoneMatchAsync(uri, HttpMethod.Put, item);

            return(KvMetadata.Make(CollectionName, response));
        }