public ContractBean createContract(String organizationId, String clientId, String version,
        NewContractBean bean) throws OrganizationNotFoundException, ClientNotFoundException,
        ApiNotFoundException, PlanNotFoundException, ContractAlreadyExistsException,
        NotAuthorizedException {

        ContractBean contract = tryAction(() -> createContractInternal(organizationId, clientId, version, bean));
        LOGGER.debug("Created new contract {0}: {1}", contract.getId(), contract); //$NON-NLS-1$
        fireContractCreatedEvent(securityContext.getCurrentUser(), contract);
        return contract;
    }
@author Marc Savy {@literal <marc@blackparrotlabs.io>}
manager/api/rest-impl/src/main/java/io/apiman/manager/api/service/ContractService.java