async.eachSeries(installData.outputTypes, function(outputType, innerCallback) {
                        resourceService.getResourceTypeByValue(outputType.type, function(error, resourceType) {
                            if (error) {
                                return innerCallback(error);
                            }

                            if (!resourceType) {
                                resourceTypeService.createResourceType({
                                    value: outputType.type,
                                    name: outputType.type,
                                    splitType: ResourceType.splitTypes.NONE
                                }, function(error, resourceType) {
                                    if (error) {
                                        return innerCallback(error);
                                    }
                                    serviceData.serviceOutputTypes.push({
                                        resourceTypeId: resourceType.id,
                                        key: outputType.key
                                    });
                                    innerCallback();
                                });
                            } else {
                                serviceData.serviceOutputTypes.push({
                                    resourceTypeId: resourceType.id,
                                    key: outputType.key
                                });
                                innerCallback();
                            }
                        });
                    }, function(error) {
                    async.eachSeries(installData.inputTypes, function(inputType, innerCallback) {
                        resourceService.getResourceTypeByValue(inputType.type, function(error, resourceType) {
                            if (error) {
                                logger.error( error );
                                return innerCallback(error);
                            }

                            if (!resourceType) {
                                resourceTypeService.createResourceType({
                                    value: inputType.type,
                                    name: inputType.type,
                                    splitType: ResourceType.splitTypes.NONE
                                }, function(error, resourceType) {
                                    if (error) {
                                        return innerCallback(error);
                                    }
                                    serviceData.serviceInputTypes.push({
                                        key: inputType.key,
                                        resourceTypeId: resourceType.id,
                                        sizeLimit: inputType.sizeLimit,
                                        isList: inputType.isList
                                    });
                                    innerCallback();
                                });
                            } else {
                                serviceData.serviceInputTypes.push({
                                    key: inputType.key,
                                    resourceTypeId: resourceType.id,
                                    sizeLimit: inputType.sizeLimit,
                                    isList: inputType.isList
                                });
                                innerCallback();
                            }
                        });
                    }, function(error) {