summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bentele2021-12-23 15:13:52 +0100
committerManuel Bentele2021-12-23 15:13:52 +0100
commit14e7f8024066253b312b942b8f2f3491b5ef19d8 (patch)
treeb82e9017832621e24b9ee4952d1e27242a592574
parent[SERVER] Add Maven profile to generate server API automatically (diff)
downloadtutor-module-feature/dsmd-openapi.tar.gz
tutor-module-feature/dsmd-openapi.tar.xz
tutor-module-feature/dsmd-openapi.zip
[SERVER] Add source code of autogenerated server APIfeature/dsmd-openapi
-rw-r--r--dozentenmodulserver/api/.openapi-generator-ignore23
-rw-r--r--dozentenmodulserver/api/.openapi-generator/FILES33
-rw-r--r--dozentenmodulserver/api/.openapi-generator/VERSION1
-rw-r--r--dozentenmodulserver/api/.openapi-generator/bwlp-server-openapi.yaml-default.sha2561
-rw-r--r--dozentenmodulserver/api/README.md18
-rw-r--r--dozentenmodulserver/api/pom.xml78
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openapitools/configuration/HomeController.java19
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java19
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java54
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java217
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java58
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java57
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java38
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java61
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java152
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java24
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/StatusFileserver.java109
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImage.java408
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageCreator.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageForLocation.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageIsTemplate.java120
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageLongDescription.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageName.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageOsName.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImagePriority.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageShortDescription.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageUuid.java86
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualMachine.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualizerName.java84
-rw-r--r--dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImages.java97
-rw-r--r--dozentenmodulserver/api/src/main/resources/application.properties4
-rw-r--r--dozentenmodulserver/api/src/main/resources/openapi.yaml568
36 files changed, 3097 insertions, 0 deletions
diff --git a/dozentenmodulserver/api/.openapi-generator-ignore b/dozentenmodulserver/api/.openapi-generator-ignore
new file mode 100644
index 00000000..7484ee59
--- /dev/null
+++ b/dozentenmodulserver/api/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/dozentenmodulserver/api/.openapi-generator/FILES b/dozentenmodulserver/api/.openapi-generator/FILES
new file mode 100644
index 00000000..143a6f59
--- /dev/null
+++ b/dozentenmodulserver/api/.openapi-generator/FILES
@@ -0,0 +1,33 @@
+.openapi-generator-ignore
+README.md
+pom.xml
+src/main/java/org/openapitools/configuration/HomeController.java
+src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java
+src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java
+src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java
+src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java
+src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java
+src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java
+src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java
+src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java
+src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java
+src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java
+src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java
+src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java
+src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java
+src/main/java/org/openslx/bwlp/sat/api/model/StatusFileserver.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImage.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageCreator.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageForLocation.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageIsTemplate.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageLongDescription.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageName.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageOsName.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImagePriority.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageShortDescription.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageUuid.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualMachine.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualizerName.java
+src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImages.java
+src/main/resources/application.properties
+src/main/resources/openapi.yaml
diff --git a/dozentenmodulserver/api/.openapi-generator/VERSION b/dozentenmodulserver/api/.openapi-generator/VERSION
new file mode 100644
index 00000000..7d3cdbf0
--- /dev/null
+++ b/dozentenmodulserver/api/.openapi-generator/VERSION
@@ -0,0 +1 @@
+5.3.1 \ No newline at end of file
diff --git a/dozentenmodulserver/api/.openapi-generator/bwlp-server-openapi.yaml-default.sha256 b/dozentenmodulserver/api/.openapi-generator/bwlp-server-openapi.yaml-default.sha256
new file mode 100644
index 00000000..3044b519
--- /dev/null
+++ b/dozentenmodulserver/api/.openapi-generator/bwlp-server-openapi.yaml-default.sha256
@@ -0,0 +1 @@
+4fc8fbe3d1d5b419b9e6b3bf2e49544e4dad307356e3f4869c77ea95184a5f7a \ No newline at end of file
diff --git a/dozentenmodulserver/api/README.md b/dozentenmodulserver/api/README.md
new file mode 100644
index 00000000..00c138a5
--- /dev/null
+++ b/dozentenmodulserver/api/README.md
@@ -0,0 +1,18 @@
+# OpenAPI generated server
+
+Spring Boot Server
+
+
+## Overview
+This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
+By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.
+This is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework.
+
+The underlying library integrating OpenAPI to SpringBoot is [springfox](https://github.com/springfox/springfox)
+
+Start your server as a simple java application
+
+You can view the api documentation in swagger-ui by pointing to
+http://localhost:9080/
+
+Change default port value in application.properties \ No newline at end of file
diff --git a/dozentenmodulserver/api/pom.xml b/dozentenmodulserver/api/pom.xml
new file mode 100644
index 00000000..c8c40764
--- /dev/null
+++ b/dozentenmodulserver/api/pom.xml
@@ -0,0 +1,78 @@
+<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>
+ <groupId>org.openslx.bwlp.sat.api</groupId>
+ <artifactId>dozmod-server-api</artifactId>
+ <packaging>jar</packaging>
+ <name>dozmod-server-api</name>
+ <version>1.0.0</version>
+ <properties>
+ <java.version>1.8</java.version>
+ <maven.compiler.source>${java.version}</maven.compiler.source>
+ <maven.compiler.target>${java.version}</maven.compiler.target>
+ <springfox-version>2.9.2</springfox-version>
+ </properties>
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>2.3.3.RELEASE</version>
+ </parent>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.data</groupId>
+ <artifactId>spring-data-commons</artifactId>
+ </dependency>
+ <!--SpringFox dependencies -->
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger2</artifactId>
+ <version>${springfox-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-swagger-ui</artifactId>
+ <version>${springfox-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.openapitools</groupId>
+ <artifactId>jackson-databind-nullable</artifactId>
+ <version>0.2.1</version>
+ </dependency>
+ <!-- Bean Validation API support -->
+ <dependency>
+ <groupId>jakarta.validation</groupId>
+ <artifactId>jakarta.validation-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/dozentenmodulserver/api/src/main/java/org/openapitools/configuration/HomeController.java b/dozentenmodulserver/api/src/main/java/org/openapitools/configuration/HomeController.java
new file mode 100644
index 00000000..25727830
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openapitools/configuration/HomeController.java
@@ -0,0 +1,19 @@
+package org.openapitools.configuration;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+/**
+ * Home redirection to OpenAPI api documentation
+ */
+@Controller
+public class HomeController {
+
+ @RequestMapping("/")
+ public String index() {
+ return "redirect:swagger-ui.html";
+ }
+
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java
new file mode 100644
index 00000000..c72e5fe8
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ApiUtil.java
@@ -0,0 +1,19 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.web.context.request.NativeWebRequest;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+public class ApiUtil {
+ public static void setExampleResponse(NativeWebRequest req, String contentType, String example) {
+ try {
+ HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
+ res.setCharacterEncoding("UTF-8");
+ res.addHeader("Content-Type", contentType);
+ res.getWriter().print(example);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java
new file mode 100644
index 00000000..cdc2bfd7
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApi.java
@@ -0,0 +1,54 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "bwlp", description = "the bwlp API")
+public interface BwlpApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /bwlp/container/clusterimages : List all bwLehrpool container images
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve container images (status code 500)
+ */
+
+ @ApiOperation(value = "List all bwLehrpool container images", nickname = "bwlpGetClusterImagesList", notes = "", tags={ "container", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve container images") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/bwlp/container/clusterimages",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> bwlpGetClusterImagesList() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java
new file mode 100644
index 00000000..2450618b
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/BwlpApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class BwlpApiController implements BwlpApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public BwlpApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java
new file mode 100644
index 00000000..19e7f5eb
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApi.java
@@ -0,0 +1,217 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "do", description = "the do API")
+public interface DoApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * POST /do/delete-images : Delete old images on the bwLehrpool-Server
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to delete old images (status code 500)
+ */
+
+ @ApiOperation(value = "Delete old images on the bwLehrpool-Server", nickname = "doDeleteOldImagesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to delete old images") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/delete-images",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doDeleteOldImagesOnFileserver() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/mailtest : Send a test mail from the bwLehrpool-Server
+ *
+ * @param host Domain of SMTP mail server (required)
+ * @param port Port of SMTP mail server (required)
+ * @param ssl Encryption mode for the SMTP mail server (required)
+ * @param serverName Name of the SMTP mail server (required)
+ * @param username Username for the SMTP mail server (required)
+ * @param password Password for the SMTP mail server (required)
+ * @param senderAddress Sender address for the test mail (required)
+ * @param recipient Recipient for the test mail (required)
+ * @param replyTo Reply-To address for the test mail (required)
+ * @return Successful operation (status code 200)
+ * or Failed to send test mail (status code 400)
+ */
+
+ @ApiOperation(value = "Send a test mail from the bwLehrpool-Server", nickname = "doMailtestOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 400, message = "Failed to send test mail") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/mailtest",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doMailtestOnFileserver(@NotNull @ApiParam(value = "Domain of SMTP mail server", required = true) @Valid @RequestParam(value = "host", required = true) String host
+
+,@NotNull @ApiParam(value = "Port of SMTP mail server", required = true) @Valid @RequestParam(value = "port", required = true) Integer port
+
+,@NotNull @ApiParam(value = "Encryption mode for the SMTP mail server", required = true, allowableValues = "NONE, IMPLICIT, EXPLICIT") @Valid @RequestParam(value = "ssl", required = true) String ssl
+
+,@NotNull @ApiParam(value = "Name of the SMTP mail server", required = true) @Valid @RequestParam(value = "serverName", required = true) String serverName
+
+,@NotNull @ApiParam(value = "Username for the SMTP mail server", required = true) @Valid @RequestParam(value = "username", required = true) String username
+
+,@NotNull @ApiParam(value = "Password for the SMTP mail server", required = true) @Valid @RequestParam(value = "password", required = true) String password
+
+,@NotNull @ApiParam(value = "Sender address for the test mail", required = true) @Valid @RequestParam(value = "senderAddress", required = true) String senderAddress
+
+,@NotNull @ApiParam(value = "Recipient for the test mail", required = true) @Valid @RequestParam(value = "recipient", required = true) String recipient
+
+,@NotNull @ApiParam(value = "Reply-To address for the test mail", required = true) @Valid @RequestParam(value = "replyTo", required = true) String replyTo
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/query-image-check : Query image check on the bwLehrpool-Server
+ *
+ * @param versionid Query image check for specified image version (optional)
+ * @return Successful operation (status code 200)
+ * or Failed to query image check (status code 500)
+ */
+
+ @ApiOperation(value = "Query image check on the bwLehrpool-Server", nickname = "doQueryImageCheckOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to query image check") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/query-image-check",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> doQueryImageCheckOnFileserver(@ApiParam(value = "Query image check for specified image version") @Valid @RequestParam(value = "versionid", required = false) UUID versionid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/reset-mail-templates : Rest mail templates on the bwLehrpool-Server
+ *
+ * @return Successful operation (status code 200)
+ * or Failed to reset mail templates (status code 500)
+ */
+
+ @ApiOperation(value = "Rest mail templates on the bwLehrpool-Server", nickname = "doResetMailTemplatesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to reset mail templates") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/reset-mail-templates",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doResetMailTemplatesOnFileserver() {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/scan-orphaned-files : Scan orphaned files on the bwLehrpool-Server
+ *
+ * @param action Action for orphaned files (optional)
+ * @return Successful operation (status code 200)
+ * or Failed to scan orphaned files (status code 500)
+ */
+
+ @ApiOperation(value = "Scan orphaned files on the bwLehrpool-Server", nickname = "doScanOrphanedFilesOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to scan orphaned files") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/scan-orphaned-files",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> doScanOrphanedFilesOnFileserver(@ApiParam(value = "Action for orphaned files", allowableValues = "delete") @Valid @RequestParam(value = "action", required = false) String action
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * POST /do/start-image-check : Start image check on the bwLehrpool-Server
+ *
+ * @param versionid Image version for the image check (required)
+ * @param hash Check hashes of images (required)
+ * @param update Update state of images (required)
+ * @return Successful operation (status code 200)
+ * or Failed to start image check (status code 500)
+ */
+
+ @ApiOperation(value = "Start image check on the bwLehrpool-Server", nickname = "doStartImageCheckOnFileserver", notes = "", tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to start image check") })
+ @RequestMapping(
+ method = RequestMethod.POST,
+ value = "/do/start-image-check",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> doStartImageCheckOnFileserver(@NotNull @ApiParam(value = "Image version for the image check", required = true) @Valid @RequestParam(value = "versionid", required = true) UUID versionid
+
+,@NotNull @ApiParam(value = "Check hashes of images", required = true) @Valid @RequestParam(value = "hash", required = true) Boolean hash
+
+,@NotNull @ApiParam(value = "Update state of images", required = true) @Valid @RequestParam(value = "update", required = true) Boolean update
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java
new file mode 100644
index 00000000..b34f8d5b
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/DoApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class DoApiController implements DoApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public DoApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java
new file mode 100644
index 00000000..b73b6e0f
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApi.java
@@ -0,0 +1,58 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "image", description = "the image API")
+public interface ImageApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /image/container/{uuid}/metadata : Get metadata for specified container image
+ *
+ * @param uuid UUID of the container (required)
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve container metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata for specified container image", nickname = "getContainerImageMetadata", notes = "", tags={ "container", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve container metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/image/container/{uuid}/metadata",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> getContainerImageMetadata(@ApiParam(value = "UUID of the container", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java
new file mode 100644
index 00000000..55337159
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/ImageApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class ImageApiController implements ImageApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public ImageApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java
new file mode 100644
index 00000000..258ef11a
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/OpenAPI2SpringBoot.java
@@ -0,0 +1,57 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import com.fasterxml.jackson.databind.Module;
+import org.openapitools.jackson.nullable.JsonNullableModule;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.ExitCodeGenerator;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@SpringBootApplication
+@ComponentScan(basePackages = {"org.openslx.bwlp.sat.api.handler", "org.openslx.bwlp.sat.api.handler" , "org.openapitools.configuration"})
+public class OpenAPI2SpringBoot implements CommandLineRunner {
+
+ @Override
+ public void run(String... arg0) throws Exception {
+ if (arg0.length > 0 && arg0[0].equals("exitcode")) {
+ throw new ExitException();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ new SpringApplication(OpenAPI2SpringBoot.class).run(args);
+ }
+
+ static class ExitException extends RuntimeException implements ExitCodeGenerator {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getExitCode() {
+ return 10;
+ }
+
+ }
+
+ @Bean
+ public WebMvcConfigurer webConfigurer() {
+ return new WebMvcConfigurer() {
+ /*@Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**")
+ .allowedOrigins("*")
+ .allowedMethods("*")
+ .allowedHeaders("Content-Type");
+ }*/
+ };
+ }
+
+ @Bean
+ public Module jsonNullableModule() {
+ return new JsonNullableModule();
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java
new file mode 100644
index 00000000..cf996787
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/RFC3339DateFormat.java
@@ -0,0 +1,38 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import com.fasterxml.jackson.databind.util.StdDateFormat;
+
+import java.text.DateFormat;
+import java.text.FieldPosition;
+import java.text.ParsePosition;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class RFC3339DateFormat extends DateFormat {
+ private static final long serialVersionUID = 1L;
+ private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");
+
+ private final StdDateFormat fmt = new StdDateFormat()
+ .withTimeZone(TIMEZONE_Z)
+ .withColonInTimeZone(true);
+
+ public RFC3339DateFormat() {
+ this.calendar = new GregorianCalendar();
+ }
+
+ @Override
+ public Date parse(String source, ParsePosition pos) {
+ return fmt.parse(source, pos);
+ }
+
+ @Override
+ public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+ return fmt.format(date, toAppendTo, fieldPosition);
+ }
+
+ @Override
+ public Object clone() {
+ return this;
+ }
+} \ No newline at end of file
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java
new file mode 100644
index 00000000..141058c2
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApi.java
@@ -0,0 +1,61 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import org.openslx.bwlp.sat.api.model.StatusFileserver;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "status", description = "the status API")
+public interface StatusApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /status/fileserver : Get bwLehrpool-Server status
+ *
+ * @return Successful operation (status code 200)
+ */
+
+ @ApiOperation(value = "Get bwLehrpool-Server status", nickname = "getFileserverStatus", notes = "", response = StatusFileserver.class, tags={ "server", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation", response = StatusFileserver.class) })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/status/fileserver",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<StatusFileserver> getFileserverStatus() {
+ getRequest().ifPresent(request -> {
+ for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+ if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+ String exampleString = "{ \"activeUploads\" : 0, \"activeDownloads\" : 6 }";
+ ApiUtil.setExampleResponse(request, "application/json", exampleString);
+ break;
+ }
+ }
+ });
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java
new file mode 100644
index 00000000..3b486073
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/StatusApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class StatusApiController implements StatusApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public StatusApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java
new file mode 100644
index 00000000..cf35d745
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApi.java
@@ -0,0 +1,152 @@
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (5.3.1).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+package org.openslx.bwlp.sat.api.handler;
+
+import java.util.UUID;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImages;
+import io.swagger.annotations.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Validated
+@Api(value = "vmchooser", description = "the vmchooser API")
+public interface VmchooserApi {
+
+ default Optional<NativeWebRequest> getRequest() {
+ return Optional.empty();
+ }
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/imagemeta : Get metadata of virtual mchine image for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata of virtual mchine image for specified lecture", nickname = "vmchooserGetLectureImageMeta", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/imagemeta",
+ produces = { "application/json" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureImageMeta(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/metadata : Get metadata for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve metadata (status code 500)
+ */
+
+ @ApiOperation(value = "Get metadata for specified lecture", nickname = "vmchooserGetLectureMetadata", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve metadata") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/metadata",
+ produces = { "application/gzip" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureMetadata(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/lecture/{uuid}/netrules : Get network rules for specified lecture
+ *
+ * @param uuid UUID of the lecture (required)
+ * @return Successful operation (status code 200)
+ * or Faild to retrieve network rules (status code 500)
+ */
+
+ @ApiOperation(value = "Get network rules for specified lecture", nickname = "vmchooserGetLectureNetRules", notes = "", tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation"),
+
+ @ApiResponse(code = 500, message = "Faild to retrieve network rules") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/lecture/{uuid}/netrules",
+ produces = { "text/plain" }
+ )
+ default ResponseEntity<Void> vmchooserGetLectureNetRules(@ApiParam(value = "UUID of the lecture", required = true) @PathVariable("uuid") UUID uuid
+
+) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+
+ /**
+ * GET /vmchooser/list : List all bwLehrpool virtual machine images
+ *
+ * @param locations IDs of locations that need to be considered for the filter (optional)
+ * @param exams Include exam events for the filter (optional, default to false)
+ * @return Successful operation (status code 200)
+ * or Failed to retrieve list (status code 500)
+ */
+
+ @ApiOperation(value = "List all bwLehrpool virtual machine images", nickname = "vmchooserGetList", notes = "", response = VirtualMachineImages.class, tags={ "vmchooser", })
+ @ApiResponses(value = {
+
+ @ApiResponse(code = 200, message = "Successful operation", response = VirtualMachineImages.class),
+
+ @ApiResponse(code = 500, message = "Failed to retrieve list") })
+ @RequestMapping(
+ method = RequestMethod.GET,
+ value = "/vmchooser/list",
+ produces = { "application/xml" }
+ )
+ default ResponseEntity<VirtualMachineImages> vmchooserGetList(@ApiParam(value = "IDs of locations that need to be considered for the filter") @Valid @RequestParam(value = "locations", required = false) List<Integer> locations
+
+,@ApiParam(value = "Include exam events for the filter", defaultValue = "false") @Valid @RequestParam(value = "exams", required = false, defaultValue = "false") Boolean exams
+
+) {
+ getRequest().ifPresent(request -> {
+ for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+ if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
+ String exampleString = "<settings> </settings>";
+ ApiUtil.setExampleResponse(request, "application/xml", exampleString);
+ break;
+ }
+ }
+ });
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java
new file mode 100644
index 00000000..1a717861
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/handler/VmchooserApiController.java
@@ -0,0 +1,24 @@
+package org.openslx.bwlp.sat.api.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+@Controller
+@RequestMapping("${openapi.bwLehrpoolServer.base-path:}")
+public class VmchooserApiController implements VmchooserApi {
+
+ private final NativeWebRequest request;
+
+ @org.springframework.beans.factory.annotation.Autowired
+ public VmchooserApiController(NativeWebRequest request) {
+ this.request = request;
+ }
+
+ @Override
+ public Optional<NativeWebRequest> getRequest() {
+ return Optional.ofNullable(request);
+ }
+
+}
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/StatusFileserver.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/StatusFileserver.java
new file mode 100644
index 00000000..7a95dd74
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/StatusFileserver.java
@@ -0,0 +1,109 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * StatusFileserver
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class StatusFileserver {
+ @JsonProperty("activeUploads")
+ private Integer activeUploads;
+
+ @JsonProperty("activeDownloads")
+ private Integer activeDownloads;
+
+ public StatusFileserver activeUploads(Integer activeUploads) {
+ this.activeUploads = activeUploads;
+ return this;
+ }
+
+ /**
+ * Get activeUploads
+ * @return activeUploads
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getActiveUploads() {
+ return activeUploads;
+ }
+
+ public void setActiveUploads(Integer activeUploads) {
+ this.activeUploads = activeUploads;
+ }
+
+ public StatusFileserver activeDownloads(Integer activeDownloads) {
+ this.activeDownloads = activeDownloads;
+ return this;
+ }
+
+ /**
+ * Get activeDownloads
+ * @return activeDownloads
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getActiveDownloads() {
+ return activeDownloads;
+ }
+
+ public void setActiveDownloads(Integer activeDownloads) {
+ this.activeDownloads = activeDownloads;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ StatusFileserver statusFileserver = (StatusFileserver) o;
+ return Objects.equals(this.activeUploads, statusFileserver.activeUploads) &&
+ Objects.equals(this.activeDownloads, statusFileserver.activeDownloads);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(activeUploads, activeDownloads);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class StatusFileserver {\n");
+
+ sb.append(" activeUploads: ").append(toIndentedString(activeUploads)).append("\n");
+ sb.append(" activeDownloads: ").append(toIndentedString(activeDownloads)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImage.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImage.java
new file mode 100644
index 00000000..56a5d2be
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImage.java
@@ -0,0 +1,408 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageCreator;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageForLocation;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageIsTemplate;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageLongDescription;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageName;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageOsName;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImagePriority;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageShortDescription;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageUuid;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageVirtualMachine;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImageVirtualizerName;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImage
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImage {
+ @JsonProperty("name")
+ private VirtualMachineImageName name;
+
+ @JsonProperty("priority")
+ private VirtualMachineImagePriority priority;
+
+ @JsonProperty("creator")
+ private VirtualMachineImageCreator creator;
+
+ @JsonProperty("shortDescription")
+ private VirtualMachineImageShortDescription shortDescription;
+
+ @JsonProperty("longDescription")
+ private VirtualMachineImageLongDescription longDescription;
+
+ @JsonProperty("uuid")
+ private VirtualMachineImageUuid uuid;
+
+ @JsonProperty("virtualMachine")
+ private VirtualMachineImageVirtualMachine virtualMachine;
+
+ @JsonProperty("os")
+ private VirtualMachineImageCreator os;
+
+ @JsonProperty("icon")
+ private VirtualMachineImageCreator icon;
+
+ @JsonProperty("virtualizerName")
+ private VirtualMachineImageVirtualizerName virtualizerName;
+
+ @JsonProperty("osName")
+ private VirtualMachineImageOsName osName;
+
+ @JsonProperty("forLocation")
+ private VirtualMachineImageForLocation forLocation;
+
+ @JsonProperty("isTemplate")
+ private VirtualMachineImageIsTemplate isTemplate;
+
+ public VirtualMachineImage name(VirtualMachineImageName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageName getName() {
+ return name;
+ }
+
+ public void setName(VirtualMachineImageName name) {
+ this.name = name;
+ }
+
+ public VirtualMachineImage priority(VirtualMachineImagePriority priority) {
+ this.priority = priority;
+ return this;
+ }
+
+ /**
+ * Get priority
+ * @return priority
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImagePriority getPriority() {
+ return priority;
+ }
+
+ public void setPriority(VirtualMachineImagePriority priority) {
+ this.priority = priority;
+ }
+
+ public VirtualMachineImage creator(VirtualMachineImageCreator creator) {
+ this.creator = creator;
+ return this;
+ }
+
+ /**
+ * Get creator
+ * @return creator
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageCreator getCreator() {
+ return creator;
+ }
+
+ public void setCreator(VirtualMachineImageCreator creator) {
+ this.creator = creator;
+ }
+
+ public VirtualMachineImage shortDescription(VirtualMachineImageShortDescription shortDescription) {
+ this.shortDescription = shortDescription;
+ return this;
+ }
+
+ /**
+ * Get shortDescription
+ * @return shortDescription
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageShortDescription getShortDescription() {
+ return shortDescription;
+ }
+
+ public void setShortDescription(VirtualMachineImageShortDescription shortDescription) {
+ this.shortDescription = shortDescription;
+ }
+
+ public VirtualMachineImage longDescription(VirtualMachineImageLongDescription longDescription) {
+ this.longDescription = longDescription;
+ return this;
+ }
+
+ /**
+ * Get longDescription
+ * @return longDescription
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageLongDescription getLongDescription() {
+ return longDescription;
+ }
+
+ public void setLongDescription(VirtualMachineImageLongDescription longDescription) {
+ this.longDescription = longDescription;
+ }
+
+ public VirtualMachineImage uuid(VirtualMachineImageUuid uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get uuid
+ * @return uuid
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageUuid getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(VirtualMachineImageUuid uuid) {
+ this.uuid = uuid;
+ }
+
+ public VirtualMachineImage virtualMachine(VirtualMachineImageVirtualMachine virtualMachine) {
+ this.virtualMachine = virtualMachine;
+ return this;
+ }
+
+ /**
+ * Get virtualMachine
+ * @return virtualMachine
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageVirtualMachine getVirtualMachine() {
+ return virtualMachine;
+ }
+
+ public void setVirtualMachine(VirtualMachineImageVirtualMachine virtualMachine) {
+ this.virtualMachine = virtualMachine;
+ }
+
+ public VirtualMachineImage os(VirtualMachineImageCreator os) {
+ this.os = os;
+ return this;
+ }
+
+ /**
+ * Get os
+ * @return os
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageCreator getOs() {
+ return os;
+ }
+
+ public void setOs(VirtualMachineImageCreator os) {
+ this.os = os;
+ }
+
+ public VirtualMachineImage icon(VirtualMachineImageCreator icon) {
+ this.icon = icon;
+ return this;
+ }
+
+ /**
+ * Get icon
+ * @return icon
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageCreator getIcon() {
+ return icon;
+ }
+
+ public void setIcon(VirtualMachineImageCreator icon) {
+ this.icon = icon;
+ }
+
+ public VirtualMachineImage virtualizerName(VirtualMachineImageVirtualizerName virtualizerName) {
+ this.virtualizerName = virtualizerName;
+ return this;
+ }
+
+ /**
+ * Get virtualizerName
+ * @return virtualizerName
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageVirtualizerName getVirtualizerName() {
+ return virtualizerName;
+ }
+
+ public void setVirtualizerName(VirtualMachineImageVirtualizerName virtualizerName) {
+ this.virtualizerName = virtualizerName;
+ }
+
+ public VirtualMachineImage osName(VirtualMachineImageOsName osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Get osName
+ * @return osName
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageOsName getOsName() {
+ return osName;
+ }
+
+ public void setOsName(VirtualMachineImageOsName osName) {
+ this.osName = osName;
+ }
+
+ public VirtualMachineImage forLocation(VirtualMachineImageForLocation forLocation) {
+ this.forLocation = forLocation;
+ return this;
+ }
+
+ /**
+ * Get forLocation
+ * @return forLocation
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageForLocation getForLocation() {
+ return forLocation;
+ }
+
+ public void setForLocation(VirtualMachineImageForLocation forLocation) {
+ this.forLocation = forLocation;
+ }
+
+ public VirtualMachineImage isTemplate(VirtualMachineImageIsTemplate isTemplate) {
+ this.isTemplate = isTemplate;
+ return this;
+ }
+
+ /**
+ * Get isTemplate
+ * @return isTemplate
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public VirtualMachineImageIsTemplate getIsTemplate() {
+ return isTemplate;
+ }
+
+ public void setIsTemplate(VirtualMachineImageIsTemplate isTemplate) {
+ this.isTemplate = isTemplate;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImage virtualMachineImage = (VirtualMachineImage) o;
+ return Objects.equals(this.name, virtualMachineImage.name) &&
+ Objects.equals(this.priority, virtualMachineImage.priority) &&
+ Objects.equals(this.creator, virtualMachineImage.creator) &&
+ Objects.equals(this.shortDescription, virtualMachineImage.shortDescription) &&
+ Objects.equals(this.longDescription, virtualMachineImage.longDescription) &&
+ Objects.equals(this.uuid, virtualMachineImage.uuid) &&
+ Objects.equals(this.virtualMachine, virtualMachineImage.virtualMachine) &&
+ Objects.equals(this.os, virtualMachineImage.os) &&
+ Objects.equals(this.icon, virtualMachineImage.icon) &&
+ Objects.equals(this.virtualizerName, virtualMachineImage.virtualizerName) &&
+ Objects.equals(this.osName, virtualMachineImage.osName) &&
+ Objects.equals(this.forLocation, virtualMachineImage.forLocation) &&
+ Objects.equals(this.isTemplate, virtualMachineImage.isTemplate);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, priority, creator, shortDescription, longDescription, uuid, virtualMachine, os, icon, virtualizerName, osName, forLocation, isTemplate);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImage {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" priority: ").append(toIndentedString(priority)).append("\n");
+ sb.append(" creator: ").append(toIndentedString(creator)).append("\n");
+ sb.append(" shortDescription: ").append(toIndentedString(shortDescription)).append("\n");
+ sb.append(" longDescription: ").append(toIndentedString(longDescription)).append("\n");
+ sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n");
+ sb.append(" virtualMachine: ").append(toIndentedString(virtualMachine)).append("\n");
+ sb.append(" os: ").append(toIndentedString(os)).append("\n");
+ sb.append(" icon: ").append(toIndentedString(icon)).append("\n");
+ sb.append(" virtualizerName: ").append(toIndentedString(virtualizerName)).append("\n");
+ sb.append(" osName: ").append(toIndentedString(osName)).append("\n");
+ sb.append(" forLocation: ").append(toIndentedString(forLocation)).append("\n");
+ sb.append(" isTemplate: ").append(toIndentedString(isTemplate)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageCreator.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageCreator.java
new file mode 100644
index 00000000..54b822b9
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageCreator.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageCreator
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageCreator {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageCreator param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageCreator virtualMachineImageCreator = (VirtualMachineImageCreator) o;
+ return Objects.equals(this.param, virtualMachineImageCreator.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageCreator {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageForLocation.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageForLocation.java
new file mode 100644
index 00000000..f509829a
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageForLocation.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageForLocation
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageForLocation {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageForLocation param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageForLocation virtualMachineImageForLocation = (VirtualMachineImageForLocation) o;
+ return Objects.equals(this.param, virtualMachineImageForLocation.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageForLocation {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageIsTemplate.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageIsTemplate.java
new file mode 100644
index 00000000..09bddfa7
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageIsTemplate.java
@@ -0,0 +1,120 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageIsTemplate
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageIsTemplate {
+ /**
+ * Gets or Sets param
+ */
+ public enum ParamEnum {
+ NUMBER_0(0),
+
+ NUMBER_1(1);
+
+ private Integer value;
+
+ ParamEnum(Integer value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public Integer getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static ParamEnum fromValue(Integer value) {
+ for (ParamEnum b : ParamEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+ }
+
+ @JsonProperty("param")
+ private ParamEnum param;
+
+ public VirtualMachineImageIsTemplate param(ParamEnum param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public ParamEnum getParam() {
+ return param;
+ }
+
+ public void setParam(ParamEnum param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageIsTemplate virtualMachineImageIsTemplate = (VirtualMachineImageIsTemplate) o;
+ return Objects.equals(this.param, virtualMachineImageIsTemplate.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageIsTemplate {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageLongDescription.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageLongDescription.java
new file mode 100644
index 00000000..81fe023b
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageLongDescription.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageLongDescription
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageLongDescription {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageLongDescription param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageLongDescription virtualMachineImageLongDescription = (VirtualMachineImageLongDescription) o;
+ return Objects.equals(this.param, virtualMachineImageLongDescription.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageLongDescription {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageName.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageName.java
new file mode 100644
index 00000000..83975c88
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageName.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageName
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageName {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageName param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageName virtualMachineImageName = (VirtualMachineImageName) o;
+ return Objects.equals(this.param, virtualMachineImageName.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageName {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageOsName.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageOsName.java
new file mode 100644
index 00000000..5c6630cf
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageOsName.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageOsName
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageOsName {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageOsName param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageOsName virtualMachineImageOsName = (VirtualMachineImageOsName) o;
+ return Objects.equals(this.param, virtualMachineImageOsName.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageOsName {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImagePriority.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImagePriority.java
new file mode 100644
index 00000000..81b8388f
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImagePriority.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImagePriority
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImagePriority {
+ @JsonProperty("param")
+ private Integer param;
+
+ public VirtualMachineImagePriority param(Integer param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getParam() {
+ return param;
+ }
+
+ public void setParam(Integer param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImagePriority virtualMachineImagePriority = (VirtualMachineImagePriority) o;
+ return Objects.equals(this.param, virtualMachineImagePriority.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImagePriority {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageShortDescription.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageShortDescription.java
new file mode 100644
index 00000000..6d35387a
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageShortDescription.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageShortDescription
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageShortDescription {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageShortDescription param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageShortDescription virtualMachineImageShortDescription = (VirtualMachineImageShortDescription) o;
+ return Objects.equals(this.param, virtualMachineImageShortDescription.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageShortDescription {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageUuid.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageUuid.java
new file mode 100644
index 00000000..58affeea
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageUuid.java
@@ -0,0 +1,86 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.UUID;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageUuid
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageUuid {
+ @JsonProperty("param")
+ private UUID param;
+
+ public VirtualMachineImageUuid param(UUID param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public UUID getParam() {
+ return param;
+ }
+
+ public void setParam(UUID param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageUuid virtualMachineImageUuid = (VirtualMachineImageUuid) o;
+ return Objects.equals(this.param, virtualMachineImageUuid.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageUuid {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualMachine.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualMachine.java
new file mode 100644
index 00000000..e3186a42
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualMachine.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageVirtualMachine
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageVirtualMachine {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageVirtualMachine param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageVirtualMachine virtualMachineImageVirtualMachine = (VirtualMachineImageVirtualMachine) o;
+ return Objects.equals(this.param, virtualMachineImageVirtualMachine.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageVirtualMachine {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualizerName.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualizerName.java
new file mode 100644
index 00000000..3ca6a053
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImageVirtualizerName.java
@@ -0,0 +1,84 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImageVirtualizerName
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImageVirtualizerName {
+ @JsonProperty("param")
+ private String param;
+
+ public VirtualMachineImageVirtualizerName param(String param) {
+ this.param = param;
+ return this;
+ }
+
+ /**
+ * Get param
+ * @return param
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImageVirtualizerName virtualMachineImageVirtualizerName = (VirtualMachineImageVirtualizerName) o;
+ return Objects.equals(this.param, virtualMachineImageVirtualizerName.param);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(param);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImageVirtualizerName {\n");
+
+ sb.append(" param: ").append(toIndentedString(param)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImages.java b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImages.java
new file mode 100644
index 00000000..11f8f026
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api/model/VirtualMachineImages.java
@@ -0,0 +1,97 @@
+package org.openslx.bwlp.sat.api.model;
+
+import java.net.URI;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.openslx.bwlp.sat.api.model.VirtualMachineImage;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.time.OffsetDateTime;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+
+import java.util.*;
+
+/**
+ * VirtualMachineImages
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2021-12-23T15:12:42.264617368+01:00[Europe/Berlin]")
+public class VirtualMachineImages {
+ @JsonProperty("settings")
+ @Valid
+ private List<VirtualMachineImage> settings = null;
+
+ public VirtualMachineImages settings(List<VirtualMachineImage> settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ public VirtualMachineImages addSettingsItem(VirtualMachineImage settingsItem) {
+ if (this.settings == null) {
+ this.settings = new ArrayList<>();
+ }
+ this.settings.add(settingsItem);
+ return this;
+ }
+
+ /**
+ * Get settings
+ * @return settings
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List<VirtualMachineImage> getSettings() {
+ return settings;
+ }
+
+ public void setSettings(List<VirtualMachineImage> settings) {
+ this.settings = settings;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ VirtualMachineImages virtualMachineImages = (VirtualMachineImages) o;
+ return Objects.equals(this.settings, virtualMachineImages.settings);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(settings);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class VirtualMachineImages {\n");
+
+ sb.append(" settings: ").append(toIndentedString(settings)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/dozentenmodulserver/api/src/main/resources/application.properties b/dozentenmodulserver/api/src/main/resources/application.properties
new file mode 100644
index 00000000..aee22931
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/resources/application.properties
@@ -0,0 +1,4 @@
+springfox.documentation.swagger.v2.path=/api-docs
+server.port=9080
+spring.jackson.date-format=org.openslx.bwlp.sat.api.handler.RFC3339DateFormat
+spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
diff --git a/dozentenmodulserver/api/src/main/resources/openapi.yaml b/dozentenmodulserver/api/src/main/resources/openapi.yaml
new file mode 100644
index 00000000..ae247ad7
--- /dev/null
+++ b/dozentenmodulserver/api/src/main/resources/openapi.yaml
@@ -0,0 +1,568 @@
+openapi: 3.0.0
+info:
+ contact:
+ name: bwLehrpool-Server
+ url: https://git.openslx.org/openslx-ng/tutor-module.git
+ description: This is the description document of the bwLehrpool-Server API. The
+ API provides functionality to create, modify, and query events or virtual machine
+ images. You can find out more about the bwLehrpool-Server at [https://git.openslx.org/openslx-ng/tutor-module.git](https://git.openslx.org/openslx-ng/tutor-module.git).
+ title: bwLehrpool-Server
+ version: 1.0.0
+servers:
+- url: http://192.168.200.20:9080
+tags:
+- description: Query bwLehrpool events and virtual machine images
+ name: vmchooser
+- description: Query bwLehrpool container images
+ name: container
+- description: Status and actions of the bwLehrpool-Server
+ name: server
+paths:
+ /vmchooser/list:
+ get:
+ operationId: vmchooserGetList
+ parameters:
+ - description: IDs of locations that need to be considered for the filter
+ explode: false
+ in: query
+ name: locations
+ required: false
+ schema:
+ items:
+ type: integer
+ type: array
+ style: spaceDelimited
+ - description: Include exam events for the filter
+ explode: true
+ in: query
+ name: exams
+ required: false
+ schema:
+ default: false
+ type: boolean
+ style: form
+ responses:
+ "200":
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/VirtualMachineImages'
+ description: Successful operation
+ "500":
+ description: Failed to retrieve list
+ summary: List all bwLehrpool virtual machine images
+ tags:
+ - vmchooser
+ x-accepts: application/xml
+ x-tags:
+ - tag: vmchooser
+ /vmchooser/lecture/{uuid}/metadata:
+ get:
+ operationId: vmchooserGetLectureMetadata
+ parameters:
+ - description: UUID of the lecture
+ explode: false
+ in: path
+ name: uuid
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/gzip: {}
+ description: Successful operation
+ "500":
+ description: Faild to retrieve metadata
+ summary: Get metadata for specified lecture
+ tags:
+ - vmchooser
+ x-accepts: application/gzip
+ x-tags:
+ - tag: vmchooser
+ /vmchooser/lecture/{uuid}/netrules:
+ get:
+ operationId: vmchooserGetLectureNetRules
+ parameters:
+ - description: UUID of the lecture
+ explode: false
+ in: path
+ name: uuid
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ text/plain: {}
+ description: Successful operation
+ "500":
+ description: Faild to retrieve network rules
+ summary: Get network rules for specified lecture
+ tags:
+ - vmchooser
+ x-accepts: text/plain
+ x-tags:
+ - tag: vmchooser
+ /vmchooser/lecture/{uuid}/imagemeta:
+ get:
+ operationId: vmchooserGetLectureImageMeta
+ parameters:
+ - description: UUID of the lecture
+ explode: false
+ in: path
+ name: uuid
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json: {}
+ description: Successful operation
+ "500":
+ description: Faild to retrieve metadata
+ summary: Get metadata of virtual mchine image for specified lecture
+ tags:
+ - vmchooser
+ x-accepts: application/json
+ x-tags:
+ - tag: vmchooser
+ /bwlp/container/clusterimages:
+ get:
+ operationId: bwlpGetClusterImagesList
+ responses:
+ "200":
+ content:
+ application/json: {}
+ description: Successful operation
+ "500":
+ description: Failed to retrieve container images
+ summary: List all bwLehrpool container images
+ tags:
+ - container
+ x-accepts: application/json
+ x-tags:
+ - tag: container
+ /image/container/{uuid}/metadata:
+ get:
+ operationId: getContainerImageMetadata
+ parameters:
+ - description: UUID of the container
+ explode: false
+ in: path
+ name: uuid
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json: {}
+ description: Successful operation
+ "500":
+ description: Failed to retrieve container metadata
+ summary: Get metadata for specified container image
+ tags:
+ - container
+ x-accepts: application/json
+ x-tags:
+ - tag: container
+ /status/fileserver:
+ get:
+ operationId: getFileserverStatus
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StatusFileserver'
+ description: Successful operation
+ summary: Get bwLehrpool-Server status
+ tags:
+ - server
+ x-accepts: application/json
+ x-tags:
+ - tag: server
+ /do/mailtest:
+ post:
+ operationId: doMailtestOnFileserver
+ parameters:
+ - description: Domain of SMTP mail server
+ explode: true
+ in: query
+ name: host
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Port of SMTP mail server
+ explode: true
+ in: query
+ name: port
+ required: true
+ schema:
+ format: int32
+ type: integer
+ style: form
+ - description: Encryption mode for the SMTP mail server
+ explode: true
+ in: query
+ name: ssl
+ required: true
+ schema:
+ enum:
+ - NONE
+ - IMPLICIT
+ - EXPLICIT
+ type: string
+ style: form
+ - description: Name of the SMTP mail server
+ explode: true
+ in: query
+ name: serverName
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Username for the SMTP mail server
+ explode: true
+ in: query
+ name: username
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Password for the SMTP mail server
+ explode: true
+ in: query
+ name: password
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Sender address for the test mail
+ explode: true
+ in: query
+ name: senderAddress
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Recipient for the test mail
+ explode: true
+ in: query
+ name: recipient
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Reply-To address for the test mail
+ explode: true
+ in: query
+ name: replyTo
+ required: true
+ schema:
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ text/plain: {}
+ description: Successful operation
+ "400":
+ description: Failed to send test mail
+ summary: Send a test mail from the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: text/plain
+ x-tags:
+ - tag: server
+ /do/delete-images:
+ post:
+ operationId: doDeleteOldImagesOnFileserver
+ responses:
+ "200":
+ content:
+ text/plain: {}
+ description: Successful operation
+ "500":
+ description: Failed to delete old images
+ summary: Delete old images on the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: text/plain
+ x-tags:
+ - tag: server
+ /do/start-image-check:
+ post:
+ operationId: doStartImageCheckOnFileserver
+ parameters:
+ - description: Image version for the image check
+ explode: true
+ in: query
+ name: versionid
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: form
+ - description: Check hashes of images
+ explode: true
+ in: query
+ name: hash
+ required: true
+ schema:
+ type: boolean
+ style: form
+ - description: Update state of images
+ explode: true
+ in: query
+ name: update
+ required: true
+ schema:
+ type: boolean
+ style: form
+ responses:
+ "200":
+ content:
+ text/plain: {}
+ description: Successful operation
+ "500":
+ description: Failed to start image check
+ summary: Start image check on the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: text/plain
+ x-tags:
+ - tag: server
+ /do/query-image-check:
+ post:
+ operationId: doQueryImageCheckOnFileserver
+ parameters:
+ - description: Query image check for specified image version
+ explode: true
+ in: query
+ name: versionid
+ required: false
+ schema:
+ format: uuid
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json: {}
+ description: Successful operation
+ "500":
+ description: Failed to query image check
+ summary: Query image check on the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: application/json
+ x-tags:
+ - tag: server
+ /do/reset-mail-templates:
+ post:
+ operationId: doResetMailTemplatesOnFileserver
+ responses:
+ "200":
+ content:
+ text/plain: {}
+ description: Successful operation
+ "500":
+ description: Failed to reset mail templates
+ summary: Rest mail templates on the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: text/plain
+ x-tags:
+ - tag: server
+ /do/scan-orphaned-files:
+ post:
+ operationId: doScanOrphanedFilesOnFileserver
+ parameters:
+ - description: Action for orphaned files
+ explode: true
+ in: query
+ name: action
+ required: false
+ schema:
+ enum:
+ - delete
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json: {}
+ description: Successful operation
+ "500":
+ description: Failed to scan orphaned files
+ summary: Scan orphaned files on the bwLehrpool-Server
+ tags:
+ - server
+ x-accepts: application/json
+ x-tags:
+ - tag: server
+components:
+ schemas:
+ VirtualMachineImages:
+ properties:
+ settings:
+ items:
+ $ref: '#/components/schemas/VirtualMachineImage'
+ type: array
+ type: object
+ xml:
+ name: settings
+ VirtualMachineImage:
+ properties:
+ name:
+ $ref: '#/components/schemas/VirtualMachineImage_name'
+ priority:
+ $ref: '#/components/schemas/VirtualMachineImage_priority'
+ creator:
+ $ref: '#/components/schemas/VirtualMachineImage_creator'
+ shortDescription:
+ $ref: '#/components/schemas/VirtualMachineImage_shortDescription'
+ longDescription:
+ $ref: '#/components/schemas/VirtualMachineImage_longDescription'
+ uuid:
+ $ref: '#/components/schemas/VirtualMachineImage_uuid'
+ virtualMachine:
+ $ref: '#/components/schemas/VirtualMachineImage_virtualMachine'
+ os:
+ $ref: '#/components/schemas/VirtualMachineImage_creator'
+ icon:
+ $ref: '#/components/schemas/VirtualMachineImage_creator'
+ virtualizerName:
+ $ref: '#/components/schemas/VirtualMachineImage_virtualizerName'
+ osName:
+ $ref: '#/components/schemas/VirtualMachineImage_osName'
+ forLocation:
+ $ref: '#/components/schemas/VirtualMachineImage_forLocation'
+ isTemplate:
+ $ref: '#/components/schemas/VirtualMachineImage_isTemplate'
+ type: object
+ xml:
+ name: eintrag
+ StatusFileserver:
+ example:
+ activeUploads: 0
+ activeDownloads: 6
+ properties:
+ activeUploads:
+ format: int32
+ type: integer
+ activeDownloads:
+ format: int32
+ type: integer
+ type: object
+ VirtualMachineImage_name:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: image_name
+ VirtualMachineImage_priority:
+ properties:
+ param:
+ format: int32
+ type: integer
+ xml:
+ attribute: true
+ type: object
+ VirtualMachineImage_creator:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ VirtualMachineImage_shortDescription:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: short_description
+ VirtualMachineImage_longDescription:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: long_description
+ VirtualMachineImage_uuid:
+ properties:
+ param:
+ format: uuid
+ type: string
+ xml:
+ attribute: true
+ type: object
+ VirtualMachineImage_virtualMachine:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: virtualmachine
+ VirtualMachineImage_virtualizerName:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: virtualizer_name
+ VirtualMachineImage_osName:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: os_name
+ VirtualMachineImage_forLocation:
+ properties:
+ param:
+ type: string
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: for_location
+ VirtualMachineImage_isTemplate:
+ properties:
+ param:
+ enum:
+ - 0
+ - 1
+ format: int32
+ type: integer
+ xml:
+ attribute: true
+ type: object
+ xml:
+ name: is_template