<!--
  ============LICENSE_START=======================================================
  controlloop-model-impl
  ================================================================================
  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  Modifications Copyright (C) 2019 Nordix Foundation
  ================================================================================
  Licensed 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.
  ============LICENSE_END=========================================================
  -->


<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">
  <modelVersion>4.0.0</modelVersion>
  <packaging>pom</packaging>
  
  <parent>
      <groupId>org.onap.policy.models</groupId>
      <artifactId>policy-models-interactions</artifactId>
      <version>2.0.0-SNAPSHOT</version>
  </parent>
  
  <groupId>org.onap.policy.models.policy-models-interactions.model-impl</groupId>
  <artifactId>model-impl</artifactId>

  <modules>
      <module>aai</module>
      <module>appc</module>
      <module>appclcm</module>
      <module>sdnr</module>
      <module>events</module>
      <module>so</module>
      <module>rest</module>
      <module>sdc</module>
      <module>trafficgenerator</module>
      <module>vfc</module>
      <module>sdnc</module>
  </modules>


</project>
