<!--
  ============LICENSE_START=======================================================
  Copyright (C) 2021-2024 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.onap.policy.parent</groupId>
        <artifactId>integration</artifactId>
        <version>5.0.1-SNAPSHOT</version>
        <relativePath />
    </parent>
    <groupId>org.onap.policy.clamp</groupId>
    <artifactId>policy-clamp</artifactId>
    <version>8.0.1-SNAPSHOT</version>
    <name>${project.artifactId}</name>
    <packaging>pom</packaging>
    <description>
        This is the root Maven module for the policy-clamp project.

        It contains the following modules:
        - policy-clamp-common: Common code for all Policy/CLAMP modules
        - policy-clamp-models: POJOs and other model code for REST and Kafka messages and for persistence
        - policy-clamp-runtime: The runtime server for CLAMP
        - policy-clamp-runtime-acm: The runtime server for Automation Composition Management
        - policy-clamp-participant: Modules for CLAMP automation composition participants
        o policy-clamp-participant-intermediary: A common JAR that handles participant state and Kafka handling
        o policy-clamp-participant-impl-cds: A standard participant for interworking with CDS
        o policy-clamp-participant-impl-kubernetes: A standard participant for Kubernetes microservices
        o policy-clamp-participant-impl-policy: A standard participant for handling polcies for Policy Framework
        o policy-clamp-acm-element-impl: ACM element implementation for integration testing
        o policy-clamp-participant-impl-http: A standard participant for http configurations
        o policy-clamp-participant-impl-a1pms: A standard participant for accessing A1-Policy Management Service
        o policy-clamp-participant-impl-kserve: A standard participant for Kserve
    </description>
    <properties>
        <policy.common.version>3.0.1-SNAPSHOT</policy.common.version>
        <policy.models.version>4.0.1-SNAPSHOT</policy.models.version>
        <version.netty>4.1.112.Final</version.netty>
    </properties>
    <modules>
        <module>common</module>
        <module>examples</module>
        <module>models</module>
        <module>packages</module>
        <module>runtime-acm</module>
        <module>participant</module>
    </modules>
</project>
