code: public EtcdResult cas(String key, String value, Map<String, String> params) throws EtcdClientException {
          List<BasicNameValuePair> data = Lists.newArrayList();
          data.add(new BasicNameValuePair("value", value));
  
          return put(key, data, params, new int[] {200, 412}, 101, 105);
      }
docs: Atomic Compare-and-Swap
  @param key the key
  @param value the new value
  @param params comparable conditions
  @return operation result
  @throws EtcdClientException