protected ProgressEvent removeSubscription()

in aws-sns-topic/src/main/java/software/amazon/sns/topic/BaseHandlerStd.java [68:91]


  protected ProgressEvent<ResourceModel, CallbackContext> removeSubscription(AmazonWebServicesClientProxy proxy, ProxyClient<SnsClient> client, ProgressEvent<ResourceModel, CallbackContext> progress, Logger logger) {
    final ResourceModel model = progress.getResourceModel();
    final CallbackContext callbackContext = progress.getCallbackContext();
    final List<String> unsubscribeArnList = callbackContext.getSubscriptionArnToUnsubscribe();

    if(unsubscribeArnList == null) {
      return ProgressEvent.progress(model, callbackContext);
    }

    for(final String subscriptionArn : unsubscribeArnList) {
      if(!"PendingConfirmation".equals(subscriptionArn)) {
        final ProgressEvent<ResourceModel, CallbackContext> progressEvent = proxy
                .initiate("AWS-SNS-Topic::Unsubscribe-" + subscriptionArn.hashCode(), client, model, callbackContext)
                .translateToServiceRequest(model1 -> Translator.translateToUnsubscribe(subscriptionArn))
                .makeServiceCall((subscriptionRequest, proxyClient) -> proxy.injectCredentialsAndInvokeV2(subscriptionRequest, proxyClient.client()::unsubscribe))
                .success();

        if (!progressEvent.isSuccess()) {
          return progressEvent;
        }
      }
    }
    return ProgressEvent.progress(model, callbackContext);
  }