All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.ext.consul.TxnKVVerb Maven / Gradle / Ivy

There is a newer version: 5.0.0.CR5
Show newest version
/*
 * Copyright (c) 2016 The original author or authors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *      The Eclipse Public License is available at
 *      http://www.eclipse.org/legal/epl-v10.html
 *
 *      The Apache License v2.0 is available at
 *      http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */
package io.vertx.ext.consul;

import io.vertx.codegen.annotations.VertxGen;

/**
 * Holds type of KV operation in transaction
 *
 * @author Ruslan Sennov
 * @see /v1/txn endpoint
 */
@VertxGen
public enum TxnKVVerb {

  /**
   * Sets the Key to the given Value
   */
  SET("set"),

  /**
   * Sets the Key to the given Value with check-and-set semantics.
   * The Key will only be set if its current modify index matches the supplied Index
   */
  CAS("cas"),

  /**
   * Locks the Key with the given Session. The Key will only obtain the lock
   * if the Session is valid, and no other session has it locked
   */
  LOCK("lock"),

  /**
   * Unlocks the Key with the given Session. The Key will only release the lock
   * if the Session is valid and currently has it locked
   */
  UNLOCK("unlock"),

  /**
   * Gets the Key during the transaction. This fails the transaction if the Key doesn't exist.
   * The key may not be present in the results if ACLs do not permit it to be read
   */
  GET("get"),

  /**
   * Gets all keys with a prefix of Key during the transaction. This does not fail the transaction
   * if the Key doesn't exist. Not all keys may be present in the results if ACLs do not permit them to be read
   */
  GET_TREE("get-tree"),

  /**
   * Fails the transaction if Key does not have a modify index equal to Index
   */
  CHECK_INDEX("check-index"),

  /**
   * Fails the transaction if Key is not currently locked by Session
   */
  CHECK_SESSION("check-session"),

  /**
   * Deletes the Key
   */
  DELETE("delete"),

  /**
   * Deletes all keys with a prefix ofKey
   */
  DELETE_TREE("delete-tree"),

  /**
   * Deletes the Key with check-and-set semantics. The Key will only be deleted
   * if its current modify index matches the supplied Index
   */
  DELETE_CAS("delete-cas");

  public static TxnKVVerb ofVerb(String verb) {
    for (TxnKVVerb type : values()) {
      if (type.getVerb().equals(verb)) {
        return type;
      }
    }
    return null;
  }

  private final String verb;

  TxnKVVerb(String verb) {
    this.verb = verb;
  }

  public String getVerb() {
    return verb;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy