package software.amazon.lookoutvision.project; import software.amazon.awssdk.services.lookoutvision.LookoutVisionClient; import software.amazon.cloudformation.proxy.AmazonWebServicesClientProxy; import software.amazon.cloudformation.proxy.Logger; import software.amazon.cloudformation.proxy.ProgressEvent; import software.amazon.cloudformation.proxy.ProxyClient; import software.amazon.cloudformation.proxy.ResourceHandlerRequest; import lombok.experimental.Accessors; import lombok.Getter; @Accessors(fluent = true) public abstract class BaseHandlerStd extends BaseHandler { @Getter private final LookoutVisionClient lookoutVisionClient; protected BaseHandlerStd() { this.lookoutVisionClient = ClientBuilder.getClient(); } @Override public final ProgressEvent handleRequest( final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest request, final CallbackContext callbackContext, final Logger logger) { return handleRequest( proxy, request, callbackContext != null ? callbackContext : new CallbackContext(), proxy.newProxy(this::lookoutVisionClient), logger ); } protected abstract ProgressEvent handleRequest( final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest request, final CallbackContext callbackContext, final ProxyClient proxyClient, final Logger logger); }