docs: public ClusterTierManagerClientEntity retrieve(String identifier, ServerSideConfiguration config)
      throws DestroyInProgressException, EntityNotFoundException, ClusterTierManagerValidationException, TimeoutException {
  
      Hold fetchHold = createAccessLockFor(identifier).readLock();
  
      ClusterTierManagerClientEntity entity;
      try {
        entity = getEntityRef(identifier).fetchEntity(null);
      } catch (EntityVersionMismatchException e) {
        LOGGER.error("Unable to retrieve cluster tier manager for id {}", identifier, e);
        silentlyUnlock(fetchHold, identifier);
        throw new AssertionError(e);
      }
  
      boolean validated = false;
      try {
        entity.validate(config);
        validated = true;
        return entity;
      } catch (DestroyInProgressException e) {
        throw e;
      } catch (ClusterException e) {
        throw new ClusterTierManagerValidationException("Unable to validate cluster tier manager for id " + identifier, e);
      } finally {
        if (!validated) {
          silentlyClose(entity, identifier);
          silentlyUnlock(fetchHold, identifier);
        } else {
          // track read holds as well so that we can explicitly abandon
          fetchHolds.put(identifier, fetchHold);
        }
      }
    }