Interface CallChain

All Known Implementing Classes:
AmazonWebServicesClientProxy

public interface CallChain
This can be used by Read, Create, Update and Delete handlers when invoking AWS services. Each CallChain when invoking a service call explicitly provide a call graph name. This name is used as a key prefix to memoize request, responses and results in each call sequences. This CallChain provides a fluent API * design that ensure that right sequence of steps is followed for making a service call. Any service call should use AmazonWebServicesClientProxy. Here is the minimum sequence for the calls.
  1. initiate(String, ProxyClient, Object, StdCallbackContext)
  2. CallChain.RequestMaker.translateToServiceRequest(Function)
  3. CallChain.Caller.makeServiceCall(BiFunction)
  4. CallChain.Completed.done(Function)
See Also:
  • Method Details

    • newInitiator

      <ClientT, ModelT, CallbackT extends StdCallbackContext> CallChain.Initiator<ClientT,ModelT,CallbackT> newInitiator(ProxyClient<ClientT> client, ModelT model, CallbackT context)
      factory method can created an CallChain.Initiator
      Type Parameters:
      ClientT - Actual client e.g. KinesisClient.
      ModelT - The type (POJO) of Resource model.
      CallbackT - , callback context the extends StdCallbackContext
      Parameters:
      client - AWS Service Client. Recommend using Sync client as the framework handles interleaving as needed.
      model - the resource desired state model, usually
      context - callback context that tracks all outbound API calls
      Returns:
      an instance of the CallChain.Initiator
    • initiate

      <ClientT, ModelT, CallbackT extends StdCallbackContext> CallChain.RequestMaker<ClientT,ModelT,CallbackT> initiate(String callGraph, ProxyClient<ClientT> client, ModelT model, CallbackT cxt)
      Each service call must be first initiated. Every call is provided a separate name called call graph. This is eseential from both a tracing perspective as well as StdCallbackContext automated replay capabilities.
      Type Parameters:
      ClientT - Actual client e.g. KinesisClient.
      ModelT - The type (POJO) of Resource model.
      CallbackT - , callback context the extends StdCallbackContext
      Parameters:
      callGraph - , the name of the service operation this call graph is about.
      client - , actual client needed to make the call wrapped inside ProxyClient to support injection of scoped credentials
      model - , the actual resource model that defines the shape for setting up this resource type.
      cxt - , Callback context used for supporting replay and dedupe capabilities.
      Returns:
      Provides the next logical set in the fluent API.