summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodulserver/api/src/main/java/org/openslx/bwlp/sat/api')
-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
27 files changed, 2352 insertions, 0 deletions
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 ");
+ }
+}
+