package software.amazon.rekognition.collection; import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.services.rekognition.RekognitionClient; import software.amazon.awssdk.services.rekognition.model.DeleteCollectionRequest; import software.amazon.awssdk.services.rekognition.model.DeleteCollectionResponse; 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; public class DeleteHandler extends BaseHandlerStd { private Logger logger; protected ProgressEvent handleRequest( final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest request, final CallbackContext callbackContext, final ProxyClient proxyClient, final Logger logger) { this.logger = logger; logger.log(String.format("Cfn Request: %s", request)); return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext) .then(progress -> proxy.initiate("AWS-Rekognition-Collection::DeleteCollection", proxyClient, progress.getResourceModel(), progress.getCallbackContext()) .translateToServiceRequest(Translator::translateToDeleteRequest) .makeServiceCall(this::deleteCollection) .progress() ) .then(progress -> ProgressEvent.defaultSuccessHandler(null)); } private DeleteCollectionResponse deleteCollection( final DeleteCollectionRequest request, final ProxyClient client ) { try { logger.log(String.format("Service Request: %s", request)); DeleteCollectionResponse response = client.injectCredentialsAndInvokeV2(request, client.client()::deleteCollection); logger.log(String.format("%s successfully deleted.", ResourceModel.TYPE_NAME)); return response; } catch (final AwsServiceException e) { throw this.handlerError(e, logger); } } }