@RequestMapping(value = { "/{cfInstanceId}/v2/service_instances/{instanceId}/last_operation", "/v2/service_instances/{instanceId}/last_operation" }, method = RequestMethod.GET) public ResponseEntity<?> getServiceInstanceLastOperation(@PathVariable Map<String, String> pathVariables, @PathVariable("instanceId") String serviceInstanceId, @RequestParam(value = "service_id", required = false) String serviceDefinitionId, @RequestParam(value = "plan_id", required = false) String planId, @RequestParam(value = "operation", required = false) String operation, @RequestHeader(value = API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { GetLastServiceOperationRequest request = new GetLastServiceOperationRequest(serviceInstanceId, serviceDefinitionId, planId, operation) .withCfInstanceId(pathVariables.get("cfInstanceId")) .withApiInfoLocation(apiInfoLocation) .withOriginatingIdentity(parseOriginatingIdentity(originatingIdentityString)); log.debug("Getting service instance status: request={}", request); GetLastServiceOperationResponse response = service.getLastOperation(request); log.debug("Getting service instance status succeeded: serviceInstanceId={}, response={}", serviceInstanceId, response); boolean isSuccessfulDelete = response.getState().equals(OperationState.SUCCEEDED) && response.isDeleteOperation(); return new ResponseEntity<>(response, isSuccessfulDelete ? HttpStatus.GONE : HttpStatus.OK); }