code: private void cleanupMessage(boolean filterSourceOut, boolean downloadLogsSuccess, boolean processSourceSuccess, CloudTrailSource source) {
          if (filterSourceOut) {
              deleteMessageAfterProcessSource(ProgressState.deleteFilteredMessage, source);
          } else if (processSourceSuccess || sqsManager.shouldDeleteMessageUponFailure(!downloadLogsSuccess)) {
              deleteMessageAfterProcessSource(ProgressState.deleteMessage, source);
          }
      }
docs: Clean up the message after CPL finishes the processing.
  <p>
  <li>If the source is filtered out, the message will be deleted with {@link ProgressState#deleteFilteredMessage}.</li>
  <li>If the processing is successful, the message with be deleted with {@link ProgressState#deleteMessage}.</li>
  <li>If the processing failed due to downloading logs, the message will not be deleted regardless of
  {@link ProcessingConfiguration#isDeleteMessageUponFailure()} value. Otherwise, this property controls the
  deletion decision.</li>
  </p>