@Override
  public List<CloudResourceStatus> check(
      AuthenticatedContext authenticatedContext, List<CloudResource> resources) {
    List<CloudResourceStatus> result = new ArrayList<>();
    OSClient client = openStackClient.createOSClient(authenticatedContext);

    for (CloudResource resource : resources) {
      switch (resource.getType()) {
        case HEAT_STACK:
          String heatStackId = resource.getName();
          String stackName = authenticatedContext.getCloudContext().getName();
          LOGGER.info("Checking OpenStack Heat stack status of: {}", stackName);
          Stack heatStack = client.heat().stacks().getDetails(stackName, heatStackId);
          CloudResourceStatus heatResourceStatus = utils.heatStatus(resource, heatStack);
          result.add(heatResourceStatus);
          break;
        default:
          throw new CloudConnectorException(
              String.format("Invalid resource type: %s", resource.getType()));
      }
    }

    return result;
  }