<!--
  ============LICENSE_START=======================================================
  Copyright (C) 2017-2018 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-actors</groupId>
  <artifactId>model-actors</artifactId>

  <modules>
    <module>actorServiceProvider</module>
    <module>actor.appc</module>
    <module>actor.vfc</module>
    <module>actor.sdnc</module>
    <module>actor.appclcm</module>
    <module>actor.sdnr</module>
    <module>actor.so</module>
    <module>actor.test</module>
  </modules>
  <dependencies>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.policy.models.policy-models-interactions</groupId>
      <artifactId>model-yaml</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
