package com.amazonaws.ssm.opsmetadata; import com.google.common.collect.ImmutableSet; import software.amazon.awssdk.services.ssm.SsmClient; import software.amazon.cloudformation.proxy.AmazonWebServicesClientProxy; import software.amazon.cloudformation.proxy.ResourceHandlerRequest; import software.amazon.cloudformation.proxy.ProxyClient; import software.amazon.cloudformation.proxy.Logger; import software.amazon.cloudformation.proxy.ProgressEvent; import software.amazon.cloudformation.proxy.delay.Constant; import java.time.Duration; import java.util.Set; public abstract class BaseHandlerStd extends BaseHandler { protected static final Set THROTTLING_ERROR_CODES = ImmutableSet.of( "ThrottlingException", "TooManyUpdates"); @Override public 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(SSMClientBuilder::getClient), logger); } protected abstract ProgressEvent handleRequest( AmazonWebServicesClientProxy proxy, ResourceHandlerRequest request, CallbackContext callbackContext, ProxyClient client, Logger logger); }