@RequestMapping(value = { "/{cfInstanceId}/v2/service_instances/{instanceId}/service_bindings/{bindingId}", "/v2/service_instances/{instanceId}/service_bindings/{bindingId}" }, method = RequestMethod.DELETE) public ResponseEntity<String> deleteServiceInstanceBinding(@PathVariable Map<String, String> pathVariables, @PathVariable("instanceId") String serviceInstanceId, @PathVariable("bindingId") String bindingId, @RequestParam("service_id") String serviceDefinitionId, @RequestParam("plan_id") String planId, @RequestHeader(value = API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { DeleteServiceInstanceBindingRequest request = new DeleteServiceInstanceBindingRequest(serviceInstanceId, bindingId, serviceDefinitionId, planId, getServiceDefinition(serviceDefinitionId)) .withCfInstanceId(pathVariables.get("cfInstanceId")) .withApiInfoLocation(apiInfoLocation) .withOriginatingIdentity(parseOriginatingIdentity(originatingIdentityString)); log.debug("Deleting a service instance binding: request={}", request); try { serviceInstanceBindingService.deleteServiceInstanceBinding(request); } catch (ServiceInstanceBindingDoesNotExistException e) { log.debug("Service instance binding does not exist: ", e); return new ResponseEntity<>("{}", HttpStatus.GONE); } log.debug("Deleting a service instance binding succeeded: bindingId={}", bindingId); return new ResponseEntity<>("{}", HttpStatus.OK); }