@PutMapping(value = {
"/{platformInstanceId}/v2/service_instances/{instanceId}/service_bindings/{bindingId}",
"/v2/service_instances/{instanceId}/service_bindings/{bindingId}"
})
public ResponseEntity<CreateServiceInstanceBindingResponse> createServiceInstanceBinding(
@PathVariable Map<String, String> pathVariables,
@PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId,
@PathVariable(ServiceBrokerRequest.BINDING_ID_PATH_VARIABLE) String bindingId,
@RequestParam(value = AsyncServiceBrokerRequest.ASYNC_REQUEST_PARAMETER, required = false) boolean acceptsIncomplete,
@RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation,
@RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString,
@Valid @RequestBody CreateServiceInstanceBindingRequest request) {
ServiceDefinition serviceDefinition = getRequiredServiceDefinition(request.getServiceDefinitionId());
Plan plan = getServiceDefinitionPlan(serviceDefinition, request.getPlanId());
request.setServiceInstanceId(serviceInstanceId);
request.setBindingId(bindingId);
request.setServiceDefinition(serviceDefinition);
request.setPlan(plan);
setCommonRequestFields(request, pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE), apiInfoLocation,
originatingIdentityString, acceptsIncomplete);
logger.debug("Creating a service instance binding: request={}", request);
CreateServiceInstanceBindingResponse response = service.createServiceInstanceBinding(request);
logger.debug("Creating a service instance binding succeeded: serviceInstanceId={}, bindingId={}, response={}",
serviceInstanceId, bindingId, response);
return new ResponseEntity<>(response, getCreateResponseCode(response));
}