@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response createAddressSpace(@Context SecurityContext securityContext, @Context UriInfo uriInfo, @PathParam("namespace") String namespace, @NotNull @Valid AddressSpace input) throws Exception {
return doRequest("Error creating address space " + input.getMetadata().getName(), () -> {
verifyAuthorized(securityContext, namespace, ResourceVerb.create);
AddressSpace addressSpace = setAddressSpaceDefaults(securityContext, namespace, input, null);
DefaultValidator.validate(addressSpace);
AddressSpaceResolver addressSpaceResolver = new AddressSpaceResolver(schemaProvider.getSchema());
addressSpaceResolver.validate(addressSpace);
addressSpaceApi.createAddressSpace(addressSpace);
AddressSpace created = addressSpaceApi.getAddressSpaceWithName(namespace, addressSpace.getMetadata().getName()).orElse(addressSpace);
UriBuilder builder = uriInfo.getAbsolutePathBuilder();
builder.path(created.getMetadata().getName());
return Response.created(builder.build()).entity(removeSecrets(created)).build();
});
}