class CreateNetwork {

    public void buildCreateNetworkRequest(BuildingBlockExecution execution) throws Exception {
        try {
            GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock();
            ServiceInstance serviceInstance =
                    extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);
            L3Network l3Network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID);
            Map<String, String> userInput = gBBInput.getUserInput();
            String cloudRegionPo = execution.getVariable("cloudRegionPo");

            CreateNetworkRequest createNetworkRequest = networkAdapterObjectMapper.createNetworkRequestMapper(
                    gBBInput.getRequestContext(), gBBInput.getCloudRegion(), gBBInput.getOrchContext(), serviceInstance,
                    l3Network, userInput, cloudRegionPo, gBBInput.getCustomer());

            // set CreateNetowrkRequest object on execution to be re-used within current BB
            execution.setVariable("createNetworkRequest", createNetworkRequest);
        } catch (Exception ex) {
            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
        }
    }

}