api
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.noumenadigital.platform</groupId>
<artifactId>api</artifactId>
<version>2025.1.10</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<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>
<artifactId>api</artifactId>
<name>${project.artifactId}</name>
<description>OpenApi specifications for the platform Engine Api</description>
<url>https://documentation.noumenadigital.com/</url>
<licenses>
<license>
<name>NPL Maven Plugin License</name>
<url>https://noumenadigital.com/npl-maven-plugin-license/</url>
</license>
</licenses>
<developers>
<developer>
<organization>Noumena Digital</organization>
<organizationUrl>https://noumenadigital.com/</organizationUrl>
</developer>
</developers>
<scm>
<url>https://github.com/NoumenaDigital/platform</url>
</scm>
<parent>
<groupId>com.noumenadigital.platform</groupId>
<artifactId>parent-pom</artifactId>
<version>2025.1.10</version>
<relativePath>../parent-pom</relativePath>
</parent>
<properties>
<sonar.skip>true</sonar.skip>
<skipDetekt>true</skipDetekt>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>api-postprocessor</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<configuration>
<generatorName>spring</generatorName>
<apiPackage>com.noumenadigital.platform.api</apiPackage>
<modelPackage>com.noumenadigital.platform.api.models</modelPackage>
<generateApiDocumentation>false</generateApiDocumentation>
<generateApiTests>false</generateApiTests>
<generateModelDocumentation>false</generateModelDocumentation>
<generateModelTests>false</generateModelTests>
<generateSupportingFiles>false</generateSupportingFiles>
<typeMappings>
<typeMapping>OffsetDateTime=java.time.ZonedDateTime</typeMapping>
</typeMappings>
<configOptions>
<oas3>true</oas3>
<!-- Do not use Swagger annotations on the generated code -->
<annotationLibrary>none</annotationLibrary>
<documentationProvider>none</documentationProvider>
<!-- Do not generate implementations. -->
<interfaceOnly>true</interfaceOnly>
<!-- Do not generate default implementations. -->
<skipDefaultInterface>true</skipDefaultInterface>
<!-- Use Java8 DateTime. -->
<dateLibrary>java8</dateLibrary>
<!-- Saner naming using tags. -->
<useTags>true</useTags>
<!-- Do not show the @Generator annotation. -->
<hideGenerationTimestamp>true</hideGenerationTimestamp>
<openApiNullable>false</openApiNullable>
<generatedConstructorWithRequiredArgs>false</generatedConstructorWithRequiredArgs>
<useJakartaEe>true</useJakartaEe>
</configOptions>
</configuration>
<executions>
<execution>
<id>generate-engine</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-multinode</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-multinode-token.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-message</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-multinode-message.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-engine-admin</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-admin.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-streams</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-streams.yml</inputSpec>
<configOptions>
<!-- Wrap everything in Flux. -->
<responseWrapper>reactor.core.publisher.Flux</responseWrapper>
<reactive>true</reactive>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-streams-admin</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-streams-admin.yml</inputSpec>
<configOptions>
<!-- Wrap everything in Flux. -->
<responseWrapper>reactor.core.publisher.Flux</responseWrapper>
<reactive>true</reactive>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-debug</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/debug.yml</inputSpec>
</configuration>
</execution>
<execution>
<id>generate-debug-streams</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/debug-streams.yml</inputSpec>
<configOptions>
<!-- Wrap everything in Flux. -->
<responseWrapper>reactor.core.publisher.Flux</responseWrapper>
<reactive>true</reactive>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-management</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-management.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-admin-history</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/history-admin.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-admin-history-streams</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/history-streams-admin.yml</inputSpec>
<configOptions>
<!-- Wrap everything in Flux. -->
<responseWrapper>reactor.core.publisher.Flux</responseWrapper>
<reactive>true</reactive>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-management-history</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/history-management.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>true</async>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-oidc</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/engine-oidc.yml</inputSpec>
<configOptions>
<!-- Wrap everything in CompletableFuture. -->
<async>false</async>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>post-process-openapi-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.noumenadigital.platform.api.postprocessor.PostProcessorKt</mainClass>
<commandlineArgs>${project.build.directory}/generated-sources/openapi/src/main/java</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
<!-- Create a separate JAR. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>pack-api-docs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>docs</classifier>
<classesDirectory>${project.build.directory}/docs</classesDirectory>
<includes>
<include>**/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>