@@ -162,18 +162,20 @@ public function keys($prefix = null, QueryOptions $queryOptions = null)
162162 }
163163
164164 /**
165- * @param KVPair $KVPair
165+ * @param KVPair $p
166166 * @param WriteOptions $writeOptions
167167 * @return array(
168168 * @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
169169 * @type \DCarbone\PHPConsulAPI\Error|null error, if any
170170 * )
171171 */
172- public function put (KVPair $ KVPair , WriteOptions $ writeOptions = null )
172+ public function put (KVPair $ p , WriteOptions $ writeOptions = null )
173173 {
174- $ r = new HttpRequest ('put ' , sprintf ('v1/kv/%s ' , $ KVPair ->Key ), $ this ->_Config );
174+ $ r = new HttpRequest ('put ' , sprintf ('v1/kv/%s ' , $ p ->Key ), $ this ->_Config );
175175 $ r ->setWriteOptions ($ writeOptions );
176- $ r ->body = ($ KVPair );
176+ $ r ->body = $ p ->Value ;
177+ if (0 !== $ p ->Flags )
178+ $ r ->params ->set ('flags ' , $ p ->Flags );
177179
178180 list ($ duration , $ _ , $ err ) = $ this ->requireOK ($ this ->doRequest ($ r ));
179181 $ wm = $ this ->buildWriteMeta ($ duration );
@@ -200,6 +202,72 @@ public function delete($key, WriteOptions $writeOptions = null)
200202 return [$ wm , $ err ];
201203 }
202204
205+ /**
206+ * @param KVPair $p
207+ * @param WriteOptions $writeOptions
208+ * @return array(
209+ * @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
210+ * @type \DCarbone\PHPConsulAPI\Error|null error, if any
211+ * )
212+ */
213+ public function cas (KVPair $ p , WriteOptions $ writeOptions = null )
214+ {
215+ $ r = new HttpRequest ('put ' , sprintf ('v1/kv/%s ' , $ p ->Key ), $ this ->_Config );
216+ $ r ->setWriteOptions ($ writeOptions );
217+ $ r ->params ->set ('cas ' , $ p ->ModifyIndex );
218+ if (0 !== $ p ->Flags )
219+ $ r ->params ->set ('flags ' , $ p ->Flags );
220+
221+ list ($ duration , $ _ , $ err ) = $ this ->requireOK ($ this ->doRequest ($ r ));
222+ $ wm = $ this ->buildWriteMeta ($ duration );
223+
224+ return [$ wm , $ err ];
225+ }
226+
227+ /**
228+ * @param KVPair $p
229+ * @param WriteOptions $writeOptions
230+ * @return array(
231+ * @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
232+ * @type \DCarbone\PHPConsulAPI\Error|null error, if any
233+ * )
234+ */
235+ public function acquire (KVPair $ p , WriteOptions $ writeOptions = null )
236+ {
237+ $ r = new HttpRequest ('put ' , sprintf ('v1/kv/%s ' , $ p ->Key ), $ this ->_Config );
238+ $ r ->setWriteOptions ($ writeOptions );
239+ $ r ->params ->set ('acquire ' , $ p ->Session );
240+ if (0 !== $ p ->Flags )
241+ $ r ->params ->set ('flags ' , $ p ->Flags );
242+
243+ list ($ duration , $ _ , $ err ) = $ this ->requireOK ($ this ->doRequest ($ r ));
244+ $ wm = $ this ->buildWriteMeta ($ duration );
245+
246+ return [$ wm , $ err ];
247+ }
248+
249+ /**
250+ * @param KVPair $p
251+ * @param WriteOptions $writeOptions
252+ * @return array(
253+ * @type \DCarbone\PHPConsulAPI\WriteMeta write metadata
254+ * @type \DCarbone\PHPConsulAPI\Error|null error, if any
255+ * )
256+ */
257+ public function release (KVPair $ p , WriteOptions $ writeOptions = null )
258+ {
259+ $ r = new HttpRequest ('put ' , sprintf ('v1/kv/%s ' , $ p ->Key ), $ this ->_Config );
260+ $ r ->setWriteOptions ($ writeOptions );
261+ $ r ->params ->set ('release ' , $ p ->Session );
262+ if (0 !== $ p ->Flags )
263+ $ r ->params ->set ('flags ' , $ p ->Flags );
264+
265+ list ($ duration , $ _ , $ err ) = $ this ->requireOK ($ this ->doRequest ($ r ));
266+ $ wm = $ this ->buildWriteMeta ($ duration );
267+
268+ return [$ wm , $ err ];
269+ }
270+
203271 /**
204272 * @param null|string $prefix
205273 * @param QueryOptions $queryOptions
0 commit comments