diff --git a/.gitignore b/.gitignore
index 4c239258d..60e847496 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+
# Custom
*.p12
*.cert
@@ -5,6 +6,7 @@
*.crt
*.dump
.env-*
+.docker-*
api/assets/*
# Logs
diff --git a/api/routes/video-lease.ts b/api/routes/video-lease.ts
index f065c37c7..5e0b5376d 100644
--- a/api/routes/video-lease.ts
+++ b/api/routes/video-lease.ts
@@ -19,6 +19,10 @@ export default async function router(schema: Schema, config: Config) {
group: 'VideoLease',
description: 'List all video leases',
query: Type.Object({
+ impersonate: Type.Optional(Type.Union([
+ Type.Boolean({ description: 'List all of the given resource, regardless of ACL' }),
+ Type.String({ description: 'Filter the given resource by a given username' }),
+ ])),
limit: Default.Limit,
page: Default.Page,
order: Default.Order,
@@ -32,21 +36,37 @@ export default async function router(schema: Schema, config: Config) {
})
}, async (req, res) => {
try {
- const user = await Auth.as_user(config, req);
-
- const list = await config.models.VideoLease.list({
- limit: req.query.limit,
- page: req.query.page,
- order: req.query.order,
- sort: req.query.sort,
- where: sql`
- name ~* ${req.query.filter}
- AND username = ${user.email}
- AND ephemeral = ${req.query.ephemeral}
- `
- });
-
- res.json(list);
+ if (req.query.impersonate) {
+ await Auth.as_user(config, req, { admin: true });
+
+ const impersonate: string | null = req.query.impersonate === true ? null : req.query.impersonate;
+
+ res.json(await config.models.VideoLease.list({
+ limit: req.query.limit,
+ page: req.query.page,
+ order: req.query.order,
+ sort: req.query.sort,
+ where: sql`
+ name ~* ${req.query.filter}
+ AND ephemeral = ${req.query.ephemeral}
+ AND (${impersonate}::TEXT IS NULL OR username = ${impersonate}::TEXT)
+ `
+ }));
+ } else {
+ const user = await Auth.as_user(config, req);
+
+ res.json(await config.models.VideoLease.list({
+ limit: req.query.limit,
+ page: req.query.page,
+ order: req.query.order,
+ sort: req.query.sort,
+ where: sql`
+ name ~* ${req.query.filter}
+ AND username = ${user.email}
+ AND ephemeral = ${req.query.ephemeral}
+ `
+ }));
+ }
} catch (err) {
Err.respond(err, res);
}
diff --git a/api/web/package-lock.json b/api/web/package-lock.json
index 9bc83b9e4..5b40f4dc6 100644
--- a/api/web/package-lock.json
+++ b/api/web/package-lock.json
@@ -2266,9 +2266,9 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4090,9 +4090,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "22.10.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
- "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
+ "version": "22.10.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz",
+ "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5222,6 +5222,22 @@
"node": ">= 0.4"
}
},
+ "node_modules/call-bound": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz",
+ "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "get-intrinsic": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -5233,9 +5249,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001687",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz",
- "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==",
+ "version": "1.0.30001688",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz",
+ "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==",
"dev": true,
"funding": [
{
@@ -5747,9 +5763,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.71",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz",
- "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==",
+ "version": "1.5.73",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz",
+ "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==",
"dev": true,
"license": "ISC"
},
@@ -5875,7 +5891,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
"integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -6624,19 +6639,21 @@
"license": "ISC"
},
"node_modules/get-intrinsic": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz",
- "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz",
+ "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==",
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
+ "call-bind-apply-helpers": "^1.0.1",
"dunder-proto": "^1.0.0",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
- "hasown": "^2.0.2"
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -7199,12 +7216,14 @@
}
},
"node_modules/is-data-view": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dev": true,
"license": "MIT",
"dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
"is-typed-array": "^1.1.13"
},
"engines": {
@@ -7215,12 +7234,13 @@
}
},
"node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"license": "MIT",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -7369,13 +7389,13 @@
}
},
"node_modules/is-regex": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz",
- "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "gopd": "^1.1.0",
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
@@ -7605,9 +7625,9 @@
}
},
"node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -7894,9 +7914,9 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.14",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz",
- "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==",
+ "version": "0.30.15",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz",
+ "integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==",
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
@@ -7943,6 +7963,15 @@
"url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1"
}
},
+ "node_modules/math-intrinsics": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz",
+ "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -8137,9 +8166,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"dev": true,
"license": "MIT"
},
@@ -8901,6 +8930,19 @@
"regjsparser": "bin/parser"
}
},
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
@@ -9148,15 +9190,16 @@
"license": "BSD-3-Clause"
},
"node_modules/safe-array-concat": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
- "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
"engines": {
@@ -9188,14 +9231,14 @@
"license": "MIT"
},
"node_modules/safe-regex-test": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
- "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "is-regex": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -9205,9 +9248,9 @@
}
},
"node_modules/sass": {
- "version": "1.82.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.82.0.tgz",
- "integrity": "sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.0.tgz",
+ "integrity": "sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==",
"license": "MIT",
"dependencies": {
"chokidar": "^4.0.0",
@@ -9397,15 +9440,69 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -9543,9 +9640,9 @@
}
},
"node_modules/streamx": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz",
- "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==",
+ "version": "2.21.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz",
+ "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9659,16 +9756,19 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
- "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9678,16 +9778,20 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
- "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -10117,9 +10221,9 @@
}
},
"node_modules/type-fest": {
- "version": "4.30.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz",
- "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==",
+ "version": "4.30.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.1.tgz",
+ "integrity": "sha512-ojFL7eDMX2NF0xMbDwPZJ8sb7ckqtlAi1GsmgsFXvErT9kFTk1r0DuQKvrCh73M6D4nngeHJmvogF9OluXs7Hw==",
"dev": true,
"license": "(MIT OR CC0-1.0)",
"engines": {
diff --git a/api/web/src/components/Admin.vue b/api/web/src/components/Admin.vue
index c5ad9fb95..c5010ed28 100644
--- a/api/web/src/components/Admin.vue
+++ b/api/web/src/components/Admin.vue
@@ -6,11 +6,11 @@
TAK Server Connection
CloudTAK Settings
ETL Containers
Global Overlays
Registered Tasks
Connections
Layers
Data Syncs
Users
Video Services
Export
Layer Templates
-
diff --git a/api/web/src/components/Admin/AdminVideos.vue b/api/web/src/components/Admin/AdminVideos.vue
index 29441fda1..abbe483a4 100644
--- a/api/web/src/components/Admin/AdminVideos.vue
+++ b/api/web/src/components/Admin/AdminVideos.vue
@@ -1,200 +1,78 @@
-
-
-
-
-
-
-
+
+
-
diff --git a/api/web/src/components/Admin/Videos/AdminVideoLeases.vue b/api/web/src/components/Admin/Videos/AdminVideoLeases.vue
new file mode 100644
index 000000000..e4b1aeebd
--- /dev/null
+++ b/api/web/src/components/Admin/Videos/AdminVideoLeases.vue
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Expired
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api/web/src/components/Admin/Videos/AdminVideoService.vue b/api/web/src/components/Admin/Videos/AdminVideoService.vue
new file mode 100644
index 000000000..ed2c1bafe
--- /dev/null
+++ b/api/web/src/components/Admin/Videos/AdminVideoService.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
diff --git a/api/web/src/components/Admin/AdminVideo.vue b/api/web/src/components/Admin/Videos/AdminVideoTask.vue
similarity index 68%
rename from api/web/src/components/Admin/AdminVideo.vue
rename to api/web/src/components/Admin/Videos/AdminVideoTask.vue
index 80393360e..c57235088 100644
--- a/api/web/src/components/Admin/AdminVideo.vue
+++ b/api/web/src/components/Admin/Videos/AdminVideoTask.vue
@@ -3,12 +3,12 @@
@@ -29,7 +30,7 @@
+
@@ -110,58 +115,61 @@
-
diff --git a/api/web/src/components/Admin/Videos/AdminVideoTasks.vue b/api/web/src/components/Admin/Videos/AdminVideoTasks.vue
new file mode 100644
index 000000000..cf1cedab8
--- /dev/null
+++ b/api/web/src/components/Admin/Videos/AdminVideoTasks.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+ ID |
+ Version |
+ Created |
+ CPU |
+ Memory |
+
+
+
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
diff --git a/api/web/src/components/Admin/VideoConfig.vue b/api/web/src/components/Admin/Videos/VideoConfig.vue
similarity index 100%
rename from api/web/src/components/Admin/VideoConfig.vue
rename to api/web/src/components/Admin/Videos/VideoConfig.vue
diff --git a/api/web/src/components/Admin/VideoConfigPath.vue b/api/web/src/components/Admin/Videos/VideoConfigPath.vue
similarity index 100%
rename from api/web/src/components/Admin/VideoConfigPath.vue
rename to api/web/src/components/Admin/Videos/VideoConfigPath.vue
diff --git a/api/web/src/components/CloudTAK/util/Breadcrumb.vue b/api/web/src/components/CloudTAK/util/Breadcrumb.vue
index fdf1f9791..f4e6fc702 100644
--- a/api/web/src/components/CloudTAK/util/Breadcrumb.vue
+++ b/api/web/src/components/CloudTAK/util/Breadcrumb.vue
@@ -5,7 +5,10 @@
desc='Loading Breadcrumb'
/>
-
+
diff --git a/api/web/src/derived-types.d.ts b/api/web/src/derived-types.d.ts
index 3b1209d88..640088582 100644
--- a/api/web/src/derived-types.d.ts
+++ b/api/web/src/derived-types.d.ts
@@ -442,34 +442,17 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/basemap": {
+ "/connection/{:connectionid}/data/{:dataid}/asset": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** List BaseMaps */
+ /** List Assets */
get: {
parameters: {
- query: {
- /** @description No Description */
- scope?: "server" | "user";
- /** @description Limit the number of responses returned */
- limit: number;
- /** @description Iterate through "pages" of items based on the "limit" query param */
- page: number;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
- /** @description No Description */
- type?: "raster" | "raster-dem" | "vector";
- /** @description No Description */
- sort: "id" | "created" | "updated" | "name" | "url" | "overlay" | "username" | "bounds" | "center" | "minzoom" | "maxzoom" | "format" | "style" | "styles" | "type" | "enableRLS";
- /** @description Filter results by a human readable name field */
- filter: string;
- /** @description No Description */
- overlay: boolean;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -484,66 +467,29 @@ export interface paths {
content: {
"application/json": {
total: number;
- items: {
- id: number;
- created: string;
- updated: string;
- name: string;
+ tiles: {
url: string;
- overlay: boolean;
- username: string | null;
- minzoom: number;
- maxzoom: number;
- format: string;
- style: string;
- styles: unknown[];
- type: string;
- bounds?: number[];
- center?: number[];
+ };
+ assets: {
+ /** @description The filename of the asset */
+ name: string;
+ visualized?: string;
+ vectorized?: string;
+ updated: number;
+ /** @description Does this file meet the glob rules to sync with the server */
+ sync: boolean;
+ /** @description AWS S3 generated ETag of the asset */
+ etag: string;
+ /** @description Size in bytes of the asset */
+ size: number;
}[];
};
};
};
};
};
- /**
- * If the Content-Type if text/plain, then assume the body contains a TileJSON URL
- * Alternatively, if the Content-Type is a MultiPart upload, assume the input is a TAK XML document
- *
- * Both return as many BaseMap fields as possible to use in the creation of a new BaseMap
- * */
- put: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- name?: string;
- type?: "raster" | "raster-dem" | "vector";
- url?: string;
- bounds?: unknown;
- center?: unknown;
- minzoom?: number;
- maxzoom?: number;
- /** @constant */
- style?: "zxy";
- format?: "png" | "jpeg" | "mvt";
- };
- };
- };
- };
- };
- /** Register a new basemap */
+ put?: never;
+ /** Create a new asset */
post: {
parameters: {
query?: never;
@@ -551,28 +497,7 @@ export interface paths {
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name: string;
- /** @default user */
- scope: "server" | "user";
- url: string;
- /** @default false */
- overlay: boolean;
- minzoom?: number;
- maxzoom?: number;
- format?: "png" | "jpeg" | "mvt";
- /** @constant */
- style?: "zxy";
- type?: "raster" | "raster-dem" | "vector";
- bounds?: number[];
- center?: number[];
- styles?: unknown[];
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -581,21 +506,8 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- url: string;
- overlay: boolean;
- username: string | null;
- minzoom: number;
- maxzoom: number;
- format: string;
- style: string;
- styles: unknown[];
- type: string;
- bounds?: number[];
- center?: number[];
+ status: number;
+ message: string;
};
};
};
@@ -607,24 +519,17 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/basemap/{:basemapid}": {
+ "/connection/{:connectionid}/data/{:dataid}/asset/{:asset}.{:ext}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get a basemap */
+ /** Get single raw asset */
get: {
parameters: {
- query?: {
- /** @description No Description */
- download?: boolean;
- /** @description No Description */
- format?: string;
- /** @description No Description */
- token?: string;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -636,32 +541,13 @@ export interface paths {
headers: {
[name: string]: unknown;
};
- content: {
- "application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- url: string;
- overlay: boolean;
- username: string | null;
- minzoom: number;
- maxzoom: number;
- format: string;
- style: string;
- styles: unknown[];
- type: string;
- bounds?: number[];
- center?: number[];
- } | string;
- };
+ content?: never;
};
};
};
put?: never;
- post?: never;
- /** Delete a basemap */
- delete: {
+ /** Convert Asset into a cloud native or TAK Native format automatically */
+ post: {
parameters: {
query?: never;
header?: never;
@@ -684,34 +570,15 @@ export interface paths {
};
};
};
- options?: never;
- head?: never;
- /** Update a basemap */
- patch: {
+ /** Delete Asset */
+ delete: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name?: string;
- url?: string;
- minzoom?: number;
- maxzoom?: number;
- format?: "png" | "jpeg" | "mvt";
- /** @constant */
- style?: "zxy";
- type?: "raster" | "raster-dem" | "vector";
- bounds?: number[];
- center?: number[];
- styles?: unknown[];
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -720,42 +587,29 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- url: string;
- overlay: boolean;
- username: string | null;
- minzoom: number;
- maxzoom: number;
- format: string;
- style: string;
- styles: unknown[];
- type: string;
- bounds?: number[];
- center?: number[];
+ status: number;
+ message: string;
};
};
};
};
};
+ options?: never;
+ head?: never;
+ patch?: never;
trace?: never;
};
- "/basemap/{:basemapid}/tiles": {
+ "/connection/{:connectionid}/data/{:dataid}/asset/{:asset}.pmtiles/tile": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get a basemap tilejson */
+ /** Get TileJSON */
get: {
parameters: {
- query?: {
- /** @description No Description */
- token?: string;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -767,21 +621,7 @@ export interface paths {
headers: {
[name: string]: unknown;
};
- content: {
- "application/json": {
- tilejson: string;
- version: string;
- name: string;
- minzoom: number;
- maxzoom: number;
- tiles: string[];
- bounds: number[];
- center: number[];
- type: string;
- layers: unknown[];
- format?: string;
- };
- };
+ content?: never;
};
};
};
@@ -793,245 +633,17 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/basemap/{:basemapid}/tiles/{:z}/{:x}/{:y}": {
+ "/connection/{:connectionid}/data/{:dataid}/job": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get a basemap tile */
+ /** List Data Jobs */
get: {
parameters: {
- query?: {
- /** @description No Description */
- token?: string;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content?: never;
- };
- };
- };
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/data/{:dataid}/asset": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** List Assets */
- get: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- total: number;
- tiles: {
- url: string;
- };
- assets: {
- /** @description The filename of the asset */
- name: string;
- visualized?: string;
- vectorized?: string;
- updated: number;
- /** @description Does this file meet the glob rules to sync with the server */
- sync: boolean;
- /** @description AWS S3 generated ETag of the asset */
- etag: string;
- /** @description Size in bytes of the asset */
- size: number;
- }[];
- };
- };
- };
- };
- };
- put?: never;
- /** Create a new asset */
- post: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: number;
- message: string;
- };
- };
- };
- };
- };
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/data/{:dataid}/asset/{:asset}.{:ext}": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get single raw asset */
- get: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content?: never;
- };
- };
- };
- put?: never;
- /** Convert Asset into a cloud native or TAK Native format automatically */
- post: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: number;
- message: string;
- };
- };
- };
- };
- };
- /** Delete Asset */
- delete: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: number;
- message: string;
- };
- };
- };
- };
- };
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/data/{:dataid}/asset/{:asset}.pmtiles/tile": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get TileJSON */
- get: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content?: never;
- };
- };
- };
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/data/{:dataid}/job": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** List Data Jobs */
- get: {
- parameters: {
- query?: never;
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -1559,36 +1171,424 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/layer/{:layerid}/cot": {
+ "/basemap": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- get?: never;
- put?: never;
- /** Post CoT data to a given layer */
- post: {
+ /** List BaseMaps */
+ get: {
parameters: {
- query?: {
- /** @description If logging is enabled for the layer, allow callers to skip logging for a particular CoT payload */
- logging?: boolean;
+ query: {
+ /** @description No Description */
+ scope?: "server" | "user";
+ /** @description Limit the number of responses returned */
+ limit: number;
+ /** @description Iterate through "pages" of items based on the "limit" query param */
+ page: number;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
+ /** @description No Description */
+ type?: "raster" | "raster-dem" | "vector";
+ /** @description No Description */
+ sort: "id" | "created" | "updated" | "name" | "url" | "overlay" | "username" | "bounds" | "center" | "minzoom" | "maxzoom" | "format" | "style" | "styles" | "type" | "enableRLS";
+ /** @description Filter results by a human readable name field */
+ filter: string;
+ /** @description No Description */
+ overlay: boolean;
};
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @constant */
- type: "FeatureCollection";
- uids?: string[];
- features: {
- id?: string;
- /** @constant */
- type: "Feature";
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ total: number;
+ items: {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ url: string;
+ overlay: boolean;
+ username: string | null;
+ minzoom: number;
+ maxzoom: number;
+ format: string;
+ style: string;
+ styles: unknown[];
+ type: string;
+ bounds?: number[];
+ center?: number[];
+ }[];
+ };
+ };
+ };
+ };
+ };
+ /**
+ * If the Content-Type if text/plain, then assume the body contains a TileJSON URL
+ * Alternatively, if the Content-Type is a MultiPart upload, assume the input is a TAK XML document
+ *
+ * Both return as many BaseMap fields as possible to use in the creation of a new BaseMap
+ * */
+ put: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ name?: string;
+ type?: "raster" | "raster-dem" | "vector";
+ url?: string;
+ bounds?: unknown;
+ center?: unknown;
+ minzoom?: number;
+ maxzoom?: number;
+ /** @constant */
+ style?: "zxy";
+ format?: "png" | "jpeg" | "mvt";
+ };
+ };
+ };
+ };
+ };
+ /** Register a new basemap */
+ post: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name: string;
+ /** @default user */
+ scope: "server" | "user";
+ url: string;
+ /** @default false */
+ overlay: boolean;
+ minzoom?: number;
+ maxzoom?: number;
+ format?: "png" | "jpeg" | "mvt";
+ /** @constant */
+ style?: "zxy";
+ type?: "raster" | "raster-dem" | "vector";
+ bounds?: number[];
+ center?: number[];
+ styles?: unknown[];
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ url: string;
+ overlay: boolean;
+ username: string | null;
+ minzoom: number;
+ maxzoom: number;
+ format: string;
+ style: string;
+ styles: unknown[];
+ type: string;
+ bounds?: number[];
+ center?: number[];
+ };
+ };
+ };
+ };
+ };
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/basemap/{:basemapid}": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a basemap */
+ get: {
+ parameters: {
+ query?: {
+ /** @description No Description */
+ download?: boolean;
+ /** @description No Description */
+ format?: string;
+ /** @description No Description */
+ token?: string;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ url: string;
+ overlay: boolean;
+ username: string | null;
+ minzoom: number;
+ maxzoom: number;
+ format: string;
+ style: string;
+ styles: unknown[];
+ type: string;
+ bounds?: number[];
+ center?: number[];
+ } | string;
+ };
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ /** Delete a basemap */
+ delete: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ status: number;
+ message: string;
+ };
+ };
+ };
+ };
+ };
+ options?: never;
+ head?: never;
+ /** Update a basemap */
+ patch: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name?: string;
+ url?: string;
+ minzoom?: number;
+ maxzoom?: number;
+ format?: "png" | "jpeg" | "mvt";
+ /** @constant */
+ style?: "zxy";
+ type?: "raster" | "raster-dem" | "vector";
+ bounds?: number[];
+ center?: number[];
+ styles?: unknown[];
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ url: string;
+ overlay: boolean;
+ username: string | null;
+ minzoom: number;
+ maxzoom: number;
+ format: string;
+ style: string;
+ styles: unknown[];
+ type: string;
+ bounds?: number[];
+ center?: number[];
+ };
+ };
+ };
+ };
+ };
+ trace?: never;
+ };
+ "/basemap/{:basemapid}/tiles": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a basemap tilejson */
+ get: {
+ parameters: {
+ query?: {
+ /** @description No Description */
+ token?: string;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ tilejson: string;
+ version: string;
+ name: string;
+ minzoom: number;
+ maxzoom: number;
+ tiles: string[];
+ bounds: number[];
+ center: number[];
+ type: string;
+ layers: unknown[];
+ format?: string;
+ };
+ };
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/basemap/{:basemapid}/tiles/{:z}/{:x}/{:y}": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a basemap tile */
+ get: {
+ parameters: {
+ query?: {
+ /** @description No Description */
+ token?: string;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content?: never;
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/layer/{:layerid}/cot": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ get?: never;
+ put?: never;
+ /** Post CoT data to a given layer */
+ post: {
+ parameters: {
+ query?: {
+ /** @description If logging is enabled for the layer, allow callers to skip logging for a particular CoT payload */
+ logging?: boolean;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @constant */
+ type: "FeatureCollection";
+ uids?: string[];
+ features: {
+ id?: string;
+ /** @constant */
+ type: "Feature";
path?: string;
properties: {
/** @default UNKNOWN */
@@ -2935,219 +2935,40 @@ export interface paths {
remarks: string;
url: string;
}[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- };
- }[];
- };
- memory?: number;
- timeout?: number;
- config?: {
- timezone?: {
- timezone: string;
- };
- };
- alarm_period?: number;
- alarm_evals?: number;
- alarm_points?: number;
- alarm_threshold?: number;
- };
- };
- };
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- id: number;
- status?: string;
- created: string;
- updated: string;
- uuid: string;
- name: string;
- webhooks: boolean;
- cron: string | null;
- description: string;
- enabled: boolean;
- enabled_styles: boolean;
- styles: {
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- queries?: {
- query: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- styles: {
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
};
- }[];
- };
- logging: boolean;
- stale: number;
- task: string;
- connection?: number;
- environment: unknown;
- ephemeral: Record;
- config: {
- timezone?: {
- timezone: string;
};
+ }[];
+ };
+ memory?: number;
+ timeout?: number;
+ config?: {
+ timezone?: {
+ timezone: string;
};
- memory: number;
- timeout: number;
- data: number | null;
- schema: unknown;
- priority: "high" | "low" | "off";
- alarm_period: number;
- alarm_evals: number;
- alarm_points: number;
- alarm_threshold: number;
};
+ alarm_period?: number;
+ alarm_evals?: number;
+ alarm_points?: number;
+ alarm_threshold?: number;
};
};
};
- };
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/layer/{:layerid}": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get a layer */
- get: {
- parameters: {
- query: {
- /** @description Get Live Alarm state from CloudWatch */
- alarms: boolean;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -3280,209 +3101,53 @@ export interface paths {
logging: boolean;
stale: number;
task: string;
- connection?: number;
- environment: unknown;
- ephemeral: Record;
- config: {
- timezone?: {
- timezone: string;
- };
- };
- memory: number;
- timeout: number;
- data: number | null;
- schema: unknown;
- priority: "high" | "low" | "off";
- alarm_period: number;
- alarm_evals: number;
- alarm_points: number;
- alarm_threshold: number;
- };
- };
- };
- };
- };
- put?: never;
- post?: never;
- /** Delete a layer */
- delete: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: number;
- message: string;
- };
- };
- };
- };
- };
- options?: never;
- head?: never;
- /** Update a layer */
- patch: {
- parameters: {
- query: {
- /** @description Get Live Alarm state from CloudWatch */
- alarms: boolean;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name?: string;
- priority?: "high" | "low" | "off";
- /** @description Human readable description */
- description?: string;
- webhooks?: boolean;
- cron?: string | null;
- memory?: number;
- timeout?: number;
- enabled?: boolean;
- enabled_styles?: boolean;
- task?: string;
- styles?: {
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- queries?: {
- query: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- styles: {
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
+ connection?: number;
+ environment: unknown;
+ ephemeral: Record;
+ config: {
+ timezone?: {
+ timezone: string;
};
- }[];
- };
- logging?: boolean;
- stale?: number;
- data?: null | number;
- environment?: unknown;
- config?: {
- timezone?: {
- timezone: string;
};
+ memory: number;
+ timeout: number;
+ data: number | null;
+ schema: unknown;
+ priority: "high" | "low" | "off";
+ alarm_period: number;
+ alarm_evals: number;
+ alarm_points: number;
+ alarm_threshold: number;
};
- schema?: unknown;
- alarm_period?: number;
- alarm_evals?: number;
- alarm_points?: number;
- alarm_threshold?: number;
};
};
};
+ };
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/connection/{:connectionid}/layer/{:layerid}": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get a layer */
+ get: {
+ parameters: {
+ query: {
+ /** @description Get Live Alarm state from CloudWatch */
+ alarms: boolean;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -3637,19 +3302,10 @@ export interface paths {
};
};
};
- trace?: never;
- };
- "/connection/{:connectionid}/layer/{:layerid}/redeploy": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- get?: never;
put?: never;
- /** Redeploy a specific Layer with latest CloudFormation output */
- post: {
+ post?: never;
+ /** Delete a layer */
+ delete: {
parameters: {
query?: never;
header?: never;
@@ -3672,71 +3328,15 @@ export interface paths {
};
};
};
- delete?: never;
options?: never;
head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/sink": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** List Sinks */
- get: {
+ /** Update a layer */
+ patch: {
parameters: {
query: {
- /** @description Limit the number of responses returned */
- limit: number;
- /** @description Iterate through "pages" of items based on the "limit" query param */
- page: number;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
- /** @description No Description */
- sort?: "id" | "created" | "updated" | "name" | "enabled" | "connection" | "type" | "body" | "logging" | "enableRLS";
- /** @description Filter results by a human readable name field */
- filter: string;
- /** @description No Description */
- enabled?: boolean;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- total: number;
- items: {
- id: number;
- created: string;
- updated: string;
- name: string;
- enabled: boolean;
- connection: number;
- type: string;
- body: unknown;
- logging: boolean;
- }[];
- };
- };
+ /** @description Get Live Alarm state from CloudWatch */
+ alarms: boolean;
};
- };
- };
- put?: never;
- /** Register a new connection sink */
- post: {
- parameters: {
- query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -3745,131 +3345,141 @@ export interface paths {
content: {
"application/json": {
/** @description Human readable name */
- name: string;
- type: string;
- logging: boolean;
- enabled: boolean;
- body: {
- points?: string;
- lines?: string;
- polys?: string;
- url: string;
- username?: string;
- password?: string;
- };
- };
- };
- };
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- enabled: boolean;
- connection: number;
- type: string;
- body: unknown;
- logging: boolean;
- };
- };
- };
- };
- };
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/sink/{:sinkid}": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get a connection sink */
- get: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- enabled: boolean;
- connection: number;
- type: string;
- body: unknown;
- logging: boolean;
- };
- };
- };
- };
- };
- put?: never;
- post?: never;
- /** Delete a connection sink */
- delete: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: number;
- message: string;
+ name?: string;
+ priority?: "high" | "low" | "off";
+ /** @description Human readable description */
+ description?: string;
+ webhooks?: boolean;
+ cron?: string | null;
+ memory?: number;
+ timeout?: number;
+ enabled?: boolean;
+ enabled_styles?: boolean;
+ task?: string;
+ styles?: {
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ queries?: {
+ query: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ styles: {
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ };
+ }[];
};
- };
- };
- };
- };
- options?: never;
- head?: never;
- /** Update a connection sink */
- patch: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name?: string;
- type?: string;
logging?: boolean;
- enabled?: boolean;
+ stale?: number;
+ data?: null | number;
+ environment?: unknown;
+ config?: {
+ timezone?: {
+ timezone: string;
+ };
+ };
+ schema?: unknown;
+ alarm_period?: number;
+ alarm_evals?: number;
+ alarm_points?: number;
+ alarm_threshold?: number;
};
};
};
@@ -3882,14 +3492,146 @@ export interface paths {
content: {
"application/json": {
id: number;
+ status?: string;
created: string;
updated: string;
+ uuid: string;
name: string;
+ webhooks: boolean;
+ cron: string | null;
+ description: string;
enabled: boolean;
- connection: number;
- type: string;
- body: unknown;
+ enabled_styles: boolean;
+ styles: {
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ queries?: {
+ query: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ styles: {
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ };
+ }[];
+ };
logging: boolean;
+ stale: number;
+ task: string;
+ connection?: number;
+ environment: unknown;
+ ephemeral: Record;
+ config: {
+ timezone?: {
+ timezone: string;
+ };
+ };
+ memory: number;
+ timeout: number;
+ data: number | null;
+ schema: unknown;
+ priority: "high" | "low" | "off";
+ alarm_period: number;
+ alarm_evals: number;
+ alarm_points: number;
+ alarm_threshold: number;
};
};
};
@@ -3897,15 +3639,17 @@ export interface paths {
};
trace?: never;
};
- "/connection/{:connectionid}/sink/{:sinkid}/stats": {
+ "/connection/{:connectionid}/layer/{:layerid}/redeploy": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Return Sink Success/Failure Stats */
- get: {
+ get?: never;
+ put?: never;
+ /** Redeploy a specific Layer with latest CloudFormation output */
+ post: {
parameters: {
query?: never;
header?: never;
@@ -3921,35 +3665,43 @@ export interface paths {
};
content: {
"application/json": {
- stats: {
- label: string;
- success: number;
- failure: number;
- }[];
+ status: number;
+ message: string;
};
};
};
};
};
- put?: never;
- post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/connection/{:connectionid}/layer/{:layerid}/task": {
+ "/connection/{:connectionid}/sink": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get the status of a task stack in relation to a given layer */
+ /** List Sinks */
get: {
parameters: {
- query?: never;
+ query: {
+ /** @description Limit the number of responses returned */
+ limit: number;
+ /** @description Iterate through "pages" of items based on the "limit" query param */
+ page: number;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
+ /** @description No Description */
+ sort?: "id" | "created" | "updated" | "name" | "enabled" | "connection" | "type" | "body" | "logging" | "enableRLS";
+ /** @description Filter results by a human readable name field */
+ filter: string;
+ /** @description No Description */
+ enabled?: boolean;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -3963,14 +3715,25 @@ export interface paths {
};
content: {
"application/json": {
- status: string;
+ total: number;
+ items: {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ enabled: boolean;
+ connection: number;
+ type: string;
+ body: unknown;
+ logging: boolean;
+ }[];
};
};
};
};
};
put?: never;
- /** Deploy a task stack */
+ /** Register a new connection sink */
post: {
parameters: {
query?: never;
@@ -3978,30 +3741,25 @@ export interface paths {
path?: never;
cookie?: never;
};
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- status: string;
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name: string;
+ type: string;
+ logging: boolean;
+ enabled: boolean;
+ body: {
+ points?: string;
+ lines?: string;
+ polys?: string;
+ url: string;
+ username?: string;
+ password?: string;
};
};
};
};
- };
- /** If a stack is currently updating, cancel the stack update */
- delete: {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -4010,29 +3768,35 @@ export interface paths {
};
content: {
"application/json": {
- status: number;
- message: string;
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ enabled: boolean;
+ connection: number;
+ type: string;
+ body: unknown;
+ logging: boolean;
};
};
};
};
};
+ delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/connection/{:connectionid}/layer/{:layerid}/task/invoke": {
+ "/connection/{:connectionid}/sink/{:sinkid}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- get?: never;
- put?: never;
- /** Manually invoke a Task */
- post: {
+ /** Get a connection sink */
+ get: {
parameters: {
query?: never;
header?: never;
@@ -4048,28 +3812,24 @@ export interface paths {
};
content: {
"application/json": {
- status: number;
- message: string;
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ enabled: boolean;
+ connection: number;
+ type: string;
+ body: unknown;
+ logging: boolean;
};
};
};
};
};
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/layer/{:layerid}/task/logs": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get the logs related to the given task */
- get: {
+ put?: never;
+ post?: never;
+ /** Delete a connection sink */
+ delete: {
parameters: {
query?: never;
header?: never;
@@ -4085,42 +3845,34 @@ export interface paths {
};
content: {
"application/json": {
- logs: {
- message: string;
- timestamp: number;
- }[];
+ status: number;
+ message: string;
};
};
};
};
};
- put?: never;
- post?: never;
- delete?: never;
options?: never;
head?: never;
- patch?: never;
- trace?: never;
- };
- "/connection/{:connectionid}/layer/{:layerid}/task/schema": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Get the JSONSchema for the expected environment variables */
- get: {
+ /** Update a connection sink */
+ patch: {
parameters: {
- query: {
- /** @description No Description */
- type: "schema:output" | "schema:input";
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody?: never;
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name?: string;
+ type?: string;
+ logging?: boolean;
+ enabled?: boolean;
+ };
+ };
+ };
responses: {
/** @description Successful Response */
200: {
@@ -4129,85 +3881,38 @@ export interface paths {
};
content: {
"application/json": {
- schema: unknown;
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ enabled: boolean;
+ connection: number;
+ type: string;
+ body: unknown;
+ logging: boolean;
};
};
};
};
};
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
trace?: never;
};
- "/connection/{:connectionid}/token": {
+ "/connection/{:connectionid}/sink/{:sinkid}/stats": {
parameters: {
query?: never;
header?: never;
path?: never;
- cookie?: never;
- };
- /** List all tokens associated with a given connection */
- get: {
- parameters: {
- query: {
- /** @description Limit the number of responses returned */
- limit: number;
- /** @description Iterate through "pages" of items based on the "limit" query param */
- page: number;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
- /** @description No Description */
- sort?: "id" | "connection" | "name" | "token" | "created" | "updated" | "enableRLS";
- /** @description Filter results by a human readable name field */
- filter: string;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- total: number;
- items: {
- id: number;
- connection: number;
- name: string;
- created: string;
- updated: string;
- }[];
- };
- };
- };
- };
- };
- put?: never;
- /** Create a new API token for programatic access */
- post: {
+ cookie?: never;
+ };
+ /** Return Sink Success/Failure Stats */
+ get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name: string;
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -4216,35 +3921,33 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- connection: number;
- name: string;
- token: string;
- created: string;
- updated: string;
+ stats: {
+ label: string;
+ success: number;
+ failure: number;
+ }[];
};
};
};
};
};
+ put?: never;
+ post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/connection/{:connectionid}/token/{:id}": {
+ "/connection/{:connectionid}/layer/{:layerid}/task": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- get?: never;
- put?: never;
- post?: never;
- /** Delete a user's API Token */
- delete: {
+ /** Get the status of a task stack in relation to a given layer */
+ get: {
parameters: {
query?: never;
header?: never;
@@ -4260,31 +3963,45 @@ export interface paths {
};
content: {
"application/json": {
- status: number;
- message: string;
+ status: string;
};
};
};
};
};
- options?: never;
- head?: never;
- /** Update properties of a Token */
- patch: {
+ put?: never;
+ /** Deploy a task stack */
+ post: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name?: string;
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ status: string;
+ };
};
};
};
+ };
+ /** If a stack is currently updating, cancel the stack update */
+ delete: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -4300,30 +4017,24 @@ export interface paths {
};
};
};
+ options?: never;
+ head?: never;
+ patch?: never;
trace?: never;
};
- "/connection": {
+ "/connection/{:connectionid}/layer/{:layerid}/task/invoke": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** List Connections */
- get: {
+ get?: never;
+ put?: never;
+ /** Manually invoke a Task */
+ post: {
parameters: {
- query: {
- /** @description Limit the number of responses returned */
- limit: number;
- /** @description Iterate through "pages" of items based on the "limit" query param */
- page: number;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
- /** @description No Description */
- sort?: "id" | "agency" | "created" | "updated" | "name" | "description" | "enabled" | "auth" | "enableRLS";
- /** @description Filter results by a human readable name field */
- filter: string;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4337,61 +4048,35 @@ export interface paths {
};
content: {
"application/json": {
- total: number;
- status: {
- /** @description The connection is not currently connected to a TAK server */
- dead: number;
- /** @description The connection is currently connected to a TAK server */
- live: number;
- /** @description The status of the connection could not be determined */
- unknown: number;
- };
- items: {
- id: number;
- status: string;
- agency?: number | null;
- certificate: {
- subject: string;
- validFrom: string;
- validTo: string;
- };
- created: string;
- updated: string;
- name: string;
- description: string;
- enabled: boolean;
- }[];
+ status: number;
+ message: string;
};
};
};
};
};
- put?: never;
- /** Register a new connection */
- post: {
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/connection/{:connectionid}/layer/{:layerid}/task/logs": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Get the logs related to the given task */
+ get: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name: string;
- /** @description Human readable description */
- description: string;
- /** @default true */
- enabled?: boolean;
- agency: null | number;
- auth: {
- key: string;
- cert: string;
- };
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -4400,41 +4085,37 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- status: string;
- agency?: number | null;
- certificate: {
- subject: string;
- validFrom: string;
- validTo: string;
- };
- created: string;
- updated: string;
- name: string;
- description: string;
- enabled: boolean;
+ logs: {
+ message: string;
+ timestamp: number;
+ }[];
};
};
};
};
};
+ put?: never;
+ post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/connection/{:connectionid}": {
+ "/connection/{:connectionid}/layer/{:layerid}/task/schema": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get a connection */
+ /** Get the JSONSchema for the expected environment variables */
get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ type: "schema:output" | "schema:input";
+ };
header?: never;
path?: never;
cookie?: never;
@@ -4448,19 +4129,7 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- status: string;
- agency?: number | null;
- certificate: {
- subject: string;
- validFrom: string;
- validTo: string;
- };
- created: string;
- updated: string;
- name: string;
- description: string;
- enabled: boolean;
+ schema: unknown;
};
};
};
@@ -4468,10 +4137,34 @@ export interface paths {
};
put?: never;
post?: never;
- /** Delete a connection */
- delete: {
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/connection/{:connectionid}/token": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** List all tokens associated with a given connection */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description Limit the number of responses returned */
+ limit: number;
+ /** @description Iterate through "pages" of items based on the "limit" query param */
+ page: number;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
+ /** @description No Description */
+ sort?: "id" | "connection" | "name" | "token" | "created" | "updated" | "enableRLS";
+ /** @description Filter results by a human readable name field */
+ filter: string;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -4485,17 +4178,22 @@ export interface paths {
};
content: {
"application/json": {
- status: number;
- message: string;
+ total: number;
+ items: {
+ id: number;
+ connection: number;
+ name: string;
+ created: string;
+ updated: string;
+ }[];
};
};
};
};
};
- options?: never;
- head?: never;
- /** Update a connection */
- patch: {
+ put?: never;
+ /** Create a new API token for programatic access */
+ post: {
parameters: {
query?: never;
header?: never;
@@ -4506,15 +4204,7 @@ export interface paths {
content: {
"application/json": {
/** @description Human readable name */
- name?: string;
- /** @description Human readable description */
- description?: string;
- enabled?: boolean;
- agency: null | number;
- auth?: {
- key: string;
- cert: string;
- };
+ name: string;
};
};
};
@@ -4527,26 +4217,23 @@ export interface paths {
content: {
"application/json": {
id: number;
- status: string;
- agency?: number | null;
- certificate: {
- subject: string;
- validFrom: string;
- validTo: string;
- };
+ connection: number;
+ name: string;
+ token: string;
created: string;
updated: string;
- name: string;
- description: string;
- enabled: boolean;
};
};
};
};
};
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
trace?: never;
};
- "/connection/{:connectionid}/refresh": {
+ "/connection/{:connectionid}/token/{:id}": {
parameters: {
query?: never;
header?: never;
@@ -4555,8 +4242,9 @@ export interface paths {
};
get?: never;
put?: never;
- /** Refresh a connection */
- post: {
+ post?: never;
+ /** Delete a user's API Token */
+ delete: {
parameters: {
query?: never;
header?: never;
@@ -4572,41 +4260,70 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- status: string;
- agency?: number | null;
- certificate: {
- subject: string;
- validFrom: string;
- validTo: string;
- };
- created: string;
- updated: string;
- name: string;
- description: string;
- enabled: boolean;
+ status: number;
+ message: string;
};
};
};
};
};
- delete?: never;
options?: never;
head?: never;
- patch?: never;
+ /** Update properties of a Token */
+ patch: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name?: string;
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ status: number;
+ message: string;
+ };
+ };
+ };
+ };
+ };
trace?: never;
};
- "/connection/{:connectionid}/stats": {
+ "/connection": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Return Conn Success/Failure Stats */
+ /** List Connections */
get: {
parameters: {
- query?: never;
+ query: {
+ /** @description Limit the number of responses returned */
+ limit: number;
+ /** @description Iterate through "pages" of items based on the "limit" query param */
+ page: number;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
+ /** @description No Description */
+ sort?: "id" | "agency" | "created" | "updated" | "name" | "description" | "enabled" | "auth" | "enableRLS";
+ /** @description Filter results by a human readable name field */
+ filter: string;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -4620,9 +4337,29 @@ export interface paths {
};
content: {
"application/json": {
- stats: {
- label: string;
- success: number;
+ total: number;
+ status: {
+ /** @description The connection is not currently connected to a TAK server */
+ dead: number;
+ /** @description The connection is currently connected to a TAK server */
+ live: number;
+ /** @description The status of the connection could not be determined */
+ unknown: number;
+ };
+ items: {
+ id: number;
+ status: string;
+ agency?: number | null;
+ certificate: {
+ subject: string;
+ validFrom: string;
+ validTo: string;
+ };
+ created: string;
+ updated: string;
+ name: string;
+ description: string;
+ enabled: boolean;
}[];
};
};
@@ -4630,28 +4367,7 @@ export interface paths {
};
};
put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/esri": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- get?: never;
- put?: never;
- /**
- * Helper API to configure ESRI MapServer Layers
- *
- * The URL can either be an ESRI Portal URL or a Server URL that doesn't require auth
- * or supports token generation
- * */
+ /** Register a new connection */
post: {
parameters: {
query?: never;
@@ -4662,10 +4378,17 @@ export interface paths {
requestBody: {
content: {
"application/json": {
- url: string;
- username?: string;
- password?: string;
- sinkid?: number;
+ /** @description Human readable name */
+ name: string;
+ /** @description Human readable description */
+ description: string;
+ /** @default true */
+ enabled?: boolean;
+ agency: null | number;
+ auth: {
+ key: string;
+ cert: string;
+ };
};
};
};
@@ -4677,13 +4400,19 @@ export interface paths {
};
content: {
"application/json": {
- type: "AGOL" | "PORTAL" | "SERVER";
- base: string;
- auth?: {
- token: string;
- referer: string;
- expires: number;
+ id: number;
+ status: string;
+ agency?: number | null;
+ certificate: {
+ subject: string;
+ validFrom: string;
+ validTo: string;
};
+ created: string;
+ updated: string;
+ name: string;
+ description: string;
+ enabled: boolean;
};
};
};
@@ -4695,27 +4424,17 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/esri/portal": {
+ "/connection/{:connectionid}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /**
- * Helper API to configure ESRI MapServers
- * Return Portal Data
- * */
+ /** Get a connection */
get: {
parameters: {
- query: {
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token?: string;
- /** @description No Description */
- expires?: number;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4728,42 +4447,31 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": unknown;
+ "application/json": {
+ id: number;
+ status: string;
+ agency?: number | null;
+ certificate: {
+ subject: string;
+ validFrom: string;
+ validTo: string;
+ };
+ created: string;
+ updated: string;
+ name: string;
+ description: string;
+ enabled: boolean;
+ };
};
};
};
};
put?: never;
post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/esri/portal/content": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /**
- * Helper API to configure ESRI MapServers
- * Return Portal Content
- * */
- get: {
+ /** Delete a connection */
+ delete: {
parameters: {
- query: {
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token?: string;
- /** @description No Description */
- expires?: number;
- /** @description No Description */
- title?: string;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4776,39 +4484,20 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": unknown;
- };
- };
- };
- };
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/esri/portal/service": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
+ "application/json": {
+ status: number;
+ message: string;
+ };
+ };
+ };
+ };
};
- get?: never;
- put?: never;
- /** Create Service to store Feature Layers */
- post: {
+ options?: never;
+ head?: never;
+ /** Update a connection */
+ patch: {
parameters: {
- query: {
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token: string;
- /** @description No Description */
- expires: number;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4816,7 +4505,16 @@ export interface paths {
requestBody: {
content: {
"application/json": {
- name: string;
+ /** @description Human readable name */
+ name?: string;
+ /** @description Human readable description */
+ description?: string;
+ enabled?: boolean;
+ agency: null | number;
+ auth?: {
+ key: string;
+ cert: string;
+ };
};
};
};
@@ -4827,38 +4525,40 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": unknown;
+ "application/json": {
+ id: number;
+ status: string;
+ agency?: number | null;
+ certificate: {
+ subject: string;
+ validFrom: string;
+ validTo: string;
+ };
+ created: string;
+ updated: string;
+ name: string;
+ description: string;
+ enabled: boolean;
+ };
};
};
};
};
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
trace?: never;
};
- "/esri/portal/server": {
+ "/connection/{:connectionid}/refresh": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /**
- * Helper API to configure ESRI MapServers
- * List Servers associates with a given portal
- * */
- get: {
+ get?: never;
+ put?: never;
+ /** Refresh a connection */
+ post: {
parameters: {
- query: {
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token: string;
- /** @description No Description */
- expires: number;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4872,38 +4572,41 @@ export interface paths {
};
content: {
"application/json": {
- servers: unknown[];
+ id: number;
+ status: string;
+ agency?: number | null;
+ certificate: {
+ subject: string;
+ validFrom: string;
+ validTo: string;
+ };
+ created: string;
+ updated: string;
+ name: string;
+ description: string;
+ enabled: boolean;
};
};
};
};
};
- put?: never;
- post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/esri/server": {
+ "/connection/{:connectionid}/stats": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Helper API to configure ESRI MapServers - Get Services */
+ /** Return Conn Success/Failure Stats */
get: {
parameters: {
- query: {
- /** @description No Description */
- server: string;
- /** @description No Description */
- token?: string;
- /** @description No Description */
- expires?: number;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -4916,7 +4619,12 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": unknown;
+ "application/json": {
+ stats: {
+ label: string;
+ success: number;
+ }[];
+ };
};
};
};
@@ -4929,92 +4637,38 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/esri/server/layer": {
+ "/esri": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Return Sample features and count */
- get: {
- parameters: {
- query: {
- /** @description No Description */
- layer: string;
- /** @description No Description */
- query: string;
- /** @description No Description */
- token?: string;
- /** @description No Description */
- expires?: number;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": unknown;
- };
- };
- };
- };
+ get?: never;
put?: never;
- /** Create Layer necessary to push CoT data */
+ /**
+ * Helper API to configure ESRI MapServer Layers
+ *
+ * The URL can either be an ESRI Portal URL or a Server URL that doesn't require auth
+ * or supports token generation
+ * */
post: {
parameters: {
- query: {
- /** @description No Description */
- server: string;
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token: string;
- /** @description No Description */
- expires: number;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
};
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": unknown;
+ requestBody: {
+ content: {
+ "application/json": {
+ url: string;
+ username?: string;
+ password?: string;
+ sinkid?: number;
};
};
};
- };
- /** Delete an ESRI Layer */
- delete: {
- parameters: {
- query: {
- /** @description No Description */
- server: string;
- /** @description No Description */
- portal: string;
- /** @description No Description */
- token: string;
- /** @description No Description */
- expires: number;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -5022,79 +4676,46 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": unknown;
+ "application/json": {
+ type: "AGOL" | "PORTAL" | "SERVER";
+ base: string;
+ auth?: {
+ token: string;
+ referer: string;
+ expires: number;
+ };
+ };
};
};
};
};
+ delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/import": {
+ "/esri/portal": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** List Imports */
+ /**
+ * Helper API to configure ESRI MapServers
+ * Return Portal Data
+ * */
get: {
parameters: {
query: {
- /** @description Limit the number of responses returned */
- limit: number;
- /** @description Iterate through "pages" of items based on the "limit" query param */
- page: number;
- /** @description Filter results by a human readable name field */
- filter: string;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
/** @description No Description */
- sort?: "id" | "created" | "updated" | "name" | "status" | "error" | "batch" | "result" | "username" | "mode" | "mode_id" | "config" | "enableRLS";
+ portal: string;
/** @description No Description */
- mode?: "Unknown" | "Mission" | "Package";
+ token?: string;
/** @description No Description */
- mode_id?: string;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content: {
- "application/json": {
- total: number;
- items: {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
- }[];
- };
- };
+ expires?: number;
};
- };
- };
- /** Import up to 5 unknown assets into the imports manager at a time */
- put: {
- parameters: {
- query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -5107,36 +4728,47 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- imports: {
- file: string;
- uid: string;
- ext: string;
- }[];
- };
+ "application/json": unknown;
};
};
};
};
- /** Import an unknown asset into the imports manager */
- post: {
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/esri/portal/content": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /**
+ * Helper API to configure ESRI MapServers
+ * Return Portal Content
+ * */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ portal: string;
+ /** @description No Description */
+ token?: string;
+ /** @description No Description */
+ expires?: number;
+ /** @description No Description */
+ title?: string;
+ };
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- /** @description Human readable name */
- name: string;
- mode?: "Unknown" | "Mission" | "Package";
- mode_id?: string;
- config?: unknown;
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -5144,46 +4776,50 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
- };
+ "application/json": unknown;
};
};
};
};
+ put?: never;
+ post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/import/{:import}": {
+ "/esri/portal/service": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get Import */
- get: {
+ get?: never;
+ put?: never;
+ /** Create Service to store Feature Layers */
+ post: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ portal: string;
+ /** @description No Description */
+ token: string;
+ /** @description No Description */
+ expires: number;
+ };
header?: never;
path?: never;
cookie?: never;
};
- requestBody?: never;
+ requestBody: {
+ content: {
+ "application/json": {
+ name: string;
+ };
+ };
+ };
responses: {
/** @description Successful Response */
200: {
@@ -5191,28 +4827,38 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
- };
+ "application/json": unknown;
};
};
};
};
- /** Import an asset into a previously configured import container */
- put: {
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/esri/portal/server": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /**
+ * Helper API to configure ESRI MapServers
+ * List Servers associates with a given portal
+ * */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ portal: string;
+ /** @description No Description */
+ token: string;
+ /** @description No Description */
+ expires: number;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -5226,28 +4872,38 @@ export interface paths {
};
content: {
"application/json": {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
+ servers: unknown[];
};
};
};
};
};
+ put?: never;
post?: never;
- /** Delete Import */
- delete: {
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/esri/server": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Helper API to configure ESRI MapServers - Get Services */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ server: string;
+ /** @description No Description */
+ token?: string;
+ /** @description No Description */
+ expires?: number;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -5260,33 +4916,44 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- status: number;
- message: string;
- };
+ "application/json": unknown;
};
};
};
};
+ put?: never;
+ post?: never;
+ delete?: never;
options?: never;
head?: never;
- /** Update Import */
- patch: {
+ patch?: never;
+ trace?: never;
+ };
+ "/esri/server/layer": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Return Sample features and count */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ layer: string;
+ /** @description No Description */
+ query: string;
+ /** @description No Description */
+ token?: string;
+ /** @description No Description */
+ expires?: number;
+ };
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- status?: string;
- error?: string;
- result?: unknown;
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -5294,37 +4961,25 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
- };
- };
- };
- };
- };
- trace?: never;
- };
- "/import/{:import}/batch": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
+ "application/json": unknown;
+ };
+ };
+ };
};
- /** List Import Batch Job Logs */
- get: {
+ put?: never;
+ /** Create Layer necessary to push CoT data */
+ post: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ server: string;
+ /** @description No Description */
+ portal: string;
+ /** @description No Description */
+ token: string;
+ /** @description No Description */
+ expires: number;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -5337,21 +4992,24 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- logs: {
- message: string;
- timestamp: number;
- }[];
- };
+ "application/json": unknown;
};
};
};
};
- put?: never;
- /** Attach a Batch Job to an instance */
- post: {
+ /** Delete an ESRI Layer */
+ delete: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ server: string;
+ /** @description No Description */
+ portal: string;
+ /** @description No Description */
+ token: string;
+ /** @description No Description */
+ expires: number;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -5364,38 +5022,24 @@ export interface paths {
[name: string]: unknown;
};
content: {
- "application/json": {
- id: string;
- created: string;
- updated: string;
- name: string;
- status: string;
- error: string | null;
- batch: string | null;
- result: unknown;
- username: string;
- mode: string;
- mode_id: string | null;
- config: unknown;
- };
+ "application/json": unknown;
};
};
};
};
- delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/layer": {
+ "/import": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Allow admins to list all layers on the server */
+ /** List Imports */
get: {
parameters: {
query: {
@@ -5403,18 +5047,16 @@ export interface paths {
limit: number;
/** @description Iterate through "pages" of items based on the "limit" query param */
page: number;
- /** @description Order in which results are returned based on the "sort" query param */
- order: "asc" | "desc";
- /** @description No Description */
- sort?: "id" | "uuid" | "created" | "updated" | "name" | "priority" | "cron" | "webhooks" | "alarm_period" | "alarm_evals" | "alarm_points" | "alarm_threshold" | "description" | "enabled" | "enabled_styles" | "styles" | "logging" | "stale" | "task" | "connection" | "environment" | "ephemeral" | "config" | "memory" | "timeout" | "data" | "schema" | "enableRLS";
/** @description Filter results by a human readable name field */
filter: string;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
/** @description No Description */
- task?: string;
+ sort?: "id" | "created" | "updated" | "name" | "status" | "error" | "batch" | "result" | "username" | "mode" | "mode_id" | "config" | "enableRLS";
/** @description No Description */
- data?: number;
+ mode?: "Unknown" | "Mission" | "Package";
/** @description No Description */
- connection?: number;
+ mode_id?: string;
};
header?: never;
path?: never;
@@ -5430,180 +5072,110 @@ export interface paths {
content: {
"application/json": {
total: number;
- tasks: string[];
- status: {
- healthy: number;
- alarm: number;
- unknown: number;
- };
items: {
- id: number;
- status?: string;
+ id: string;
created: string;
updated: string;
- uuid: string;
name: string;
- webhooks: boolean;
- cron: string | null;
- description: string;
- enabled: boolean;
- enabled_styles: boolean;
- styles: {
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- queries?: {
- query: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- styles: {
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- };
- }[];
- };
- logging: boolean;
- stale: number;
- task: string;
- connection?: number;
- environment: unknown;
- ephemeral: Record;
- config: {
- timezone?: {
- timezone: string;
- };
- };
- memory: number;
- timeout: number;
- data: number | null;
- schema: unknown;
- priority: "high" | "low" | "off";
- alarm_period: number;
- alarm_evals: number;
- alarm_points: number;
- alarm_threshold: number;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ }[];
+ };
+ };
+ };
+ };
+ };
+ /** Import up to 5 unknown assets into the imports manager at a time */
+ put: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ imports: {
+ file: string;
+ uid: string;
+ ext: string;
}[];
};
};
};
};
};
- put?: never;
- post?: never;
+ /** Import an unknown asset into the imports manager */
+ post: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ /** @description Human readable name */
+ name: string;
+ mode?: "Unknown" | "Mission" | "Package";
+ mode_id?: string;
+ config?: unknown;
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: string;
+ created: string;
+ updated: string;
+ name: string;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ };
+ };
+ };
+ };
+ };
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
- "/layer/{:layerid}": {
+ "/import/{:import}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /**
- * Events don't have the Connection ID but they have a valid data token
- * This API allows a layer token to request the layer object and obtain the
- * connection ID for subsequent calls
- * */
+ /** Get Import */
get: {
parameters: {
query?: never;
@@ -5620,154 +5192,196 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- status?: string;
+ id: string;
created: string;
updated: string;
- uuid: string;
name: string;
- webhooks: boolean;
- cron: string | null;
- description: string;
- enabled: boolean;
- enabled_styles: boolean;
- styles: {
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- queries?: {
- query: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- styles: {
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- line?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- point?: {
- "marker-color"?: string;
- "marker-opacity"?: string;
- id?: string;
- type?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- icon?: string;
- };
- polygon?: {
- stroke?: string;
- "stroke-style"?: string;
- "stroke-opacity"?: string;
- "stroke-width"?: string;
- fill?: string;
- "fill-opacity"?: string;
- id?: string;
- remarks?: string;
- callsign?: string;
- links?: {
- remarks: string;
- url: string;
- }[];
- };
- };
- }[];
- };
- logging: boolean;
- stale: number;
- task: string;
- connection?: number;
- environment: unknown;
- ephemeral: Record;
- config: {
- timezone?: {
- timezone: string;
- };
- };
- memory: number;
- timeout: number;
- data: number | null;
- schema: unknown;
- priority: "high" | "low" | "off";
- alarm_period: number;
- alarm_evals: number;
- alarm_points: number;
- alarm_threshold: number;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ };
+ };
+ };
+ };
+ };
+ /** Import an asset into a previously configured import container */
+ put: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: string;
+ created: string;
+ updated: string;
+ name: string;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ };
+ };
+ };
+ };
+ };
+ post?: never;
+ /** Delete Import */
+ delete: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ status: number;
+ message: string;
+ };
+ };
+ };
+ };
+ };
+ options?: never;
+ head?: never;
+ /** Update Import */
+ patch: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ status?: string;
+ error?: string;
+ result?: unknown;
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: string;
+ created: string;
+ updated: string;
+ name: string;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ };
+ };
+ };
+ };
+ };
+ trace?: never;
+ };
+ "/import/{:import}/batch": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** List Import Batch Job Logs */
+ get: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ logs: {
+ message: string;
+ timestamp: number;
+ }[];
};
};
};
};
};
put?: never;
- post?: never;
+ /** Attach a Batch Job to an instance */
+ post: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: string;
+ created: string;
+ updated: string;
+ name: string;
+ status: string;
+ error: string | null;
+ batch: string | null;
+ result: unknown;
+ username: string;
+ mode: string;
+ mode_id: string | null;
+ config: unknown;
+ };
+ };
+ };
+ };
+ };
delete?: never;
options?: never;
head?: never;
@@ -6134,17 +5748,171 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/iconset/{:iconset}/icon/{:icon}": {
+ "/iconset/{:iconset}/icon/{:icon}": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Icon Metadata */
+ get: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ iconset: string;
+ type2525b: string | null;
+ data: string;
+ data_alt: string | null;
+ path: string;
+ };
+ };
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ /** Remove Icon from Iconset */
+ delete: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ status: number;
+ message: string;
+ };
+ };
+ };
+ };
+ };
+ options?: never;
+ head?: never;
+ /** Update Icon in Iconset */
+ patch: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": {
+ name?: string;
+ data?: string;
+ data_alt?: string;
+ type2525b?: string | null;
+ };
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ id: number;
+ created: string;
+ updated: string;
+ name: string;
+ iconset: string;
+ type2525b: string | null;
+ data: string;
+ data_alt: string | null;
+ path: string;
+ };
+ };
+ };
+ };
+ };
+ trace?: never;
+ };
+ "/iconset/{:iconset}/icon/{:icon}/raw": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Icon Data */
+ get: {
+ parameters: {
+ query: {
+ /** @description No Description */
+ token?: string;
+ /** @description Use alternate icon if possible */
+ alt: boolean;
+ };
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content?: never;
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/icon/sprite:size?.json": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Icon Metadata */
+ /** Get Spriteset JSON for CoT types */
get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ iconset: string;
+ /** @description No Description */
+ scope?: "server" | "user";
+ /** @description No Description */
+ token?: string;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -6156,28 +5924,36 @@ export interface paths {
headers: {
[name: string]: unknown;
};
- content: {
- "application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- iconset: string;
- type2525b: string | null;
- data: string;
- data_alt: string | null;
- path: string;
- };
- };
+ content?: never;
};
};
};
put?: never;
post?: never;
- /** Remove Icon from Iconset */
- delete: {
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
+ "/icon/sprite:size?.png": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Return a sprite sheet for CoT Types */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description No Description */
+ iconset: string;
+ /** @description No Description */
+ scope?: "server" | "user";
+ /** @description No Description */
+ token?: string;
+ };
header?: never;
path?: never;
cookie?: never;
@@ -6189,35 +5965,51 @@ export interface paths {
headers: {
[name: string]: unknown;
};
- content: {
- "application/json": {
- status: number;
- message: string;
- };
- };
+ content?: never;
};
};
};
+ put?: never;
+ post?: never;
+ delete?: never;
options?: never;
head?: never;
- /** Update Icon in Iconset */
- patch: {
+ patch?: never;
+ trace?: never;
+ };
+ "/layer": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** Allow admins to list all layers on the server */
+ get: {
parameters: {
- query?: never;
+ query: {
+ /** @description Limit the number of responses returned */
+ limit: number;
+ /** @description Iterate through "pages" of items based on the "limit" query param */
+ page: number;
+ /** @description Order in which results are returned based on the "sort" query param */
+ order: "asc" | "desc";
+ /** @description No Description */
+ sort?: "id" | "uuid" | "created" | "updated" | "name" | "priority" | "cron" | "webhooks" | "alarm_period" | "alarm_evals" | "alarm_points" | "alarm_threshold" | "description" | "enabled" | "enabled_styles" | "styles" | "logging" | "stale" | "task" | "connection" | "environment" | "ephemeral" | "config" | "memory" | "timeout" | "data" | "schema" | "enableRLS";
+ /** @description Filter results by a human readable name field */
+ filter: string;
+ /** @description No Description */
+ task?: string;
+ /** @description No Description */
+ data?: number;
+ /** @description No Description */
+ connection?: number;
+ };
header?: never;
path?: never;
cookie?: never;
};
- requestBody: {
- content: {
- "application/json": {
- name?: string;
- data?: string;
- data_alt?: string;
- type2525b?: string | null;
- };
- };
- };
+ requestBody?: never;
responses: {
/** @description Successful Response */
200: {
@@ -6226,53 +6018,161 @@ export interface paths {
};
content: {
"application/json": {
- id: number;
- created: string;
- updated: string;
- name: string;
- iconset: string;
- type2525b: string | null;
- data: string;
- data_alt: string | null;
- path: string;
+ total: number;
+ tasks: string[];
+ status: {
+ healthy: number;
+ alarm: number;
+ unknown: number;
+ };
+ items: {
+ id: number;
+ status?: string;
+ created: string;
+ updated: string;
+ uuid: string;
+ name: string;
+ webhooks: boolean;
+ cron: string | null;
+ description: string;
+ enabled: boolean;
+ enabled_styles: boolean;
+ styles: {
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ queries?: {
+ query: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ styles: {
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ };
+ }[];
+ };
+ logging: boolean;
+ stale: number;
+ task: string;
+ connection?: number;
+ environment: unknown;
+ ephemeral: Record;
+ config: {
+ timezone?: {
+ timezone: string;
+ };
+ };
+ memory: number;
+ timeout: number;
+ data: number | null;
+ schema: unknown;
+ priority: "high" | "low" | "off";
+ alarm_period: number;
+ alarm_evals: number;
+ alarm_points: number;
+ alarm_threshold: number;
+ }[];
};
};
};
};
};
- trace?: never;
- };
- "/iconset/{:iconset}/icon/{:icon}/raw": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Icon Data */
- get: {
- parameters: {
- query: {
- /** @description No Description */
- token?: string;
- /** @description Use alternate icon if possible */
- alt: boolean;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
- };
- content?: never;
- };
- };
- };
put?: never;
post?: never;
delete?: never;
@@ -6281,24 +6181,21 @@ export interface paths {
patch?: never;
trace?: never;
};
- "/icon/sprite:size?.json": {
+ "/layer/{:layerid}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
- /** Get Spriteset JSON for CoT types */
+ /**
+ * Events don't have the Connection ID but they have a valid data token
+ * This API allows a layer token to request the layer object and obtain the
+ * connection ID for subsequent calls
+ * */
get: {
parameters: {
- query: {
- /** @description No Description */
- iconset: string;
- /** @description No Description */
- scope?: "server" | "user";
- /** @description No Description */
- token?: string;
- };
+ query?: never;
header?: never;
path?: never;
cookie?: never;
@@ -6310,48 +6207,151 @@ export interface paths {
headers: {
[name: string]: unknown;
};
- content?: never;
- };
- };
- };
- put?: never;
- post?: never;
- delete?: never;
- options?: never;
- head?: never;
- patch?: never;
- trace?: never;
- };
- "/icon/sprite:size?.png": {
- parameters: {
- query?: never;
- header?: never;
- path?: never;
- cookie?: never;
- };
- /** Return a sprite sheet for CoT Types */
- get: {
- parameters: {
- query: {
- /** @description No Description */
- iconset: string;
- /** @description No Description */
- scope?: "server" | "user";
- /** @description No Description */
- token?: string;
- };
- header?: never;
- path?: never;
- cookie?: never;
- };
- requestBody?: never;
- responses: {
- /** @description Successful Response */
- 200: {
- headers: {
- [name: string]: unknown;
+ content: {
+ "application/json": {
+ id: number;
+ status?: string;
+ created: string;
+ updated: string;
+ uuid: string;
+ name: string;
+ webhooks: boolean;
+ cron: string | null;
+ description: string;
+ enabled: boolean;
+ enabled_styles: boolean;
+ styles: {
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ queries?: {
+ query: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ styles: {
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ line?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ point?: {
+ "marker-color"?: string;
+ "marker-opacity"?: string;
+ id?: string;
+ type?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ icon?: string;
+ };
+ polygon?: {
+ stroke?: string;
+ "stroke-style"?: string;
+ "stroke-opacity"?: string;
+ "stroke-width"?: string;
+ fill?: string;
+ "fill-opacity"?: string;
+ id?: string;
+ remarks?: string;
+ callsign?: string;
+ links?: {
+ remarks: string;
+ url: string;
+ }[];
+ };
+ };
+ }[];
+ };
+ logging: boolean;
+ stale: number;
+ task: string;
+ connection?: number;
+ environment: unknown;
+ ephemeral: Record;
+ config: {
+ timezone?: {
+ timezone: string;
+ };
+ };
+ memory: number;
+ timeout: number;
+ data: number | null;
+ schema: unknown;
+ priority: "high" | "low" | "off";
+ alarm_period: number;
+ alarm_evals: number;
+ alarm_points: number;
+ alarm_threshold: number;
+ };
};
- content?: never;
};
};
};
@@ -7461,7 +7461,7 @@ export interface paths {
details?: {
type: string;
callsign: string;
- color: string;
+ color?: string;
location: {
lat: number;
lon: number;
@@ -7523,7 +7523,7 @@ export interface paths {
details?: {
type: string;
callsign: string;
- color: string;
+ color?: string;
location: {
lat: number;
lon: number;
@@ -7587,7 +7587,7 @@ export interface paths {
details?: {
type: string;
callsign: string;
- color: string;
+ color?: string;
location: {
lat: number;
lon: number;
@@ -12141,6 +12141,8 @@ export interface paths {
get: {
parameters: {
query: {
+ /** @description No Description */
+ impersonate?: boolean | string;
/** @description Limit the number of responses returned */
limit: number;
/** @description Iterate through "pages" of items based on the "limit" query param */
@@ -12175,12 +12177,12 @@ export interface paths {
updated: string;
username: string;
ephemeral: boolean;
- channel: string | null;
+ channel: (null | string) | null;
expiration: string | null;
path: string;
stream_user: string | null;
stream_pass: string | null;
- proxy: string | null;
+ proxy: (null | string) | null;
}[];
};
};
@@ -12216,6 +12218,7 @@ export interface paths {
* @default false
*/
permanent: boolean;
+ channel?: string | null;
path?: string;
stream_user?: string;
stream_pass?: string;
@@ -12238,12 +12241,12 @@ export interface paths {
updated: string;
username: string;
ephemeral: boolean;
- channel: string | null;
+ channel: (null | string) | null;
expiration: string | null;
path: string;
stream_user: string | null;
stream_pass: string | null;
- proxy: string | null;
+ proxy: (null | string) | null;
};
protocols: {
rtmp?: {
@@ -12309,12 +12312,12 @@ export interface paths {
updated: string;
username: string;
ephemeral: boolean;
- channel: string | null;
+ channel: (null | string) | null;
expiration: string | null;
path: string;
stream_user: string | null;
stream_pass: string | null;
- proxy: string | null;
+ proxy: (null | string) | null;
};
protocols: {
rtmp?: {
@@ -12388,6 +12391,7 @@ export interface paths {
* @default 3600
*/
duration: number;
+ channel?: string | null;
/**
* @description System Admins can create non-expiring leases
* @default false
@@ -12411,12 +12415,12 @@ export interface paths {
updated: string;
username: string;
ephemeral: boolean;
- channel: string | null;
+ channel: (null | string) | null;
expiration: string | null;
path: string;
stream_user: string | null;
stream_pass: string | null;
- proxy: string | null;
+ proxy: (null | string) | null;
};
protocols: {
rtmp?: {
diff --git a/api/web/src/main.js b/api/web/src/main.js
index 721b16b74..37a6db63f 100644
--- a/api/web/src/main.js
+++ b/api/web/src/main.js
@@ -291,11 +291,30 @@ const router = new VueRouter.createRouter({
},{
path: 'video',
name: 'admin-videos',
- component: () => import('./components/Admin/AdminVideos.vue')
- },{
- path: 'video/:video',
- name: 'admin-video',
- component: () => import('./components/Admin/AdminVideo.vue')
+ component: () => import('./components/Admin/AdminVideos.vue'),
+ children: [{
+ path: '',
+ name: 'admin-video-default',
+ redirect: () => {
+ return { name: 'admin-video-service' };
+ }
+ },{
+ path: 'service',
+ name: 'admin-video-service',
+ component: () => import('./components/Admin/Videos/AdminVideoService.vue')
+ },{
+ path: 'leases',
+ name: 'admin-video-leases',
+ component: () => import('./components/Admin/Videos/AdminVideoLeases.vue')
+ },{
+ path: 'tasks',
+ name: 'admin-video-tasks',
+ component: () => import('./components/Admin/Videos/AdminVideoTasks.vue')
+ },{
+ path: 'tasks/:task',
+ name: 'admin-video',
+ component: () => import('./components/Admin/Videos/AdminVideoTask.vue')
+ }]
},{
path: 'overlay',
name: 'admin-overlays',
diff --git a/api/web/src/types.ts b/api/web/src/types.ts
index 7516a4962..1ee93697a 100644
--- a/api/web/src/types.ts
+++ b/api/web/src/types.ts
@@ -100,5 +100,9 @@ export type ProfileOverlay_Update = paths["/profile/overlay/{:overlay}"]["patch"
export type ETLConnection = paths["/connection/{:connectionid}"]["get"]["responses"]["200"]["content"]["application/json"]
export type ETLLayer = paths["/connection/{:connectionid}/layer/{:layerid}"]["get"]["responses"]["200"]["content"]["application/json"]
+export type VideoService = paths["/video/service"]["get"]["responses"]["200"]["content"]["application/json"];
+export type VideoServer = paths["/video/server"]["post"]["responses"]["200"]["content"]["application/json"];
+export type VideoServerList = paths["/video/server"]["get"]["responses"]["200"]["content"]["application/json"];
+
export type ETLTaskVersions = paths["/task/raw/{:task}"]["get"]["responses"]["200"]["content"]["application/json"]