<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>custos</artifactId>
        <groupId>org.apache.custos</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>custos-integration-services</artifactId>
     <packaging>pom</packaging>
    <modules>
        <module>tenant-management-service-parent</module>
        <module>identity-management-service-parent</module>
        <module>custos-integration-services-commons</module>
        <module>user-management-service-parent</module>

        <module>scim-service</module>

        <module>group-management-service-parent</module>
        <module>agent-management-service-parent</module>
        <module>resource-secret-management-service-parent</module>
        <module>sharing-management-service-parent</module>
        <module>log-management-service-parent</module>
        <module>custos-integration-services-swagger</module>

    </modules>

</project>