class StateResource implements StateClient {

    @SuppressWarnings("rawtypes")
    @Override
    @GET
    @Path("v1/tenant/{tenantName}/application/{applicationName}/environment/{environmentName}/region/{regionName}/instance/{instanceName}/service/{serviceIdentifier}/{apiParams: .*}")
    @Produces(MediaType.APPLICATION_JSON)
    public HashMap singleService(@PathParam("tenantName") String tenantName,
            @PathParam("applicationName") String applicationName,
            @PathParam("environmentName") String environmentName,
            @PathParam("regionName") String regionName,
            @PathParam("instanceName") String instanceName,
            @PathParam("serviceIdentifier") String identifier,
            @PathParam("apiParams") String apiParams) {
        ServiceModel model = new ServiceModel(getModelConfig(tenantName, applicationName, environmentName, regionName, instanceName));
        Service s = model.getService(identifier);
        int requestedPort = s.matchIdentifierWithPort(identifier);
        Client client = client();
        try {
            HealthClient resource = getHealthClient(apiParams, s, requestedPort, client);
            HashMap<?, ?> apiResult = resource.getHealthInfo();
            rewriteResourceLinks(apiResult, model, s, applicationIdentifier(tenantName, applicationName, environmentName, regionName, instanceName), identifier);
            return apiResult;
        } finally {
            client.close();
        }
    }

    public  StateResource(@Component ConfigServerLocation configServer, @Context UriInfo ui);

}