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

thrift.concourse.thrift Maven / Gradle / Ivy

# This file defines the RPC protocol for Concourse client/server interaction
# using Thrift. The services and resources that are defined in this file are
# not intended to be used by third parties, but they could be so they must meet
# high standards of quality.
#
# To generate java source code run:
# thrift -out ../../java -gen java concourse.thrift
#
# TODO IN ECLIPSE AFTER GENERATING (see THRIFT-2115)
# 0. Run "./gradlew clean eclipse" at Concourse root directory and refresh concourse directory
# 1. Replace Hash with LinkedHash
# 2. Replace shared.AccessToken with AccessToken
# 3. Add @SuppressWarnings({ "rawtypes", "serial", "unchecked", "unused" }) to class
# 4. shift + command + F to format

include "data.thrift"
include "shared.thrift"

namespace java org.cinchapi.concourse.thrift

/**
 * The RPC protocol that forms the basis of cross-language client/server
 * communication in Concourse. This is considered a public API; however
 * it is intended to be wrapped in a more expressive APIs in the target
 * implementation language.
 */
service ConcourseService {

	/**
	 * Login to the service. A user must login to receive an {@link shared.AccessToken}
	 * which is required for all other method invocations.
	 */
	shared.AccessToken login(1: binary username, 2: binary password,
	 3: string environment) throws (1: shared.TSecurityException ex);

	/**
	 * Logout of the service and deauthorize {@code token}.
	 */
	void logout(1: shared.AccessToken token, 2: string environment)
		throws (1: shared.TSecurityException ex);

	/**
	 * Turn on {@code staging} mode so that all subsequent changes are collected
	 * in a staging area before possibly being committed to the database. Staged
	 * operations are guaranteed to be reliable, all or nothing units of work that
	 * allow correct  recovery from failures and provide isolation between clients
	 * so the database is always in a consistent state.
	 * 

* After this method returns, all subsequent operations will be done in * {@code staging} mode until either {@link #abort(shared.AccessToken)} or * {@link #commit(shared.AccessToken)} is invoked. *

*/ shared.TransactionToken stage(1: shared.AccessToken token, 2: string environment) throws (1: shared.TSecurityException ex); /** * Abort and remove any changes that are currently sitting in the staging area. *

* After this function returns, all subsequent operations will commit to the * database immediately until {@link #stage(shared.AccessToken)} is invoked. *

*/ void abort(1: shared.AccessToken creds, 2: shared.TransactionToken transaction, 3: string environment) throws (1: shared.TSecurityException ex); /** * Attempt to permanently commit all the changes that are currently sitting in * the staging area to the database. This function only returns {@code true} * if all the changes can be successfully applied to the database. Otherwise, * this function returns {@code false} and all the changes are aborted. *

* After this function returns, all subsequent operations will commit to the * database immediately until {@link #stage(shared.AccessToken)} is invoked. *

*/ bool commit(1: shared.AccessToken creds, 2: shared.TransactionToken transaction, 3: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Add {@code key} as {@code value} to {@code record}. This method returns * {@code true} if there is no mapping from {@code key} to {@code value} * in {@code record} prior to invocation. */ bool add(1: string key, 2: data.TObject value, 3: i64 record, 4: shared.AccessToken creds, 5: shared.TransactionToken transaction, 6: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Remove {@code key} as {@code value} from {@code record}. This method returns * {@code true} if there is a mapping from {@code key} to {@code value} in * {@code record} prior to invocation. */ bool remove(1: string key, 2: data.TObject value, 3: i64 record, 4: shared.AccessToken creds, 5: shared.TransactionToken transaction, 6: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Audit {@code record} or {@code key} in {@code record}. This method returns a * map from timestamp to a string describing the revision that occurred. */ map audit(1: i64 record, 2: string key, 3: shared.AccessToken creds, 4: shared.TransactionToken transaction, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Chronologize non-empty sets of values in {@code key} from {@code record}. * This method returns a chronological mapping from each timestamp to the set * of values that were contained for the key in record. */ map> chronologize(1: i64 record, 2: string key, 3: shared.AccessToken creds, 4: shared.TransactionToken transaction, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Describe {@code record} at {@code timestamp}. This method returns keys for * fields in {@code record} that contain at least one value at {@code timestamp}. */ set describe(1: i64 record, 2: i64 timestamp, 3: shared.AccessToken creds, 4: shared.TransactionToken transaction, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Fetch {@code key} from {@code record} at {@code timestamp}. This method returns * the values that exist in the field mapped from {@code key} at {@code timestamp}. */ set fetch(1: string key, 2: i64 record, 3: i64 timestamp, 4: shared.AccessToken creds, 5: shared.TransactionToken transaction, 6: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Find {@code key} {@code operator} {@code values} at {@code timestamp}. This * method returns the records that match the criteria at {@code timestamp}. */ set find(1: string key, 2: shared.Operator operator, 3: list values, 4: i64 timestamp, 5: shared.AccessToken creds, 6: shared.TransactionToken transaction, 7: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Find the records that match the {@code criteria}. */ set find1(1: data.TCriteria criteria, 2: shared.AccessToken creds, 3: shared.TransactionToken transaction, 4: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Ping {@code record}. This method returns {@code true} if {@code record} has at * least one populated field. */ bool ping(1: i64 record, 2: shared.AccessToken creds, 3: shared.TransactionToken transaction, 4: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Search {@code key} for {@code query}. This method returns the records that have * a value matching {@code query} in the field mapped from {@code key}. */ set search(1: string key, 2: string query, 3: shared.AccessToken creds, 4: shared.TransactionToken transaction, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Verify {@code key} as {@code value} in {@code record} at {@code timestamp}. This * method returns {@code true} if the field contains {@code value} at * {@code timestamp}. */ bool verify(1: string key, 2: data.TObject value, 3: i64 record, 4: i64 timestamp, 5: shared.AccessToken creds, 6: shared.TransactionToken transaction, 7: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically revert {@code key} in {@code record} to {@code timestamp}. */ void revert(1: string key, 2: i64 record, 3: i64 timestamp, 4: shared.AccessToken creds, 5: shared.TransactionToken token, 6: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically clear {@code key} in {@code record} by removing every value that * currently exists. */ void clear(1: string key, 2: i64 record, 3: shared.AccessToken creds, 4: shared.TransactionToken token, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically set {@code key} as {@code value} in {@code record} by removing any * values that currently exist and adding {@code value}. */ void set0(1: string key, 2: data.TObject value, 3: i64 record, 4: shared.AccessToken creds, 5: shared.TransactionToken token, 6: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically verify {@code key} as {@code expected} in {@code record} and swap * with {@code replacement} if it exists. */ bool verifyAndSwap(1: string key, 2: data.TObject expected, 3: i64 record, 4: data.TObject replacement, 5: shared.AccessToken creds, 6: shared.TransactionToken token, 7: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Return the release version of the server. */ string getServerVersion() throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically add the key-value mappings defined in the {@code json} formatted * string to {@code record}. */ bool insert(1: string json, 2: i64 record, 3: shared.AccessToken creds, 4: shared.TransactionToken token, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Return all the data that is presently contained in {@code record}. */ map> browse0(1: i64 record, 2: i64 timestamp, 3: shared.AccessToken creds, 4: shared.TransactionToken token, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Return an ordered mapping from each value associated with {@code key} to the * set of records which contain the value. */ map> browse1(1: string key, 2: i64 timestamp, 3: shared.AccessToken creds, 4: shared.TransactionToken token, 5: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically clear all the keys in {@code record} by removing every value that * currently exists for each key. */ void clear1(1: i64 record, 2: shared.AccessToken creds, 3: shared.TransactionToken token, 4: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Return the environment of the server to client is using. */ string getServerEnvironment(1: shared.AccessToken creds, 2: shared.TransactionToken token, 3: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); /** * Atomically add the key-value mappings defined in the {@code json} formatted * string to a new record. */ i64 insert1(1: string json, 2: shared.AccessToken creds, 3: shared.TransactionToken token, 4: string environment) throws (1: shared.TSecurityException ex, 2: shared.TTransactionException ex2); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy