<!--********************************************************************************
 * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 ********************************************************************************-->

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>openMDM 5 Swagger</title>
    <link rel="stylesheet" type="text/css" href="webjars/swagger-ui/3.23.0/swagger-ui.css">
</head>
<body>

<div id="swagger-ui"></div>

<script src="webjars/swagger-ui/3.23.0/swagger-ui-standalone-preset.js"></script>
<script src="webjars/swagger-ui/3.23.0/swagger-ui-bundle.js"></script>

<script>
    window.onload = function() {
        // Build a system
        const ui = SwaggerUIBundle({
            url: window.location.href.replace("swagger.html", "openapi.json"),
            dom_id: '#swagger-ui',
            deepLinking: true,
            presets: [
                SwaggerUIBundle.presets.apis,
                SwaggerUIStandalonePreset
            ],
            plugins: [
                SwaggerUIBundle.plugins.DownloadUrl
            ],
            docExpansion: "none",
            layout: "StandaloneLayout",
        })
        window.ui = ui
    }
</script>
</body>
</html>