<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============LICENSE_START=======================================================
  Copyright (C) 2021-2023 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.

  SPDX-License-Identifier: Apache-2.0
  ============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>

    <parent>
        <groupId>org.onap.policy.clamp.participant</groupId>
        <artifactId>policy-clamp-participant</artifactId>
        <version>7.0.3-SNAPSHOT</version>
    </parent>

    <artifactId>policy-clamp-participant-impl</artifactId>
    <name>${project.artifactId}</name>
    <packaging>pom</packaging>

    <modules>
        <module>participant-impl-simulator</module>
        <module>participant-impl-acelement</module>
        <module>participant-impl-policy</module>
        <module>participant-impl-cds</module>
        <module>participant-impl-kubernetes</module>
        <module>participant-impl-http</module>
        <module>participant-impl-a1pms</module>
        <module>participant-impl-kserve</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.onap.policy.clamp.participant</groupId>
            <artifactId>policy-clamp-participant-intermediary</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</project>
