@Override public List<IndexDefinition> getIndexDefinitions(RemotingContext context, String instance, String bag) throws RemoteException { String connectionString = new RestConnectionBuilder().instance(instance).bag(bag).indexes().getConnectionString(); ClientResponse clientResponse = doRequest(context, connectionString); try { IndexCollection indexCollection = new JsonRestResponseHandler().deserialize(IndexCollection.class, clientResponse.getEntityInputStream()); List<IndexDefinition> indexDefinitions = new ArrayList<>(); for(IndexEntry entry : indexCollection.getIndexEntryList()) { indexDefinitions.add(IndexModelMapper.map(entry)); } return indexDefinitions; } catch(RestException e) { throw new RemoteException("Unable to parse remote index definitions", e); } finally { clientResponse.close(); } }