An OperationCallable is an immutable object which is capable of initiating RPC calls to
long-running API methods and returning an OperationFuture to manage the polling of the
Operation and getting the response.
It is considered advanced usage for a user to create an OperationCallable themselves. This
class is intended to be created by a generated client class, and configured by instances of
OperationCallSettings.Builder which are exposed through the client settings class.
Creates a new OperationFuture to watch an operation that has been initiated previously.
Note: This is not type-safe at static time; the result type can only be checked once the
operation finishes.
Creates a new OperationFuture to watch an operation that has been initiated previously.
Note: This is not type-safe at static time; the result type can only be checked once the
operation finishes.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe latest version of \u003ccode\u003eOperationCallable\u003c/code\u003e is 2.63.1, which is designed for managing long-running API methods and operations.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eOperationCallable\u003c/code\u003e facilitates initiating RPC calls and provides an \u003ccode\u003eOperationFuture\u003c/code\u003e to manage operation polling and response retrieval.\u003c/p\u003e\n"],["\u003cp\u003eWhile users can call \u003ccode\u003eOperationCallable\u003c/code\u003e, its primary purpose is within generated client classes, being configured through \u003ccode\u003eOperationCallSettings.Builder\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eOperationCallable\u003c/code\u003e class includes methods to perform synchronous calls with \u003ccode\u003ecall\u003c/code\u003e, asynchronous calls with \u003ccode\u003efutureCall\u003c/code\u003e, and resuming a prior call with \u003ccode\u003eresumeFutureCall\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ecancel\u003c/code\u003e function allows users to send a cancellation request to the server, allowing for operations to be cancelled on demand.\u003c/p\u003e\n"]]],[],null,["# Class OperationCallable<RequestT,ResponseT,MetadataT> (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.OperationCallable)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.rpc.OperationCallable)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.rpc.OperationCallable)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.rpc.OperationCallable)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.rpc.OperationCallable)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.rpc.OperationCallable)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.rpc.OperationCallable)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.rpc.OperationCallable)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.rpc.OperationCallable)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.rpc.OperationCallable)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.rpc.OperationCallable)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.rpc.OperationCallable)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.rpc.OperationCallable)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.rpc.OperationCallable)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.rpc.OperationCallable)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.rpc.OperationCallable)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.rpc.OperationCallable)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.rpc.OperationCallable)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.rpc.OperationCallable)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.rpc.OperationCallable)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.rpc.OperationCallable)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.rpc.OperationCallable)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.rpc.OperationCallable)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.rpc.OperationCallable)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.rpc.OperationCallable)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.rpc.OperationCallable)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.rpc.OperationCallable)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.rpc.OperationCallable)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.rpc.OperationCallable)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.rpc.OperationCallable)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.rpc.OperationCallable)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.rpc.OperationCallable)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.rpc.OperationCallable)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.rpc.OperationCallable)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.rpc.OperationCallable)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.rpc.OperationCallable)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.rpc.OperationCallable)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.rpc.OperationCallable)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.rpc.OperationCallable)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.rpc.OperationCallable)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.rpc.OperationCallable)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.rpc.OperationCallable)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.rpc.OperationCallable)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.rpc.OperationCallable)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.rpc.OperationCallable)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.rpc.OperationCallable)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.rpc.OperationCallable)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.rpc.OperationCallable)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.rpc.OperationCallable)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.rpc.OperationCallable)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.rpc.OperationCallable)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.rpc.OperationCallable)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.rpc.OperationCallable)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.rpc.OperationCallable) \n\n public abstract class OperationCallable\u003cRequestT,ResponseT,MetadataT\u003e\n\nAn OperationCallable is an immutable object which is capable of initiating RPC calls to\nlong-running API methods and returning an [OperationFuture](/java/docs/reference/gax/latest/com.google.api.gax.longrunning.OperationFuture) to manage the polling of the\nOperation and getting the response.\n\nIt is considered advanced usage for a user to create an OperationCallable themselves. This\nclass is intended to be created by a generated client class, and configured by instances of\nOperationCallSettings.Builder which are exposed through the client settings class. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e OperationCallable\\\u003cRequestT,ResponseT,MetadataT\\\u003e \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### OperationCallable()\n\n protected OperationCallable()\n\nMethods\n-------\n\n### call(RequestT request)\n\n public ResponseT call(RequestT request)\n\nSame as [#call(Object, ApiCallContext)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.OperationCallable#com_google_api_gax_rpc_OperationCallable_call_), with a null context.\n\n### call(RequestT request, ApiCallContext context)\n\n public ResponseT call(RequestT request, ApiCallContext context)\n\nPerform a call synchronously.\n\n### cancel(String operationName)\n\n public ApiFuture\u003cVoid\u003e cancel(String operationName)\n\nSends a cancellation request to the server for the operation with name `operationName`.\n\n### cancel(String operationName, ApiCallContext context)\n\n public abstract ApiFuture\u003cVoid\u003e cancel(String operationName, ApiCallContext context)\n\nSends a cancellation request to the server for the operation with name `operationName`.\n\n### futureCall(RequestT request)\n\n public OperationFuture\u003cResponseT,MetadataT\u003e futureCall(RequestT request)\n\nSame as [#futureCall(Object, ApiCallContext)](/java/docs/reference/gax/latest/com.google.api.gax.rpc.OperationCallable#com_google_api_gax_rpc_OperationCallable_futureCall_), with a null context.\n\n### futureCall(RequestT request, ApiCallContext context)\n\n public abstract OperationFuture\u003cResponseT,MetadataT\u003e futureCall(RequestT request, ApiCallContext context)\n\nInitiates an operation asynchronously.\n\n### resumeFutureCall(String operationName)\n\n public OperationFuture\u003cResponseT,MetadataT\u003e resumeFutureCall(String operationName)\n\nCreates a new [OperationFuture](/java/docs/reference/gax/latest/com.google.api.gax.longrunning.OperationFuture) to watch an operation that has been initiated previously.\nNote: This is not type-safe at static time; the result type can only be checked once the\noperation finishes.\n\n### resumeFutureCall(String operationName, ApiCallContext context)\n\n public abstract OperationFuture\u003cResponseT,MetadataT\u003e resumeFutureCall(String operationName, ApiCallContext context)\n\nCreates a new [OperationFuture](/java/docs/reference/gax/latest/com.google.api.gax.longrunning.OperationFuture) to watch an operation that has been initiated previously.\nNote: This is not type-safe at static time; the result type can only be checked once the\noperation finishes.\n\n### withDefaultCallContext(ApiCallContext defaultCallContext)\n\n public OperationCallable\u003cRequestT,ResponseT,MetadataT\u003e withDefaultCallContext(ApiCallContext defaultCallContext)\n\nReturns a new `OperationCallable` with an [ApiCallContext](/java/docs/reference/gax/latest/com.google.api.gax.rpc.ApiCallContext) that is used as a\ndefault when none is supplied in individual calls."]]