From 55990fe2967c56227cef87dd862360d1cfb0e072 Mon Sep 17 00:00:00 2001 From: Bart Riepe Date: Wed, 10 Jul 2024 13:11:59 +0900 Subject: [PATCH] fix: deal with undefined variables passed into query string and update addattachmentonissue to take mime and filename --- .github/workflows/test-and-release.yml | 2 +- .gitignore | 1 + pnpm-lock.yaml | 6437 +++++----- scripts/update-ts-definitions.ts | 37 +- src/generated/openapi-cloud.ts | 3607 ++++-- src/generated/openapi-server.ts | 2 + src/generated/openapi-service-desk.ts | 34 +- src/generated/openapi-software.ts | 14188 +++++++++++++---------- src/jira.test.ts | 21 +- src/jira.ts | 40 +- tsconfig.json | 4 + 11 files changed, 14257 insertions(+), 10116 deletions(-) diff --git a/.github/workflows/test-and-release.yml b/.github/workflows/test-and-release.yml index fccf949..6da1a97 100644 --- a/.github/workflows/test-and-release.yml +++ b/.github/workflows/test-and-release.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: ['16', '18', '20', 'lts/*', 'latest'] + node-version: ['18', '20', '22', 'lts/*', 'latest'] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 diff --git a/.gitignore b/.gitignore index 61373d7..00023f8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ npm-debug.log *.iml tmp-docs-repo +openapi.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd75176..f323c44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,1461 +1,830 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -dependencies: - axios: - specifier: ^1.6.7 - version: 1.6.7 - -devDependencies: - '@biomejs/biome': - specifier: ^1.5.3 - version: 1.5.3 - '@semantic-release/changelog': - specifier: ^6.0.3 - version: 6.0.3(semantic-release@23.0.0) - '@semantic-release/git': - specifier: ^10.0.1 - version: 10.0.1(semantic-release@23.0.0) - '@types/node': - specifier: ^20.11.16 - version: 20.11.16 - api-spec-converter: - specifier: ^2.12.0 - version: 2.12.0 - axios-mock-adapter: - specifier: ^1.22.0 - version: 1.22.0(axios@1.6.7) - husky: - specifier: ^9.0.10 - version: 9.0.10 - lint-staged: - specifier: ^15.2.1 - version: 15.2.1 - openapi-typescript: - specifier: ^6.7.4 - version: 6.7.4 - semantic-release: - specifier: ^23.0.0 - version: 23.0.0(typescript@5.3.3) - tsx: - specifier: ^4.7.0 - version: 4.7.0 - typedoc: - specifier: ^0.25.7 - version: 0.25.7(typescript@5.3.3) - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@20.11.16) +importers: + + .: + dependencies: + axios: + specifier: ^1.6.7 + version: 1.6.7 + devDependencies: + '@biomejs/biome': + specifier: ^1.5.3 + version: 1.5.3 + '@semantic-release/changelog': + specifier: ^6.0.3 + version: 6.0.3(semantic-release@23.0.0) + '@semantic-release/git': + specifier: ^10.0.1 + version: 10.0.1(semantic-release@23.0.0) + '@types/node': + specifier: ^20.11.16 + version: 20.11.16 + api-spec-converter: + specifier: ^2.12.0 + version: 2.12.0 + axios-mock-adapter: + specifier: ^1.22.0 + version: 1.22.0(axios@1.6.7) + husky: + specifier: ^9.0.10 + version: 9.0.10 + lint-staged: + specifier: ^15.2.1 + version: 15.2.1 + openapi-typescript: + specifier: ^6.7.4 + version: 6.7.4 + semantic-release: + specifier: ^23.0.0 + version: 23.0.0(typescript@5.3.3) + tsx: + specifier: ^4.7.0 + version: 4.7.0 + typedoc: + specifier: ^0.25.7 + version: 0.25.7(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + vitest: + specifier: ^1.2.2 + version: 1.2.2(@types/node@20.11.16) packages: - /@babel/code-frame@7.23.5: + '@babel/code-frame@7.23.5': resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - dev: true - /@babel/helper-validator-identifier@7.22.20: + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - dev: true - /@babel/highlight@7.23.4: + '@babel/highlight@7.23.4': resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@biomejs/biome@1.5.3: + '@biomejs/biome@1.5.3': resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==} engines: {node: '>=14.*'} hasBin: true - requiresBuild: true - optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.5.3 - '@biomejs/cli-darwin-x64': 1.5.3 - '@biomejs/cli-linux-arm64': 1.5.3 - '@biomejs/cli-linux-arm64-musl': 1.5.3 - '@biomejs/cli-linux-x64': 1.5.3 - '@biomejs/cli-linux-x64-musl': 1.5.3 - '@biomejs/cli-win32-arm64': 1.5.3 - '@biomejs/cli-win32-x64': 1.5.3 - dev: true - /@biomejs/cli-darwin-arm64@1.5.3: + '@biomejs/cli-darwin-arm64@1.5.3': resolution: {integrity: sha512-ImU7mh1HghEDyqNmxEZBoMPr8SxekkZuYcs+gynKlNW+TALQs7swkERiBLkG9NR0K1B3/2uVzlvYowXrmlW8hw==} engines: {node: '>=14.*'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-darwin-x64@1.5.3: + '@biomejs/cli-darwin-x64@1.5.3': resolution: {integrity: sha512-vCdASqYnlpq/swErH7FD6nrFz0czFtK4k/iLgj0/+VmZVjineFPgevOb+Sr9vz0tk0GfdQO60bSpI74zU8M9Dw==} engines: {node: '>=14.*'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-linux-arm64-musl@1.5.3: + '@biomejs/cli-linux-arm64-musl@1.5.3': resolution: {integrity: sha512-DYuMizUYUBYfS0IHGjDrOP1RGipqWfMGEvNEJ398zdtmCKLXaUvTimiox5dvx4X15mBK5M2m8wgWUgOP1giUpQ==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-linux-arm64@1.5.3: + '@biomejs/cli-linux-arm64@1.5.3': resolution: {integrity: sha512-cupBQv0sNF1OKqBfx7EDWMSsKwRrBUZfjXawT4s6hKV6ALq7p0QzWlxr/sDmbKMLOaLQtw2Qgu/77N9rm+f9Rg==} engines: {node: '>=14.*'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-linux-x64-musl@1.5.3: + '@biomejs/cli-linux-x64-musl@1.5.3': resolution: {integrity: sha512-UUHiAnlDqr2Y/LpvshBFhUYMWkl2/Jn+bi3U6jKuav0qWbbBKU/ByHgR4+NBxpKBYoCtWxhnmatfH1bpPIuZMw==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-linux-x64@1.5.3: + '@biomejs/cli-linux-x64@1.5.3': resolution: {integrity: sha512-YQrSArQvcv4FYsk7Q91Yv4uuu5F8hJyORVcv3zsjCLGkjIjx2RhjYLpTL733SNL7v33GmOlZY0eFR1ko38tuUw==} engines: {node: '>=14.*'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-win32-arm64@1.5.3: + '@biomejs/cli-win32-arm64@1.5.3': resolution: {integrity: sha512-HxatYH7vf/kX9nrD+pDYuV2GI9GV8EFo6cfKkahAecTuZLPxryHx1WEfJthp5eNsE0+09STGkKIKjirP0ufaZA==} engines: {node: '>=14.*'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@biomejs/cli-win32-x64@1.5.3: + '@biomejs/cli-win32-x64@1.5.3': resolution: {integrity: sha512-fMvbSouZEASU7mZH8SIJSANDm5OqsjgtVXlbUqxwed6BP7uuHRSs396Aqwh2+VoW8fwTpp6ybIUoC9FrzB0kyA==} engines: {node: '>=14.*'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@cloudflare/json-schema-walker@0.1.1: + '@cloudflare/json-schema-walker@0.1.1': resolution: {integrity: sha512-P3n0hEgk1m6uKWgL4Yb1owzXVG4pM70G4kRnDQxZXiVvfCRtaqiHu+ZRiRPzmwGBiLTO1LWc2yR1M8oz0YkXww==} - requiresBuild: true - dev: true - optional: true - /@colors/colors@1.5.0: + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - /@esbuild/aix-ppc64@0.19.12: + '@esbuild/aix-ppc64@0.19.12': resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.19.12: + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.19.12: + '@esbuild/android-arm@0.19.12': resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.19.12: + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.19.12: + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.19.12: + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.19.12: + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.19.12: + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.19.12: + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.19.12: + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.19.12: + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.19.12: + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.19.12: + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.19.12: + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.19.12: + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.19.12: + '@esbuild/linux-s390x@0.19.12': resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.19.12: + '@esbuild/linux-x64@0.19.12': resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.19.12: + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.19.12: + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.19.12: + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.19.12: + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.19.12: + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.19.12: + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@fastify/busboy@2.1.0: + '@fastify/busboy@2.1.0': resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} - dev: true - /@jest/schemas@29.6.3: + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jridgewell/sourcemap-codec@1.4.15: + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.0 - dev: true - /@octokit/auth-token@4.0.0: + '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} engines: {node: '>= 18'} - dev: true - /@octokit/core@5.1.0: + '@octokit/core@5.1.0': resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==} engines: {node: '>= 18'} - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.6 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - dev: true - /@octokit/endpoint@9.0.4: + '@octokit/endpoint@9.0.4': resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} engines: {node: '>= 18'} - dependencies: - '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 - dev: true - /@octokit/graphql@7.0.2: + '@octokit/graphql@7.0.2': resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} - dependencies: - '@octokit/request': 8.1.6 - '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 - dev: true - /@octokit/openapi-types@19.1.0: + '@octokit/openapi-types@19.1.0': resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} - dev: true - /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.1.0): + '@octokit/plugin-paginate-rest@9.1.5': resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' - dependencies: - '@octokit/core': 5.1.0 - '@octokit/types': 12.4.0 - dev: true - /@octokit/plugin-retry@6.0.1(@octokit/core@5.1.0): + '@octokit/plugin-retry@6.0.1': resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' - dependencies: - '@octokit/core': 5.1.0 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 - bottleneck: 2.19.5 - dev: true - /@octokit/plugin-throttling@8.1.3(@octokit/core@5.1.0): + '@octokit/plugin-throttling@8.1.3': resolution: {integrity: sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^5.0.0 - dependencies: - '@octokit/core': 5.1.0 - '@octokit/types': 12.4.0 - bottleneck: 2.19.5 - dev: true - /@octokit/request-error@5.0.1: + '@octokit/request-error@5.0.1': resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} - dependencies: - '@octokit/types': 12.4.0 - deprecation: 2.3.1 - once: 1.4.0 - dev: true - /@octokit/request@8.1.6: + '@octokit/request@8.1.6': resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} engines: {node: '>= 18'} - dependencies: - '@octokit/endpoint': 9.0.4 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 - universal-user-agent: 6.0.1 - dev: true - /@octokit/types@12.4.0: + '@octokit/types@12.4.0': resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} - dependencies: - '@octokit/openapi-types': 19.1.0 - dev: true - /@pnpm/config.env-replace@1.1.0: + '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} - dev: true - /@pnpm/network.ca-file@1.0.2: + '@pnpm/network.ca-file@1.0.2': resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - dependencies: - graceful-fs: 4.2.10 - dev: true - /@pnpm/npm-conf@2.2.2: + '@pnpm/npm-conf@2.2.2': resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} engines: {node: '>=12'} - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - dev: true - /@rollup/rollup-android-arm-eabi@4.9.6: + '@rollup/rollup-android-arm-eabi@4.9.6': resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-android-arm64@4.9.6: + '@rollup/rollup-android-arm64@4.9.6': resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-arm64@4.9.6: + '@rollup/rollup-darwin-arm64@4.9.6': resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-darwin-x64@4.9.6: + '@rollup/rollup-darwin-x64@4.9.6': resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + '@rollup/rollup-linux-arm-gnueabihf@4.9.6': resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: + '@rollup/rollup-linux-arm64-gnu@4.9.6': resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: + '@rollup/rollup-linux-arm64-musl@4.9.6': resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: + '@rollup/rollup-linux-riscv64-gnu@4.9.6': resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: + '@rollup/rollup-linux-x64-gnu@4.9.6': resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: + '@rollup/rollup-linux-x64-musl@4.9.6': resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: + '@rollup/rollup-win32-arm64-msvc@4.9.6': resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: + '@rollup/rollup-win32-ia32-msvc@4.9.6': resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: + '@rollup/rollup-win32-x64-msvc@4.9.6': resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@semantic-release/changelog@6.0.3(semantic-release@23.0.0): + '@semantic-release/changelog@6.0.3': resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} engines: {node: '>=14.17'} peerDependencies: semantic-release: '>=18.0.0' - dependencies: - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - fs-extra: 11.2.0 - lodash: 4.17.21 - semantic-release: 23.0.0(typescript@5.3.3) - dev: true - /@semantic-release/commit-analyzer@11.1.0(semantic-release@23.0.0): + '@semantic-release/commit-analyzer@11.1.0': resolution: {integrity: sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - conventional-changelog-angular: 7.0.0 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4 - import-from-esm: 1.3.3 - lodash-es: 4.17.21 - micromatch: 4.0.5 - semantic-release: 23.0.0(typescript@5.3.3) - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/error@3.0.0: + '@semantic-release/error@3.0.0': resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} engines: {node: '>=14.17'} - dev: true - /@semantic-release/error@4.0.0: + '@semantic-release/error@4.0.0': resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} engines: {node: '>=18'} - dev: true - /@semantic-release/git@10.0.1(semantic-release@23.0.0): + '@semantic-release/git@10.0.1': resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} engines: {node: '>=14.17'} peerDependencies: semantic-release: '>=18.0.0' - dependencies: - '@semantic-release/error': 3.0.0 - aggregate-error: 3.1.0 - debug: 4.3.4 - dir-glob: 3.0.1 - execa: 5.1.1 - lodash: 4.17.21 - micromatch: 4.0.5 - p-reduce: 2.1.0 - semantic-release: 23.0.0(typescript@5.3.3) - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/github@9.2.6(semantic-release@23.0.0): + '@semantic-release/github@9.2.6': resolution: {integrity: sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==} engines: {node: '>=18'} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - '@octokit/core': 5.1.0 - '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.1.0) - '@octokit/plugin-retry': 6.0.1(@octokit/core@5.1.0) - '@octokit/plugin-throttling': 8.1.3(@octokit/core@5.1.0) - '@semantic-release/error': 4.0.0 - aggregate-error: 5.0.0 - debug: 4.3.4 - dir-glob: 3.0.1 - globby: 14.0.0 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 - issue-parser: 6.0.0 - lodash-es: 4.17.21 - mime: 4.0.1 - p-filter: 4.1.0 - semantic-release: 23.0.0(typescript@5.3.3) - url-join: 5.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /@semantic-release/npm@11.0.2(semantic-release@23.0.0): + '@semantic-release/npm@11.0.2': resolution: {integrity: sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==} engines: {node: ^18.17 || >=20} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - '@semantic-release/error': 4.0.0 - aggregate-error: 5.0.0 - execa: 8.0.1 - fs-extra: 11.2.0 - lodash-es: 4.17.21 - nerf-dart: 1.0.0 - normalize-url: 8.0.0 - npm: 10.4.0 - rc: 1.2.8 - read-pkg: 9.0.1 - registry-auth-token: 5.0.2 - semantic-release: 23.0.0(typescript@5.3.3) - semver: 7.5.4 - tempy: 3.1.0 - dev: true - /@semantic-release/release-notes-generator@12.1.0(semantic-release@23.0.0): + '@semantic-release/release-notes-generator@12.1.0': resolution: {integrity: sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==} engines: {node: ^18.17 || >=20.6.1} peerDependencies: semantic-release: '>=20.1.0' - dependencies: - conventional-changelog-angular: 7.0.0 - conventional-changelog-writer: 7.0.1 - conventional-commits-filter: 4.0.0 - conventional-commits-parser: 5.0.0 - debug: 4.3.4 - get-stream: 7.0.1 - import-from-esm: 1.3.3 - into-stream: 7.0.0 - lodash-es: 4.17.21 - read-pkg-up: 11.0.0 - semantic-release: 23.0.0(typescript@5.3.3) - transitivePeerDependencies: - - supports-color - dev: true - /@sinclair/typebox@0.27.8: + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - /@sindresorhus/is@4.6.0: + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - dev: true - /@sindresorhus/merge-streams@1.0.0: + '@sindresorhus/merge-streams@1.0.0': resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} engines: {node: '>=18'} - dev: true - /@types/estree@1.0.5: + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - /@types/keyv@3.1.4: + '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - requiresBuild: true - dependencies: - '@types/node': 20.11.16 - dev: true - optional: true - /@types/node@20.11.16: + '@types/node@20.11.16': resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/normalize-package-data@2.4.4: + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true - /@types/responselike@1.0.3: + '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - requiresBuild: true - dependencies: - '@types/node': 20.11.16 - dev: true - optional: true - /@vitest/expect@1.2.2: + '@vitest/expect@1.2.2': resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} - dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 - chai: 4.4.1 - dev: true - /@vitest/runner@1.2.2: + '@vitest/runner@1.2.2': resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} - dependencies: - '@vitest/utils': 1.2.2 - p-limit: 5.0.0 - pathe: 1.1.2 - dev: true - /@vitest/snapshot@1.2.2: + '@vitest/snapshot@1.2.2': resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} - dependencies: - magic-string: 0.30.6 - pathe: 1.1.2 - pretty-format: 29.7.0 - dev: true - /@vitest/spy@1.2.2: + '@vitest/spy@1.2.2': resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} - dependencies: - tinyspy: 2.2.0 - dev: true - /@vitest/utils@1.2.2: + '@vitest/utils@1.2.2': resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - /JSONSelect@0.4.0: + JSONSelect@0.4.0: resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==} engines: {node: '>=0.4.7'} - requiresBuild: true - dev: true - optional: true - /JSONStream@1.3.5: + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - /abbrev@1.1.1: + abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - requiresBuild: true - dev: true - optional: true - /acorn-walk@8.3.2: + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - dev: true - /acorn@8.11.3: + acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true - /agent-base@7.1.0: + agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /aggregate-error@3.1.0: + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /aggregate-error@5.0.0: + aggregate-error@5.0.0: resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} engines: {node: '>=18'} - dependencies: - clean-stack: 5.2.0 - indent-string: 5.0.0 - dev: true - /ajv@5.5.2: + ajv@5.5.2: resolution: {integrity: sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==} - requiresBuild: true - dependencies: - co: 4.6.0 - fast-deep-equal: 1.1.0 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.3.1 - dev: true - optional: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - requiresBuild: true - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - /ansi-colors@4.1.3: + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true - /ansi-escapes@6.2.0: + ansi-escapes@6.2.0: resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} engines: {node: '>=14.16'} - dependencies: - type-fest: 3.13.1 - dev: true - /ansi-regex@2.1.1: + ansi-regex@2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /ansi-regex@3.0.1: + ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} - requiresBuild: true - dev: true - optional: true - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true - /ansi-regex@6.0.1: + ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true - /ansi-sequence-parser@1.1.1: + ansi-sequence-parser@1.1.1: resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: true - /ansi-styles@3.2.1: + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - /ansi-styles@5.2.0: + ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true - /ansi-styles@6.2.1: + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true - /ansicolors@0.3.2: + ansicolors@0.3.2: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} - dev: true - /api-spec-converter@2.12.0: + api-spec-converter@2.12.0: resolution: {integrity: sha512-awKL523vwkmyf3rTzmW/lopAbHRhqJw84IThAovtoQ60u6TblCoGIEhhpDDfb9WycncU2aDrVfqf9LQC5lcUTQ==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - bluebird: 3.7.2 - commander: 2.20.3 - composite-error: 0.1.1 - deep-sort-object: 1.0.2 - js-yaml: 3.14.1 - lodash: 4.17.21 - lodash.clonedeep: 4.5.0 - request: 2.88.2 - source-map: 0.6.0 - sway: 2.0.6 - traverse: 0.6.8 - urijs: 1.19.11 - xml2js: 0.4.23 - optionalDependencies: - apib2swagger: 1.17.1 - drafter.js: 2.6.7 - google-discovery-to-swagger: 2.1.0 - raml-parser: 0.8.18 - raml-to-swagger: 1.1.0 - swagger-converter: 1.5.1 - swagger2openapi: 2.9.4 - transitivePeerDependencies: - - supports-color - dev: true - /apib-include-directive@0.1.0: + apib-include-directive@0.1.0: resolution: {integrity: sha512-7m5LKbmFGeJogORhkLOCQjcEuGrRcVLG32nHbTAAYjvZ3cSV1XaxU8LBXIvx0PyLYL4mE/gc0Nu0Y7odQmAU1Q==} - requiresBuild: true - dev: true - optional: true - /apib2swagger@1.17.1: + apib2swagger@1.17.1: resolution: {integrity: sha512-2ednp+ckytSEOvX3CaUcHYC01wmzzfy970T22EJiBzcl4rj5p5UvUxXxHh6gCSCmDTkqKdiIFCLhoIJGynN8CQ==} hasBin: true - requiresBuild: true - dependencies: - apib-include-directive: 0.1.0 - drafter.js: 2.6.7 - generate-schema: 2.6.0 - js-yaml: 4.1.0 - json-schema-to-openapi-schema: 0.4.0 - lodash.isequal: 4.5.0 - nopt: 3.0.6 - uritemplate: 0.3.4 - dev: true - optional: true - /argparse@1.0.10: + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - requiresBuild: true - dev: true - /argv-formatter@1.0.0: + argv-formatter@1.0.0: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - dev: true - /array-ify@1.0.0: + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - /asap@2.0.6: + asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: true - /asn1@0.2.6: + asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - requiresBuild: true - dependencies: - safer-buffer: 2.1.2 - dev: true - /assert-plus@1.0.0: + assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} - requiresBuild: true - dev: true - /assertion-error@1.1.0: + assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - /asynckit@0.4.0: + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /aws-sign2@0.7.0: + aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - requiresBuild: true - dev: true - /aws4@1.12.0: + aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - requiresBuild: true - dev: true - /axios-mock-adapter@1.22.0(axios@1.6.7): + axios-mock-adapter@1.22.0: resolution: {integrity: sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==} peerDependencies: axios: '>= 0.17.0' - dependencies: - axios: 1.6.7 - fast-deep-equal: 3.1.3 - is-buffer: 2.0.5 - dev: true - /axios@1.6.7: + axios@1.6.7: resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} - dependencies: - follow-redirects: 1.15.5 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - /bcrypt-pbkdf@1.0.2: + bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - requiresBuild: true - dependencies: - tweetnacl: 0.14.5 - dev: true - /before-after-hook@2.2.3: + before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - dev: true - /bluebird@3.7.2: + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: true - /bottleneck@2.19.5: + bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - dev: true - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - /braces@3.0.2: + braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - /cac@6.7.14: + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: true - /call-bind@1.0.5: + call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.3 - set-function-length: 1.2.0 - dev: true - /call-me-maybe@1.0.2: + call-me-maybe@1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - dev: true - /callsites@3.1.0: + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true - /camelcase@4.1.0: + camelcase@4.1.0: resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} engines: {node: '>=4'} - requiresBuild: true - dev: true - optional: true - /cardinal@2.1.1: + cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true - dependencies: - ansicolors: 0.3.2 - redeyed: 2.1.1 - dev: true - /caseless@0.12.0: + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - requiresBuild: true - dev: true - /chai@4.4.1: + chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - /chalk@2.4.2: + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - /chalk@5.3.0: + chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - /char-regex@1.0.2: + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - dev: true - /check-error@1.0.3: + check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - /cjson@0.2.1: + cjson@0.2.1: resolution: {integrity: sha512-Yche6o3bxUlXx6vGDjDwcWU3cSLGyRxGQpDk/FNHKDt02c715rBvuPLBfP1/+U+quWm/lU4F8N5sZbRCxpsrIg==} engines: {node: '>= 0.3.0'} - requiresBuild: true - dev: true - optional: true - /clean-stack@2.2.0: + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - dev: true - /clean-stack@5.2.0: + clean-stack@5.2.0: resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} engines: {node: '>=14.16'} - dependencies: - escape-string-regexp: 5.0.0 - dev: true - /cli-cursor@4.0.0: + cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - dev: true - /cli-table3@0.6.3: + cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} - dependencies: - string-width: 4.2.3 - optionalDependencies: - '@colors/colors': 1.5.0 - dev: true - /cli-truncate@4.0.0: + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} - dependencies: - slice-ansi: 5.0.0 - string-width: 7.1.0 - dev: true - /cliui@3.2.0: + cliui@3.2.0: resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} - requiresBuild: true - dependencies: - string-width: 1.0.2 - strip-ansi: 3.0.1 - wrap-ansi: 2.1.0 - dev: true - optional: true - /cliui@8.0.1: + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /co@4.6.0: + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - requiresBuild: true - dev: true - optional: true - /code-point-at@1.1.0: + code-point-at@1.1.0: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /color-convert@1.9.3: + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - /color-convert@2.0.1: + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - /color-name@1.1.3: + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - /color-name@1.1.4: + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - /colorette@2.0.20: + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true - /colors@0.5.1: + colors@0.5.1: resolution: {integrity: sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==} engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - /combined-stream@1.0.8: + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - /commander@11.1.0: + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} - dev: true - /commander@2.20.3: + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - /commander@4.1.1: + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: true - /common-prefix@1.1.0: + common-prefix@1.1.0: resolution: {integrity: sha512-9HAWgTP6U7K4G94u3J/oETIczTkzqZGn/cVFHDKVh/iFtZPBxuJ/qT+8Q5Np1XSXMZsRgnrpes7SrWOTJxFtaw==} - requiresBuild: true - dev: true - optional: true - /compare-func@2.0.0: + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - /component-emitter@1.3.1: + component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: true - /composite-error@0.1.1: + composite-error@0.1.1: resolution: {integrity: sha512-uKfFK2AO3V4YrzwnWYs0zO6jhfLScr30RoQ6iqG62iWXkp0G5w/Fx8W3y9ax5nwrlKzvTQzk1K6ODvChkwhCFA==} - dev: true - /config-chain@1.1.13: + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - dev: true - /conventional-changelog-angular@7.0.0: + conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: true - /conventional-changelog-writer@7.0.1: + conventional-changelog-writer@7.0.1: resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} engines: {node: '>=16'} hasBin: true - dependencies: - conventional-commits-filter: 4.0.0 - handlebars: 4.7.8 - json-stringify-safe: 5.0.1 - meow: 12.1.1 - semver: 7.5.4 - split2: 4.2.0 - dev: true - /conventional-commits-filter@4.0.0: + conventional-commits-filter@4.0.0: resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} engines: {node: '>=16'} - dev: true - /conventional-commits-parser@5.0.0: + conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 - dev: true - /cookiejar@2.1.4: + cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - dev: true - /core-js@2.6.12: + core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - requiresBuild: true - dev: true - /core-util-is@1.0.2: + core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - requiresBuild: true - dev: true - /core-util-is@1.0.3: + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - requiresBuild: true - dev: true - /cosmiconfig@9.0.0(typescript@5.3.3): + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: @@ -1463,60 +832,31 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - typescript: 5.3.3 - dev: true - /cross-spawn@5.1.0: + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - requiresBuild: true - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - optional: true - /cross-spawn@7.0.3: + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - /crypto-random-string@4.0.0: + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - dependencies: - type-fest: 1.4.0 - dev: true - /dashdash@1.14.1: + dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - assert-plus: 1.0.0 - dev: true - /debug@3.2.7: + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.2 - dev: true - /debug@4.3.4: + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -1524,480 +864,241 @@ packages: peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.2 - dev: true - /decamelize@1.2.0: + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /deep-eql@4.1.3: + deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - /deep-extend@0.6.0: + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true - /deep-is@0.1.4: + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - requiresBuild: true - dev: true - optional: true - /deep-sort-object@1.0.2: + deep-sort-object@1.0.2: resolution: {integrity: sha512-Ko2XVMhRhz5Mxyb+QhLX13SHgcK1vuxc6XEfOyTMlbRbv7bhSmMqUw4ywqRwKgV25W+FDIaZjPWQrdblHCTwdA==} - dependencies: - is-plain-object: 2.0.4 - dev: true - /define-data-property@1.1.1: + define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - /delayed-stream@1.0.0: + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - /deprecation@2.3.1: + deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dev: true - /dezalgo@1.0.4: + dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - dev: true - /diff-sequences@29.6.3: + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /dir-glob@3.0.1: + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - /dot-prop@5.3.0: + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - /drafter.js@2.6.7: + drafter.js@2.6.7: resolution: {integrity: sha512-B6/nqEr3B9N8B4eySiPVXnFvI9Fh62Xl6GBQVncoh1aDcnYxSME5S8nZEERd4LjSYLzZchqnEC0F4oaXhSRJtA==} engines: {node: '>= 0.12'} - requiresBuild: true - dev: true - optional: true - /duplexer2@0.1.4: + duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - dependencies: - readable-stream: 2.3.8 - dev: true - /duplexify@3.7.1: + duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - requiresBuild: true - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - dev: true - optional: true - /ebnf-parser@0.1.10: + ebnf-parser@0.1.10: resolution: {integrity: sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==} - requiresBuild: true - dev: true - optional: true - /ecc-jsbn@0.1.2: + ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - requiresBuild: true - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: true - /emoji-regex@10.3.0: + emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: true - /emoji-regex@8.0.0: + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - /emojilib@2.4.0: + emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - dev: true - /encoding@0.1.13: + encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true - dependencies: - iconv-lite: 0.6.3 - dev: true - optional: true - /end-of-stream@1.4.4: + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - requiresBuild: true - dependencies: - once: 1.4.0 - dev: true - optional: true - /env-ci@11.0.0: + env-ci@11.0.0: resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} engines: {node: ^18.17 || >=20.6.1} - dependencies: - execa: 8.0.1 - java-properties: 1.0.2 - dev: true - /env-paths@2.2.1: + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: true - /error-ex@1.3.2: + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - requiresBuild: true - dependencies: - is-arrayish: 0.2.1 - dev: true - /es-errors@1.0.0: + es-errors@1.0.0: resolution: {integrity: sha512-yHV74THqMJUyFKkHyN7hyENcEZM3Dj2a2IrdClY+IT4BFQHkIVwlh8s6uZfjsFydMdNHv0F5mWgAA3ajFbsvVQ==} engines: {node: '>= 0.4'} - dev: true - /es6-promise@3.3.1: + es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - requiresBuild: true - dev: true - optional: true - /es6-promise@4.2.8: + es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - requiresBuild: true - dev: true - optional: true - /esbuild@0.19.12: + esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - dev: true - /escalade@3.1.1: + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true - /escape-string-regexp@1.0.5: + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true - /escape-string-regexp@5.0.0: + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - dev: true - /escodegen@0.0.21: + escodegen@0.0.21: resolution: {integrity: sha512-BQL5g+BqyrM5HRAKt4Q4YuH9CqiEcIHWSJ8fg2PRNkGkXn/LgzeDCZzDDSX4UiljSAHgXaHgOZREQ2xOigbLzA==} engines: {node: '>=0.4.0'} hasBin: true - requiresBuild: true - dependencies: - esprima: 1.0.4 - estraverse: 0.0.4 - optionalDependencies: - source-map: 0.6.1 - dev: true - optional: true - /escodegen@0.0.28: + escodegen@0.0.28: resolution: {integrity: sha512-6ioQhg16lFs5c7XJlJFXIDxBjO4yRvXC9yK6dLNNGuhI3a/fJukHanPF6qtpjGDgAFzI8Wuq3PSIarWmaOq/5A==} engines: {node: '>=0.4.0'} hasBin: true - requiresBuild: true - dependencies: - esprima: 1.0.4 - estraverse: 1.3.2 - optionalDependencies: - source-map: 0.6.1 - dev: true - optional: true - /escodegen@1.14.3: + escodegen@1.14.3: resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} hasBin: true - requiresBuild: true - dependencies: - esprima: 4.0.1 - estraverse: 4.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - optional: true - /esprima@1.0.4: + esprima@1.0.4: resolution: {integrity: sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==} engines: {node: '>=0.4.0'} hasBin: true - requiresBuild: true - dev: true - optional: true - /esprima@1.2.2: + esprima@1.2.2: resolution: {integrity: sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==} engines: {node: '>=0.4.0'} hasBin: true - requiresBuild: true - dev: true - optional: true - /esprima@4.0.1: + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - requiresBuild: true - dev: true - /estraverse@0.0.4: + estraverse@0.0.4: resolution: {integrity: sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==} engines: {node: '>=0.4.0'} - requiresBuild: true - dev: true - optional: true - /estraverse@1.3.2: + estraverse@1.3.2: resolution: {integrity: sha512-OkbCPVUu8D9tbsLcUR+CKFRBbhZlogmkbWaP3BPERlkqzWL5Q6IdTz6eUk+b5cid2MTaCqJb2nNRGoJ8TpfPrg==} engines: {node: '>=0.4.0'} - requiresBuild: true - dev: true - optional: true - /estraverse@4.3.0: + estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} - requiresBuild: true - dev: true - optional: true - /estree-walker@3.0.3: + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: true - /esutils@2.0.3: + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /eventemitter3@5.0.1: + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true - /execa@0.7.0: + execa@0.7.0: resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - dev: true - optional: true - /execa@5.1.1: + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - /extend@3.0.2: + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - requiresBuild: true - dev: true - /extsprintf@1.3.0: + extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} - requiresBuild: true - dev: true - /faker@4.1.0: + faker@4.1.0: resolution: {integrity: sha512-ILKg69P6y/D8/wSmDXw35Ly0re8QzQ8pMfBCflsGiZG2ZjMUNLYNexA6lz5pkmJlepVdsiDFUxYAzPQ9/+iGLA==} - dev: true - /fast-deep-equal@1.1.0: + fast-deep-equal@1.1.0: resolution: {integrity: sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==} - requiresBuild: true - dev: true - optional: true - /fast-deep-equal@3.1.3: + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - requiresBuild: true - dev: true - /fast-glob@3.3.2: + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-json-stable-stringify@2.1.0: + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - requiresBuild: true - dev: true - /fast-levenshtein@2.0.6: + fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - requiresBuild: true - dev: true - optional: true - /fast-safe-stringify@2.1.1: + fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - dev: true - /fastq@1.17.0: + fastq@1.17.0: resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} - dependencies: - reusify: 1.0.4 - dev: true - /figures@2.0.0: + figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /figures@6.0.1: + figures@6.0.1: resolution: {integrity: sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==} engines: {node: '>=18'} - dependencies: - is-unicode-supported: 2.0.0 - dev: true - /fill-range@7.0.1: + fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - /find-up-simple@1.0.0: + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} - dev: true - /find-up@2.1.0: + find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - locate-path: 2.0.0 - dev: true - /find-versions@5.1.0: + find-versions@5.1.0: resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} engines: {node: '>=12'} - dependencies: - semver-regex: 4.0.5 - dev: true - /follow-redirects@1.15.5: + follow-redirects@1.15.5: resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} engines: {node: '>=4.0'} peerDependencies: @@ -2006,1268 +1107,683 @@ packages: debug: optional: true - /forever-agent@0.6.1: + forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - requiresBuild: true - dev: true - /form-data@2.3.3: + form-data@2.3.3: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} - requiresBuild: true - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@4.0.0: + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - /format-util@1.0.5: + format-util@1.0.5: resolution: {integrity: sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==} - requiresBuild: true - dev: true - /formidable@2.1.2: + formidable@2.1.2: resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} - dependencies: - dezalgo: 1.0.4 - hexoid: 1.0.0 - once: 1.4.0 - qs: 6.11.2 - dev: true - /from2@2.3.0: + from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - dev: true - /fs-extra@11.2.0: + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - /fsevents@2.3.3: + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - requiresBuild: true - dev: true - optional: true - /function-bind@1.1.2: + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - /generate-schema@2.6.0: + generate-schema@2.6.0: resolution: {integrity: sha512-EUBKfJNzT8f91xUk5X5gKtnbdejZeE065UAJ3BCzE8VEbvwKI9Pm5jaWmqVeK1MYc1g5weAVFDTSJzN7ymtTqA==} hasBin: true - requiresBuild: true - dependencies: - commander: 2.20.3 - type-of-is: 3.5.1 - dev: true - optional: true - /get-caller-file@1.0.3: + get-caller-file@1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} - requiresBuild: true - dev: true - optional: true - /get-caller-file@2.0.5: + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true - /get-east-asian-width@1.2.0: + get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - dev: true - /get-func-name@2.0.2: + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - /get-intrinsic@1.2.3: + get-intrinsic@1.2.3: resolution: {integrity: sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==} engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.0.0 - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - /get-stream@3.0.0: + get-stream@3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} engines: {node: '>=4'} - requiresBuild: true - dev: true - optional: true - /get-stream@6.0.1: + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true - /get-stream@7.0.1: + get-stream@7.0.1: resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} engines: {node: '>=16'} - dev: true - /get-stream@8.0.1: + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - dev: true - /get-tsconfig@4.7.2: + get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true - /getpass@0.1.7: + getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - requiresBuild: true - dependencies: - assert-plus: 1.0.0 - dev: true - /git-log-parser@1.2.0: + git-log-parser@1.2.0: resolution: {integrity: sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==} - dependencies: - argv-formatter: 1.0.0 - spawn-error-forwarder: 1.0.0 - split2: 1.0.0 - stream-combiner2: 1.1.1 - through2: 2.0.5 - traverse: 0.6.8 - dev: true - /glob-parent@5.1.2: + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - /globby@14.0.0: + globby@14.0.0: resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} engines: {node: '>=18'} - dependencies: - '@sindresorhus/merge-streams': 1.0.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - dev: true - /google-discovery-to-swagger@2.1.0: + google-discovery-to-swagger@2.1.0: resolution: {integrity: sha512-MI1gfmWPkuXCp6yH+9rfd8ZG8R1R5OIyY4WlKDTqr2+ere1gt2Ne4DSEu8HM7NkwKpuVCE5TrTRAPfm3ownMUQ==} - requiresBuild: true - dependencies: - json-schema-compatibility: 1.1.0 - jsonpath: 1.1.1 - lodash: 4.17.21 - mime-db: 1.52.0 - mime-lookup: 0.0.2 - traverse: 0.6.8 - urijs: 1.19.11 - dev: true - optional: true - /gopd@1.0.1: + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.3 - dev: true - /got@2.4.0: + got@2.4.0: resolution: {integrity: sha512-FZ9t9NbPnhVEVPxjoRJuZUi6qmVlzBfSqS+FCU7npZLrTllzFeUAT1D79oz2n44qYM/Moz6eBFB9yzyKgZmHXg==} engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - duplexify: 3.7.1 - infinity-agent: 1.0.2 - is-stream: 1.1.0 - lowercase-keys: 1.0.1 - object-assign: 2.1.1 - prepend-http: 1.0.4 - read-all-stream: 1.0.2 - statuses: 1.5.0 - timed-out: 2.0.0 - dev: true - optional: true - /graceful-fs@4.2.10: + graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true - /graceful-fs@4.2.11: + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - requiresBuild: true - dev: true - /graphlib@2.1.8: + graphlib@2.1.8: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} - dependencies: - lodash: 4.17.21 - dev: true - /handlebars@4.7.8: + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - /har-schema@2.0.0: + har-schema@2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} - requiresBuild: true - dev: true - /har-validator@5.1.5: + har-validator@5.1.5: resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} engines: {node: '>=6'} deprecated: this library is no longer supported - requiresBuild: true - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: true - /has-flag@3.0.0: + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true - /has-flag@4.0.0: + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true - /has-property-descriptors@1.0.1: + has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - dependencies: - get-intrinsic: 1.2.3 - dev: true - /has-proto@1.0.1: + has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: true - /has-symbols@1.0.3: + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: true - /hasown@2.0.0: + hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - /hexoid@1.0.0: + hexoid@1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} - dev: true - /hook-std@3.0.0: + hook-std@3.0.0: resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /hosted-git-info@2.8.9: + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - requiresBuild: true - dev: true - optional: true - /hosted-git-info@7.0.1: + hosted-git-info@7.0.1: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - lru-cache: 10.2.0 - dev: true - /http-proxy-agent@7.0.0: + http-proxy-agent@7.0.0: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /http-signature@1.2.0: + http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} - requiresBuild: true - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.18.0 - dev: true - /http-status-codes@1.4.0: + http-status-codes@1.4.0: resolution: {integrity: sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==} - requiresBuild: true - dev: true - optional: true - /https-proxy-agent@7.0.2: + https-proxy-agent@7.0.2: resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /human-signals@2.1.0: + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true - /human-signals@5.0.0: + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - dev: true - /husky@9.0.10: + husky@9.0.10: resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==} engines: {node: '>=18'} hasBin: true - dev: true - /iconv-lite@0.6.3: + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - safer-buffer: 2.1.2 - dev: true - optional: true - /ignore@5.3.1: + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - dev: true - /import-fresh@3.3.0: + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - /import-from-esm@1.3.3: + import-from-esm@1.3.3: resolution: {integrity: sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==} engines: {node: '>=16.20'} - dependencies: - debug: 4.3.4 - import-meta-resolve: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /import-meta-resolve@4.0.0: + import-meta-resolve@4.0.0: resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - dev: true - /indent-string@4.0.0: + indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - dev: true - /indent-string@5.0.0: + indent-string@5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - dev: true - /index-to-position@0.1.2: + index-to-position@0.1.2: resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} engines: {node: '>=18'} - dev: true - /infinity-agent@1.0.2: + infinity-agent@1.0.2: resolution: {integrity: sha512-QVet+evQIBtn+Cd+8nL1M8pOmBTzShfsQCgaXJoA+dV0UtKMnTPnkkkgXkM5eM+oC1qTv9UDew/LL9ElxiA/MQ==} - requiresBuild: true - dev: true - optional: true - /inherits@2.0.4: + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - /ini@1.3.8: + ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - /into-stream@7.0.0: + into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} - dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 - dev: true - /invert-kv@1.0.0: + invert-kv@1.0.0: resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /is-arrayish@0.2.1: + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - requiresBuild: true - dev: true - /is-buffer@2.0.5: + is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - dev: true - /is-core-module@2.13.1: + is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - requiresBuild: true - dependencies: - hasown: 2.0.0 - dev: true - /is-extglob@2.1.1: + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true - /is-fullwidth-code-point@1.0.0: + is-fullwidth-code-point@1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - number-is-nan: 1.0.1 - dev: true - optional: true - /is-fullwidth-code-point@2.0.0: + is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} - requiresBuild: true - dev: true - optional: true - /is-fullwidth-code-point@3.0.0: + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true - /is-fullwidth-code-point@4.0.0: + is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} - dev: true - /is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.0.0: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - dependencies: - get-east-asian-width: 1.2.0 - dev: true - /is-glob@4.0.3: + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true - /is-obj@2.0.0: + is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - dev: true - /is-plain-object@2.0.4: + is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /is-stream@1.1.0: + is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /is-stream@2.0.1: + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true - /is-stream@3.0.0: + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /is-text-path@2.0.0: + is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} - dependencies: - text-extensions: 2.4.0 - dev: true - /is-typedarray@1.0.0: + is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - requiresBuild: true - dev: true - /is-unicode-supported@2.0.0: + is-unicode-supported@2.0.0: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} - dev: true - /isarray@0.0.1: + isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: true - /isarray@1.0.0: + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - requiresBuild: true - dev: true - /isexe@2.0.0: + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - /isobject@3.0.1: + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - dev: true - /isstream@0.1.2: + isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - requiresBuild: true - dev: true - /issue-parser@6.0.0: + issue-parser@6.0.0: resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} engines: {node: '>=10.13'} - dependencies: - lodash.capitalize: 4.2.1 - lodash.escaperegexp: 4.1.2 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.uniqby: 4.7.0 - dev: true - /java-properties@1.0.2: + java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} - dev: true - /jgexml@0.3.9: + jgexml@0.3.9: resolution: {integrity: sha512-OiucENxrgrQ0HgBhb0LewMeubJsOdKwoauSJsSk0eXBnXupW+RmeGvAcC5agdFw+V5f+OAIwmgvutOQAwnPZfw==} - requiresBuild: true - dev: true - optional: true - /jison-lex@0.2.1: + jison-lex@0.2.1: resolution: {integrity: sha512-WCNVPRxaTWdhwJAIrBsgkGT9n6H1yNR9Lfof5LUHaMul24ySrJ1SXbVPszZfs57jwXvASLWBpd0xpFEW2oIuVA==} engines: {node: '>=0.4'} hasBin: true - requiresBuild: true - dependencies: - lex-parser: 0.1.4 - nomnom: 1.5.2 - dev: true - optional: true - /jison@0.4.13: + jison@0.4.13: resolution: {integrity: sha512-H/r8t7Ft4zuGyQZUI0Ai2rh6WAHJoAGG1kJhI1MGKfgFO2/mqnxr9JmYMU/LcC95+DxO2bGqVXv5LDRiv06eRA==} engines: {node: '>=0.4'} hasBin: true - requiresBuild: true - dependencies: - JSONSelect: 0.4.0 - cjson: 0.2.1 - ebnf-parser: 0.1.10 - escodegen: 0.0.21 - esprima: 1.0.4 - jison-lex: 0.2.1 - lex-parser: 0.1.4 - nomnom: 1.5.2 - dev: true - optional: true - /jju@1.2.1: + jju@1.2.1: resolution: {integrity: sha512-GpUVIrMsjtyZ3YDSIM3w3UGDZKjeVmIv9mW+KYnxDhovh9GnPjucVp13mdxiZmcZxjbenRAFs4gWEQIVXXvoYw==} - requiresBuild: true - dev: true - optional: true - /js-base64@2.6.4: + js-base64@2.6.4: resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} - dev: true - /js-tokens@4.0.0: + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - /js-yaml@3.14.1: + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - /js-yaml@4.1.0: + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - requiresBuild: true - dependencies: - argparse: 2.0.1 - dev: true - /jsbn@0.1.1: + jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - requiresBuild: true - dev: true - /json-parse-better-errors@1.0.2: + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors@2.3.1: + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - /json-refs@3.0.15: + json-refs@3.0.15: resolution: {integrity: sha512-0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw==} engines: {node: '>=0.8'} hasBin: true - dependencies: - commander: 4.1.1 - graphlib: 2.1.8 - js-yaml: 3.14.1 - lodash: 4.17.21 - native-promise-only: 0.8.1 - path-loader: 1.0.12 - slash: 3.0.0 - uri-js: 4.4.1 - transitivePeerDependencies: - - supports-color - dev: true - /json-schema-compatibility@1.1.0: + json-schema-compatibility@1.1.0: resolution: {integrity: sha512-/ZDuZvZFAi9XnuVQHdUlUvHSxN/ksFn8KDVHiLUJWumpRagccER/tRNY1GKNMguYdJCjaTZweTjf1faugxFfjw==} engines: {node: '>= 0.8.0'} - requiresBuild: true - dev: true - optional: true - /json-schema-faker@0.5.5: + json-schema-faker@0.5.5: resolution: {integrity: sha512-MlnBqcsM1t8jdHs00ltae0rlSwWI2nrd1IfnAF+UcHsqKFrlAhrbDFVKiA8C0E860PuspKoV4oImJdvtF7aqwg==} hasBin: true - dependencies: - json-schema-ref-parser: 6.1.0 - jsonpath-plus: 7.2.0 - dev: true - /json-schema-ref-parser@3.3.1: + json-schema-ref-parser@3.3.1: resolution: {integrity: sha512-stQTMhec2R/p2L9dH4XXRlpNCP0mY8QrLd/9Kl+8SHJQmwHtE1nDfXH4wbsSM+GkJMl8t92yZbI0OIol432CIQ==} deprecated: Please switch to @apidevtools/json-schema-ref-parser - requiresBuild: true - dependencies: - call-me-maybe: 1.0.2 - debug: 3.2.7 - es6-promise: 4.2.8 - js-yaml: 3.14.1 - ono: 4.0.11 - z-schema: 3.25.1 - transitivePeerDependencies: - - supports-color - dev: true - optional: true - /json-schema-ref-parser@6.1.0: + json-schema-ref-parser@6.1.0: resolution: {integrity: sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==} deprecated: Please switch to @apidevtools/json-schema-ref-parser - dependencies: - call-me-maybe: 1.0.2 - js-yaml: 3.14.1 - ono: 4.0.11 - dev: true - /json-schema-to-openapi-schema@0.4.0: + json-schema-to-openapi-schema@0.4.0: resolution: {integrity: sha512-/DY8s4l28M5ZIJBhmcUFWbZChJV5v7RCA7RMVxubyD1l5KwIceUq6+EUnqQ2q3wh/2D3Zn8bNSeAu1i2X+sMHQ==} deprecated: This package is no longer maintained. Use @openapi-contrib/json-schema-to-openapi-schema instead. - requiresBuild: true - dependencies: - '@cloudflare/json-schema-walker': 0.1.1 - dev: true - optional: true - /json-schema-traverse@0.3.1: + json-schema-traverse@0.3.1: resolution: {integrity: sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==} - requiresBuild: true - dev: true - optional: true - /json-schema-traverse@0.4.1: + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - requiresBuild: true - dev: true - /json-schema@0.4.0: + json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - requiresBuild: true - dev: true - /json-stringify-safe@5.0.1: + json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - requiresBuild: true - dev: true - /jsonc-parser@3.2.1: + jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: true - /jsonfile@6.1.0: + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - /jsonparse@1.3.1: + jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - dev: true - /jsonpath-plus@7.2.0: + jsonpath-plus@7.2.0: resolution: {integrity: sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==} engines: {node: '>=12.0.0'} - dev: true - /jsonpath@0.2.12: + jsonpath@0.2.12: resolution: {integrity: sha512-FnZhbj4Cr7/LNMIU8e9VWKMtrE/+/NMur/7maiW3uhAPI5qUcvf/hsR9zpjWBNzl2EkrW/NFyNUZ8V5sK7R/Fw==} - requiresBuild: true - dependencies: - esprima: 1.2.2 - jison: 0.4.13 - static-eval: 0.2.3 - underscore: 1.7.0 - dev: true - optional: true - /jsonpath@1.1.1: + jsonpath@1.1.1: resolution: {integrity: sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==} - requiresBuild: true - dependencies: - esprima: 1.2.2 - static-eval: 2.0.2 - underscore: 1.12.1 - dev: true - optional: true - /jsprim@1.4.2: + jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} - requiresBuild: true - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: true - /lcid@1.0.0: + lcid@1.0.0: resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - invert-kv: 1.0.0 - dev: true - optional: true - /levn@0.3.0: + levn@0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} - requiresBuild: true - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - optional: true - /lex-parser@0.1.4: + lex-parser@0.1.4: resolution: {integrity: sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==} - requiresBuild: true - dev: true - optional: true - /lilconfig@3.0.0: + lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} - dev: true - /lines-and-columns@1.2.4: + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - /lint-staged@15.2.1: + lint-staged@15.2.1: resolution: {integrity: sha512-dhwAPnM85VdshybV9FWI/9ghTvMLoQLEXgVMx+ua2DN7mdfzd/tRfoU2yhMcBac0RHkofoxdnnJUokr8s4zKmQ==} engines: {node: '>=18.12.0'} hasBin: true - dependencies: - chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /listr2@8.0.1: + listr2@8.0.1: resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} engines: {node: '>=18.0.0'} - dependencies: - cli-truncate: 4.0.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.1 - wrap-ansi: 9.0.0 - dev: true - /load-json-file@2.0.0: + load-json-file@2.0.0: resolution: {integrity: sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - graceful-fs: 4.2.11 - parse-json: 2.2.0 - pify: 2.3.0 - strip-bom: 3.0.0 - dev: true - optional: true - /load-json-file@4.0.0: + load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /local-pkg@0.5.0: + local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} - dependencies: - mlly: 1.5.0 - pkg-types: 1.0.3 - dev: true - /locate-path@2.0.0: + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /lodash-es@4.17.21: + lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true - /lodash.capitalize@4.2.1: + lodash.capitalize@4.2.1: resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} - dev: true - /lodash.clonedeep@4.5.0: + lodash.clonedeep@4.5.0: resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - dev: true - /lodash.escaperegexp@4.1.2: + lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - dev: true - /lodash.get@4.4.2: + lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true - /lodash.isequal@4.5.0: + lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: true - /lodash.isplainobject@4.0.6: + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true - /lodash.isstring@4.0.1: + lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: true - /lodash.uniqby@4.7.0: + lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - dev: true - /lodash@4.17.21: + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - /log-update@6.0.0: + log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} - dependencies: - ansi-escapes: 6.2.0 - cli-cursor: 4.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 - dev: true - /loupe@2.3.7: + loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - /lowercase-keys@1.0.1: + lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - optional: true - /lru-cache@10.2.0: + lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - dev: true - /lru-cache@4.1.5: + lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - requiresBuild: true - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - dev: true - optional: true - /lru-cache@6.0.0: + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - /lunr@2.3.9: + lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - dev: true - /magic-string@0.30.6: + magic-string@0.30.6: resolution: {integrity: sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==} engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /marked-terminal@6.2.0(marked@11.2.0): + marked-terminal@6.2.0: resolution: {integrity: sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==} engines: {node: '>=16.0.0'} peerDependencies: marked: '>=1 <12' - dependencies: - ansi-escapes: 6.2.0 - cardinal: 2.1.1 - chalk: 5.3.0 - cli-table3: 0.6.3 - marked: 11.2.0 - node-emoji: 2.1.3 - supports-hyperlinks: 3.0.0 - dev: true - /marked@11.2.0: + marked@11.2.0: resolution: {integrity: sha512-HR0m3bvu0jAPYiIvLUUQtdg1g6D247//lvcekpHO1WMvbwDlwSkZAX9Lw4F4YHE1T0HaaNve0tuAWuV1UJ6vtw==} engines: {node: '>= 18'} hasBin: true - dev: true - /marked@4.3.0: + marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true - dev: true - /mem@1.1.0: + mem@1.1.0: resolution: {integrity: sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - mimic-fn: 1.2.0 - dev: true - optional: true - /meow@12.1.1: + meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} - dev: true - /merge-stream@2.0.0: + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - /merge2@1.4.1: + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true - /methods@1.1.2: + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - dev: true - /micromatch@4.0.5: + micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - /mime-db@1.52.0: + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - /mime-lookup@0.0.2: + mime-lookup@0.0.2: resolution: {integrity: sha512-6384dzMc9tsk9wBt/W9jG1hWEUPk7oPwj0ExsJCAI9peB11GbWniOWg0O/Uf8vZbvK8bkPKPtaVDtZI0FWlwbg==} - requiresBuild: true - dev: true - optional: true - /mime-types@2.1.35: + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - /mime@2.6.0: + mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} hasBin: true - dev: true - /mime@4.0.1: + mime@4.0.1: resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} engines: {node: '>=16'} hasBin: true - dev: true - /mimic-fn@1.2.0: + mimic-fn@1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} - requiresBuild: true - dev: true - optional: true - /mimic-fn@2.1.0: + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true - /mimic-fn@4.0.0: + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: true - /minimatch@9.0.3: + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist@1.2.8: + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - /mlly@1.5.0: + mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.3.2 - dev: true - /ms@2.1.2: + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - /nanoid@3.3.7: + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /native-promise-only@0.8.1: + native-promise-only@0.8.1: resolution: {integrity: sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==} - dev: true - /neo-async@2.6.2: + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - /nerf-dart@1.0.0: + nerf-dart@1.0.0: resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} - dev: true - /node-emoji@2.1.3: + node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} - dependencies: - '@sindresorhus/is': 4.6.0 - char-regex: 1.0.2 - emojilib: 2.4.0 - skin-tone: 2.0.0 - dev: true - /node-fetch@1.7.3: + node-fetch@1.7.3: resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} - requiresBuild: true - dependencies: - encoding: 0.1.13 - is-stream: 1.1.0 - dev: true - optional: true - /node-readfiles@0.2.0: + node-readfiles@0.2.0: resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} - requiresBuild: true - dependencies: - es6-promise: 3.3.1 - dev: true - optional: true - /nomnom@1.5.2: + nomnom@1.5.2: resolution: {integrity: sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==} deprecated: Package no longer supported. Contact support@npmjs.com for more info. - requiresBuild: true - dependencies: - colors: 0.5.1 - underscore: 1.1.7 - dev: true - optional: true - /nopt@3.0.6: + nopt@3.0.6: resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} hasBin: true - requiresBuild: true - dependencies: - abbrev: 1.1.1 - dev: true - optional: true - /normalize-package-data@2.5.0: + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - requiresBuild: true - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - dev: true - optional: true - /normalize-package-data@6.0.0: + normalize-package-data@6.0.0: resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-url@8.0.0: + normalize-url@8.0.0: resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} engines: {node: '>=14.16'} - dev: true - /npm-run-path@2.0.2: + npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} - requiresBuild: true - dependencies: - path-key: 2.0.1 - dev: true - optional: true - /npm-run-path@4.0.1: + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - /npm-run-path@5.2.0: + npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - /npm@10.4.0: + npm@10.4.0: resolution: {integrity: sha512-RS7Mx0OVfXlOcQLRePuDIYdFCVBPCNapWHplDK+mh7GDdP/Tvor4ocuybRRPSvfcRb2vjRJt1fHCqw3cr8qACQ==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - dev: true bundledDependencies: - '@isaacs/string-locale-compare' - '@npmcli/arborist' @@ -3340,65 +1856,2743 @@ packages: - which - write-file-atomic - /number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + object-assign@2.1.1: + resolution: {integrity: sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + ono@4.0.11: + resolution: {integrity: sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==} + + openapi-typescript@6.7.4: + resolution: {integrity: sha512-EZyeW9Wy7UDCKv0iYmKrq2pVZtquXiD/YHiUClAKqiMi42nodx/EQH11K6fLqjt1IZlJmVokrAsExsBMM2RROQ==} + hasBin: true + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + os-locale@2.1.0: + resolution: {integrity: sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==} + engines: {node: '>=4'} + + p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + + p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + + p-map@7.0.1: + resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} + engines: {node: '>=18'} + + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + + p-reduce@3.0.0: + resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} + engines: {node: '>=12'} + + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-loader@1.0.12: + resolution: {integrity: sha512-n7oDG8B+k/p818uweWrOixY9/Dsr89o2TkCm6tOTex3fpdo2+BFDgR+KpB37mGKBRsBAlR8CIJMFN0OEy/7hIQ==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-type@2.0.0: + resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} + engines: {node: '>=4'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + + pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + + pluralize@1.1.6: + resolution: {integrity: sha512-UZuZBoEfkgswguqcjVu6V59DVrILlC7GjclesLS6SA+u/+esH/f1FBW+BtzSMAz1mENIlM0Eo/89AIjxAFidQA==} + + postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} + engines: {node: '>=0.10.0'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + q@0.9.7: + resolution: {integrity: sha512-ijt0LhxWClXBtc1RCt8H0WhlZLAdVX26nWbpsJy+Hblmp81d2F/pFsvlrJhJDDruFHM+ECtxP0H0HzGSrARkwg==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + + qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + raml-parser@0.8.18: + resolution: {integrity: sha512-WpKlKhxN7mXJ1Kf5/7f7+EMOsXNwjI4TbrY6TkbR+bzzdFMTjz8oqPJdDkr7gA+ow5vvzCfe16+tUhmSNnkcNQ==} + hasBin: true + + raml-to-swagger@1.1.0: + resolution: {integrity: sha512-aDsSklVNG1xOAXenzmX8+Pfq+G95esQNx5WQo/qa/AtVPm3KsM6zI6hw3oYE6whocfnogwpnbJSFbTrADwpZIg==} + hasBin: true + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + read-all-stream@1.0.2: + resolution: {integrity: sha512-ZCvB3TY2z5hGzzNe7zotaFsuRt4ODw5o+EVjfDVwlFG3ihfTd0k8jy9ffWZ4V1tCm0UHscbiS9KYREaq8eGE1Q==} + engines: {node: '>=0.10.0'} + + read-pkg-up@11.0.0: + resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} + engines: {node: '>=18'} + deprecated: Renamed to read-package-up + + read-pkg-up@2.0.0: + resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} + engines: {node: '>=4'} + + read-pkg@2.0.0: + resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} + engines: {node: '>=4'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + redeyed@2.1.1: + resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + + rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + semantic-release@23.0.0: + resolution: {integrity: sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + engines: {node: '>= 0.4'} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + + should-equal@2.0.0: + resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} + + should-format@3.0.3: + resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} + + should-type-adaptors@1.1.0: + resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} + + should-type@1.4.0: + resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} + + should-util@1.0.1: + resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} + + should@13.2.3: + resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map@0.6.0: + resolution: {integrity: sha512-mTozplhTX4tLKIHYji92OTZzVyZvi+Z1qRZDeBvQFI2XUB89wrRoj/xXad3c9NZ1GPJXXRvB+k41PQCPTMC+aA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.4.0: + resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + static-eval@0.2.3: + resolution: {integrity: sha512-tAlLR3cdYw5GOEJfGqsL3YqwwldzljwqoOJ/jjFMmNRI9/iqve9RX4XE3vJs1KKsQ+ECT1u9o7a6NonewRl1lg==} + + static-eval@2.0.2: + resolution: {integrity: sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + + string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + + superagent@7.1.6: + resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} + engines: {node: '>=6.4.0 <13 || >=14'} + deprecated: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731) + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + + supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swagger-converter@1.5.1: + resolution: {integrity: sha512-u98/Gt+fAnS95WoUDgWuOiN8MymrNCUdcLoD4Q6szy4nAj9BPCVRzwvJauqqj7+jKcB1ZEKf9vacQKSXEr3OBw==} + + swagger-methods@1.0.8: + resolution: {integrity: sha512-G6baCwuHA+C5jf4FNOrosE4XlmGsdjbOjdBK4yuiDDj/ro9uR4Srj3OR84oQMT8F3qKp00tYNv0YN730oTHPZA==} + deprecated: This package is no longer being maintained. + + swagger-schema-official@2.0.0-bab6bed: + resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} + + swagger2openapi@2.9.4: + resolution: {integrity: sha512-dc9gxEkxuJYPz9y0Fx3ypsaiA2enxHxz7Q0tlyjJ01TopT2aR/EuxZhIWkslaN/Fx5FTT2OOSlP5VnvTbvIj+Q==} + hasBin: true + + sway@2.0.6: + resolution: {integrity: sha512-0HRT2WuU44XIdq+eCiMx67Bl/kiEKORP+4j+Wt89rFjoR5Dwx2hmU4PkMA6hnd48XLfS50olIac3pQGrV/wv7w==} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + timed-out@2.0.0: + resolution: {integrity: sha512-pqqJOi1rF5zNs/ps4vmbE4SFCrM4iR7LW+GHAsHqO/EumqbIWceioevYLM5xZRgQSH6gFgL9J/uB7EcJhQ9niQ==} + engines: {node: '>=0.10.0'} + + tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + + tinypool@0.8.2: + resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + + traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + + tsx@4.7.0: + resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + engines: {node: '>=18.0.0'} + hasBin: true + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-fest@4.10.2: + resolution: {integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==} + engines: {node: '>=16'} + + type-of-is@3.5.1: + resolution: {integrity: sha512-SOnx8xygcAh8lvDU2exnK2bomASfNjzB3Qz71s2tw9QnX8fkAo7aC+D0H7FV0HjRKj94CKV2Hi71kVkkO6nOxg==} + engines: {node: '>=0.10.5'} + + typedoc@0.25.7: + resolution: {integrity: sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x + + typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + + uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + + underscore@1.1.7: + resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} + + underscore@1.12.1: + resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==} + + underscore@1.7.0: + resolution: {integrity: sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urijs@1.19.11: + resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} + + uritemplate@0.3.4: + resolution: {integrity: sha512-enADBvHfhjrwxFMTVWeIIYz51SZ91uC6o2MR/NQTVljJB6HTZ8eQL3Q7JBj3RxNISA14MOwJaU3vpf5R6dyxHA==} + + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validator@10.11.0: + resolution: {integrity: sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==} + engines: {node: '>= 0.10'} + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vite-node@1.2.2: + resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.0.12: + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@1.2.2: + resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + + vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@7.0.0: + resolution: {integrity: sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yargs@9.0.1: + resolution: {integrity: sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + z-schema@3.25.1: + resolution: {integrity: sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==} + hasBin: true + +snapshots: + + '@babel/code-frame@7.23.5': + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + '@babel/helper-validator-identifier@7.22.20': {} + + '@babel/highlight@7.23.4': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + '@biomejs/biome@1.5.3': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.5.3 + '@biomejs/cli-darwin-x64': 1.5.3 + '@biomejs/cli-linux-arm64': 1.5.3 + '@biomejs/cli-linux-arm64-musl': 1.5.3 + '@biomejs/cli-linux-x64': 1.5.3 + '@biomejs/cli-linux-x64-musl': 1.5.3 + '@biomejs/cli-win32-arm64': 1.5.3 + '@biomejs/cli-win32-x64': 1.5.3 + + '@biomejs/cli-darwin-arm64@1.5.3': + optional: true + + '@biomejs/cli-darwin-x64@1.5.3': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.5.3': + optional: true + + '@biomejs/cli-linux-arm64@1.5.3': + optional: true + + '@biomejs/cli-linux-x64-musl@1.5.3': + optional: true + + '@biomejs/cli-linux-x64@1.5.3': + optional: true + + '@biomejs/cli-win32-arm64@1.5.3': + optional: true + + '@biomejs/cli-win32-x64@1.5.3': + optional: true + + '@cloudflare/json-schema-walker@0.1.1': + optional: true + + '@colors/colors@1.5.0': + optional: true + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@fastify/busboy@2.1.0': {} + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.0 + + '@octokit/auth-token@4.0.0': {} + + '@octokit/core@5.1.0': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.2 + '@octokit/request': 8.1.6 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.4': + dependencies: + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.0.2': + dependencies: + '@octokit/request': 8.1.6 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + + '@octokit/openapi-types@19.1.0': {} + + '@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.1.0)': + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.4.0 + + '@octokit/plugin-retry@6.0.1(@octokit/core@5.1.0)': + dependencies: + '@octokit/core': 5.1.0 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@8.1.3(@octokit/core@5.1.0)': + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.4.0 + bottleneck: 2.19.5 + + '@octokit/request-error@5.0.1': + dependencies: + '@octokit/types': 12.4.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@8.1.6': + dependencies: + '@octokit/endpoint': 9.0.4 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + + '@octokit/types@12.4.0': + dependencies: + '@octokit/openapi-types': 19.1.0 + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.2.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@rollup/rollup-android-arm-eabi@4.9.6': + optional: true + + '@rollup/rollup-android-arm64@4.9.6': + optional: true + + '@rollup/rollup-darwin-arm64@4.9.6': + optional: true + + '@rollup/rollup-darwin-x64@4.9.6': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.9.6': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.9.6': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.9.6': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.9.6': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.9.6': + optional: true + + '@rollup/rollup-linux-x64-musl@4.9.6': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.9.6': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.9.6': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.9.6': + optional: true + + '@semantic-release/changelog@6.0.3(semantic-release@23.0.0)': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + fs-extra: 11.2.0 + lodash: 4.17.21 + semantic-release: 23.0.0(typescript@5.3.3) + + '@semantic-release/commit-analyzer@11.1.0(semantic-release@23.0.0)': + dependencies: + conventional-changelog-angular: 7.0.0 + conventional-commits-filter: 4.0.0 + conventional-commits-parser: 5.0.0 + debug: 4.3.4 + import-from-esm: 1.3.3 + lodash-es: 4.17.21 + micromatch: 4.0.5 + semantic-release: 23.0.0(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + + '@semantic-release/error@3.0.0': {} + + '@semantic-release/error@4.0.0': {} + + '@semantic-release/git@10.0.1(semantic-release@23.0.0)': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.3.4 + dir-glob: 3.0.1 + execa: 5.1.1 + lodash: 4.17.21 + micromatch: 4.0.5 + p-reduce: 2.1.0 + semantic-release: 23.0.0(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + + '@semantic-release/github@9.2.6(semantic-release@23.0.0)': + dependencies: + '@octokit/core': 5.1.0 + '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.1.0) + '@octokit/plugin-retry': 6.0.1(@octokit/core@5.1.0) + '@octokit/plugin-throttling': 8.1.3(@octokit/core@5.1.0) + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + debug: 4.3.4 + dir-glob: 3.0.1 + globby: 14.0.0 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + issue-parser: 6.0.0 + lodash-es: 4.17.21 + mime: 4.0.1 + p-filter: 4.1.0 + semantic-release: 23.0.0(typescript@5.3.3) + url-join: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@semantic-release/npm@11.0.2(semantic-release@23.0.0)': + dependencies: + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + execa: 8.0.1 + fs-extra: 11.2.0 + lodash-es: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 8.0.0 + npm: 10.4.0 + rc: 1.2.8 + read-pkg: 9.0.1 + registry-auth-token: 5.0.2 + semantic-release: 23.0.0(typescript@5.3.3) + semver: 7.5.4 + tempy: 3.1.0 + + '@semantic-release/release-notes-generator@12.1.0(semantic-release@23.0.0)': + dependencies: + conventional-changelog-angular: 7.0.0 + conventional-changelog-writer: 7.0.1 + conventional-commits-filter: 4.0.0 + conventional-commits-parser: 5.0.0 + debug: 4.3.4 + get-stream: 7.0.1 + import-from-esm: 1.3.3 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-pkg-up: 11.0.0 + semantic-release: 23.0.0(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/merge-streams@1.0.0': {} + + '@types/estree@1.0.5': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 20.11.16 + optional: true + + '@types/node@20.11.16': + dependencies: + undici-types: 5.26.5 + + '@types/normalize-package-data@2.4.4': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 20.11.16 + optional: true + + '@vitest/expect@1.2.2': + dependencies: + '@vitest/spy': 1.2.2 + '@vitest/utils': 1.2.2 + chai: 4.4.1 + + '@vitest/runner@1.2.2': + dependencies: + '@vitest/utils': 1.2.2 + p-limit: 5.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@1.2.2': + dependencies: + magic-string: 0.30.6 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@1.2.2': + dependencies: + tinyspy: 2.2.0 + + '@vitest/utils@1.2.2': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + JSONSelect@0.4.0: + optional: true + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abbrev@1.1.1: + optional: true + + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} + + agent-base@7.1.0: + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + aggregate-error@5.0.0: + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + + ajv@5.5.2: + dependencies: + co: 4.6.0 + fast-deep-equal: 1.1.0 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.3.1 + optional: true + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-colors@4.1.3: {} + + ansi-escapes@6.2.0: + dependencies: + type-fest: 3.13.1 + + ansi-regex@2.1.1: + optional: true + + ansi-regex@3.0.1: + optional: true + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-sequence-parser@1.1.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + ansicolors@0.3.2: {} + + api-spec-converter@2.12.0: + dependencies: + bluebird: 3.7.2 + commander: 2.20.3 + composite-error: 0.1.1 + deep-sort-object: 1.0.2 + js-yaml: 3.14.1 + lodash: 4.17.21 + lodash.clonedeep: 4.5.0 + request: 2.88.2 + source-map: 0.6.0 + sway: 2.0.6 + traverse: 0.6.8 + urijs: 1.19.11 + xml2js: 0.4.23 + optionalDependencies: + apib2swagger: 1.17.1 + drafter.js: 2.6.7 + google-discovery-to-swagger: 2.1.0 + raml-parser: 0.8.18 + raml-to-swagger: 1.1.0 + swagger-converter: 1.5.1 + swagger2openapi: 2.9.4 + transitivePeerDependencies: + - supports-color + + apib-include-directive@0.1.0: + optional: true + + apib2swagger@1.17.1: + dependencies: + apib-include-directive: 0.1.0 + drafter.js: 2.6.7 + generate-schema: 2.6.0 + js-yaml: 4.1.0 + json-schema-to-openapi-schema: 0.4.0 + lodash.isequal: 4.5.0 + nopt: 3.0.6 + uritemplate: 0.3.4 + optional: true + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + argv-formatter@1.0.0: {} + + array-ify@1.0.0: {} + + asap@2.0.6: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + + assertion-error@1.1.0: {} + + asynckit@0.4.0: {} + + aws-sign2@0.7.0: {} + + aws4@1.12.0: {} + + axios-mock-adapter@1.22.0(axios@1.6.7): + dependencies: + axios: 1.6.7 + fast-deep-equal: 3.1.3 + is-buffer: 2.0.5 + + axios@1.6.7: + dependencies: + follow-redirects: 1.15.5 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + before-after-hook@2.2.3: {} + + bluebird@3.7.2: {} + + bottleneck@2.19.5: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + cac@6.7.14: {} + + call-bind@1.0.5: + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.3 + set-function-length: 1.2.0 + + call-me-maybe@1.0.2: {} + + callsites@3.1.0: {} + + camelcase@4.1.0: + optional: true + + cardinal@2.1.1: + dependencies: + ansicolors: 0.3.2 + redeyed: 2.1.1 + + caseless@0.12.0: {} + + chai@4.4.1: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@5.3.0: {} + + char-regex@1.0.2: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + cjson@0.2.1: + optional: true + + clean-stack@2.2.0: {} + + clean-stack@5.2.0: + dependencies: + escape-string-regexp: 5.0.0 + + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-table3@0.6.3: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.1.0 + + cliui@3.2.0: + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + optional: true + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + co@4.6.0: + optional: true + + code-point-at@1.1.0: + optional: true + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + colors@0.5.1: + optional: true + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@11.1.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + common-prefix@1.1.0: + optional: true + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + component-emitter@1.3.1: {} + + composite-error@0.1.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-writer@7.0.1: + dependencies: + conventional-commits-filter: 4.0.0 + handlebars: 4.7.8 + json-stringify-safe: 5.0.1 + meow: 12.1.1 + semver: 7.5.4 + split2: 4.2.0 + + conventional-commits-filter@4.0.0: {} + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + + cookiejar@2.1.4: {} + + core-js@2.6.12: {} + + core-util-is@1.0.2: {} + + core-util-is@1.0.3: {} + + cosmiconfig@9.0.0(typescript@5.3.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.3.3 + + cross-spawn@5.1.0: + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + optional: true + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.2 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + decamelize@1.2.0: + optional: true + + deep-eql@4.1.3: + dependencies: + type-detect: 4.0.8 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: + optional: true + + deep-sort-object@1.0.2: + dependencies: + is-plain-object: 2.0.4 + + define-data-property@1.1.1: + dependencies: + get-intrinsic: 1.2.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + delayed-stream@1.0.0: {} + + deprecation@2.3.1: {} + + dezalgo@1.0.4: + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + drafter.js@2.6.7: + optional: true + + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + duplexify@3.7.1: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + optional: true + + ebnf-parser@0.1.10: + optional: true + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + emoji-regex@10.3.0: {} + + emoji-regex@8.0.0: {} + + emojilib@2.4.0: {} + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + optional: true + + env-ci@11.0.0: + dependencies: + execa: 8.0.1 + java-properties: 1.0.2 + + env-paths@2.2.1: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-errors@1.0.0: {} + + es6-promise@3.3.1: + optional: true + + es6-promise@4.2.8: + optional: true + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + escalade@3.1.1: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@5.0.0: {} + + escodegen@0.0.21: + dependencies: + esprima: 1.0.4 + estraverse: 0.0.4 + optionalDependencies: + source-map: 0.6.1 + optional: true + + escodegen@0.0.28: + dependencies: + esprima: 1.0.4 + estraverse: 1.3.2 + optionalDependencies: + source-map: 0.6.1 + optional: true + + escodegen@1.14.3: + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + optional: true + + esprima@1.0.4: + optional: true + + esprima@1.2.2: + optional: true + + esprima@4.0.1: {} + + estraverse@0.0.4: + optional: true + + estraverse@1.3.2: + optional: true + + estraverse@4.3.0: + optional: true + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: + optional: true + + eventemitter3@5.0.1: {} + + execa@0.7.0: + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + optional: true + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + extend@3.0.2: {} + + extsprintf@1.3.0: {} + + faker@4.1.0: {} + + fast-deep-equal@1.1.0: + optional: true + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: + optional: true + + fast-safe-stringify@2.1.1: {} + + fastq@1.17.0: + dependencies: + reusify: 1.0.4 + + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + figures@6.0.1: + dependencies: + is-unicode-supported: 2.0.0 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-versions@5.1.0: + dependencies: + semver-regex: 4.0.5 + + follow-redirects@1.15.5: {} + + forever-agent@0.6.1: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + format-util@1.0.5: {} + + formidable@2.1.2: + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.2 + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + generate-schema@2.6.0: + dependencies: + commander: 2.20.3 + type-of-is: 3.5.1 + optional: true + + get-caller-file@1.0.3: + optional: true + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.2.3: + dependencies: + es-errors: 1.0.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + get-stream@3.0.0: + optional: true + + get-stream@6.0.1: {} + + get-stream@7.0.1: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.7.2: + dependencies: + resolve-pkg-maps: 1.0.0 + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + + git-log-parser@1.2.0: + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.5 + traverse: 0.6.8 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + globby@14.0.0: + dependencies: + '@sindresorhus/merge-streams': 1.0.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + google-discovery-to-swagger@2.1.0: + dependencies: + json-schema-compatibility: 1.1.0 + jsonpath: 1.1.1 + lodash: 4.17.21 + mime-db: 1.52.0 + mime-lookup: 0.0.2 + traverse: 0.6.8 + urijs: 1.19.11 + optional: true + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.3 + + got@2.4.0: + dependencies: + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + duplexify: 3.7.1 + infinity-agent: 1.0.2 + is-stream: 1.1.0 + lowercase-keys: 1.0.1 + object-assign: 2.1.1 + prepend-http: 1.0.4 + read-all-stream: 1.0.2 + statuses: 1.5.0 + timed-out: 2.0.0 + optional: true + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + graphlib@2.1.8: + dependencies: + lodash: 4.17.21 + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.1: + dependencies: + get-intrinsic: 1.2.3 + + has-proto@1.0.1: {} + + has-symbols@1.0.3: {} + + hasown@2.0.0: + dependencies: + function-bind: 1.1.2 + + hexoid@1.0.0: {} + + hook-std@3.0.0: {} + + hosted-git-info@2.8.9: + optional: true + + hosted-git-info@7.0.1: + dependencies: + lru-cache: 10.2.0 + + http-proxy-agent@7.0.0: + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + http-status-codes@1.4.0: + optional: true + + https-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + husky@9.0.10: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore@5.3.1: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-from-esm@1.3.3: + dependencies: + debug: 4.3.4 + import-meta-resolve: 4.0.0 + transitivePeerDependencies: + - supports-color + + import-meta-resolve@4.0.0: {} + + indent-string@4.0.0: {} + + indent-string@5.0.0: {} + + index-to-position@0.1.2: {} + + infinity-agent@1.0.2: + optional: true + + inherits@2.0.4: {} + + ini@1.3.8: {} + + into-stream@7.0.0: + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + + invert-kv@1.0.0: + optional: true + + is-arrayish@0.2.1: {} + + is-buffer@2.0.5: {} + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@1.0.0: + dependencies: + number-is-nan: 1.0.1 + optional: true + + is-fullwidth-code-point@2.0.0: + optional: true + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-stream@1.1.0: + optional: true + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + + is-typedarray@1.0.0: {} + + is-unicode-supported@2.0.0: {} + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isobject@3.0.1: {} + + isstream@0.1.2: {} + + issue-parser@6.0.0: + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + + java-properties@1.0.2: {} + + jgexml@0.3.9: + optional: true + + jison-lex@0.2.1: + dependencies: + lex-parser: 0.1.4 + nomnom: 1.5.2 + optional: true + + jison@0.4.13: + dependencies: + JSONSelect: 0.4.0 + cjson: 0.2.1 + ebnf-parser: 0.1.10 + escodegen: 0.0.21 + esprima: 1.0.4 + jison-lex: 0.2.1 + lex-parser: 0.1.4 + nomnom: 1.5.2 + optional: true + + jju@1.2.1: + optional: true + + js-base64@2.6.4: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbn@0.1.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-refs@3.0.15: + dependencies: + commander: 4.1.1 + graphlib: 2.1.8 + js-yaml: 3.14.1 + lodash: 4.17.21 + native-promise-only: 0.8.1 + path-loader: 1.0.12 + slash: 3.0.0 + uri-js: 4.4.1 + transitivePeerDependencies: + - supports-color + + json-schema-compatibility@1.1.0: + optional: true + + json-schema-faker@0.5.5: + dependencies: + json-schema-ref-parser: 6.1.0 + jsonpath-plus: 7.2.0 + + json-schema-ref-parser@3.3.1: + dependencies: + call-me-maybe: 1.0.2 + debug: 3.2.7 + es6-promise: 4.2.8 + js-yaml: 3.14.1 + ono: 4.0.11 + z-schema: 3.25.1 + transitivePeerDependencies: + - supports-color + optional: true + + json-schema-ref-parser@6.1.0: + dependencies: + call-me-maybe: 1.0.2 + js-yaml: 3.14.1 + ono: 4.0.11 + + json-schema-to-openapi-schema@0.4.0: + dependencies: + '@cloudflare/json-schema-walker': 0.1.1 + optional: true + + json-schema-traverse@0.3.1: + optional: true + + json-schema-traverse@0.4.1: {} + + json-schema@0.4.0: {} + + json-stringify-safe@5.0.1: {} + + jsonc-parser@3.2.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsonpath-plus@7.2.0: {} + + jsonpath@0.2.12: + dependencies: + esprima: 1.2.2 + jison: 0.4.13 + static-eval: 0.2.3 + underscore: 1.7.0 + optional: true + + jsonpath@1.1.1: + dependencies: + esprima: 1.2.2 + static-eval: 2.0.2 + underscore: 1.12.1 + optional: true + + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + lcid@1.0.0: + dependencies: + invert-kv: 1.0.0 + optional: true + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + optional: true + + lex-parser@0.1.4: + optional: true + + lilconfig@3.0.0: {} + + lines-and-columns@1.2.4: {} + + lint-staged@15.2.1: + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + + listr2@8.0.1: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.1 + wrap-ansi: 9.0.0 + + load-json-file@2.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + strip-bom: 3.0.0 + optional: true + + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + + local-pkg@0.5.0: + dependencies: + mlly: 1.5.0 + pkg-types: 1.0.3 + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + lodash-es@4.17.21: {} + + lodash.capitalize@4.2.1: {} + + lodash.clonedeep@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.get@4.4.2: {} + + lodash.isequal@4.5.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.uniqby@4.7.0: {} + + lodash@4.17.21: {} + + log-update@6.0.0: + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lowercase-keys@1.0.1: + optional: true + + lru-cache@10.2.0: {} + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + optional: true + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lunr@2.3.9: {} + + magic-string@0.30.6: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + marked-terminal@6.2.0(marked@11.2.0): + dependencies: + ansi-escapes: 6.2.0 + cardinal: 2.1.1 + chalk: 5.3.0 + cli-table3: 0.6.3 + marked: 11.2.0 + node-emoji: 2.1.3 + supports-hyperlinks: 3.0.0 + + marked@11.2.0: {} + + marked@4.3.0: {} + + mem@1.1.0: + dependencies: + mimic-fn: 1.2.0 + optional: true + + meow@12.1.1: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-lookup@0.0.2: + optional: true + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@2.6.0: {} + + mime@4.0.1: {} + + mimic-fn@1.2.0: + optional: true + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + mlly@1.5.0: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.3.2 + + ms@2.1.2: {} + + nanoid@3.3.7: {} + + native-promise-only@0.8.1: {} + + neo-async@2.6.2: {} + + nerf-dart@1.0.0: {} + + node-emoji@2.1.3: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-fetch@1.7.3: + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 optional: true - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - requiresBuild: true - dev: true + node-readfiles@0.2.0: + dependencies: + es6-promise: 3.3.1 + optional: true - /object-assign@2.1.1: - resolution: {integrity: sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + nomnom@1.5.2: + dependencies: + colors: 0.5.1 + underscore: 1.1.7 optional: true - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + nopt@3.0.6: + dependencies: + abbrev: 1.1.1 optional: true - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + optional: true - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + normalize-package-data@6.0.0: + dependencies: + hosted-git-info: 7.0.1 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + + normalize-url@8.0.0: {} + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + optional: true + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.2.0: + dependencies: + path-key: 4.0.0 + + npm@10.4.0: {} + + number-is-nan@1.0.1: + optional: true + + oauth-sign@0.9.0: {} + + object-assign@2.1.1: + optional: true + + object-assign@4.1.1: + optional: true + + object-inspect@1.13.1: {} + + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /ono@4.0.11: - resolution: {integrity: sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==} + ono@4.0.11: dependencies: format-util: 1.0.5 - dev: true - /openapi-typescript@6.7.4: - resolution: {integrity: sha512-EZyeW9Wy7UDCKv0iYmKrq2pVZtquXiD/YHiUClAKqiMi42nodx/EQH11K6fLqjt1IZlJmVokrAsExsBMM2RROQ==} - hasBin: true + openapi-typescript@6.7.4: dependencies: ansi-colors: 4.1.3 fast-glob: 3.3.2 @@ -3406,12 +4600,8 @@ packages: supports-color: 9.4.0 undici: 5.28.2 yargs-parser: 21.1.1 - dev: true - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - requiresBuild: true + optionator@0.8.3: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -3419,345 +4609,179 @@ packages: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.5 - dev: true optional: true - /os-locale@2.1.0: - resolution: {integrity: sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==} - engines: {node: '>=4'} - requiresBuild: true + os-locale@2.1.0: dependencies: execa: 0.7.0 lcid: 1.0.0 mem: 1.1.0 - dev: true optional: true - /p-each-series@3.0.0: - resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} - engines: {node: '>=12'} - dev: true + p-each-series@3.0.0: {} - /p-filter@4.1.0: - resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} - engines: {node: '>=18'} + p-filter@4.1.0: dependencies: p-map: 7.0.1 - dev: true - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - requiresBuild: true - dev: true + p-finally@1.0.0: optional: true - /p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - dev: true + p-is-promise@3.0.0: {} - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - requiresBuild: true + p-limit@1.3.0: dependencies: p-try: 1.0.0 - dev: true - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + p-limit@5.0.0: dependencies: yocto-queue: 1.0.0 - dev: true - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - requiresBuild: true + p-locate@2.0.0: dependencies: p-limit: 1.3.0 - dev: true - /p-map@7.0.1: - resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} - engines: {node: '>=18'} - dev: true + p-map@7.0.1: {} - /p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} - dev: true + p-reduce@2.1.0: {} - /p-reduce@3.0.0: - resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} - engines: {node: '>=12'} - dev: true + p-reduce@3.0.0: {} - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - requiresBuild: true - dev: true + p-try@1.0.0: {} - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - dev: true - /parse-json@2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true + parse-json@2.2.0: dependencies: error-ex: 1.3.2 - dev: true optional: true - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true - /parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} + parse-json@8.1.0: dependencies: '@babel/code-frame': 7.23.5 index-to-position: 0.1.2 type-fest: 4.10.2 - dev: true - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - requiresBuild: true - dev: true + path-exists@3.0.0: {} - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - requiresBuild: true - dev: true + path-key@2.0.1: optional: true - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true + path-key@3.1.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-key@4.0.0: {} - /path-loader@1.0.12: - resolution: {integrity: sha512-n7oDG8B+k/p818uweWrOixY9/Dsr89o2TkCm6tOTex3fpdo2+BFDgR+KpB37mGKBRsBAlR8CIJMFN0OEy/7hIQ==} + path-loader@1.0.12: dependencies: native-promise-only: 0.8.1 superagent: 7.1.6 transitivePeerDependencies: - supports-color - dev: true - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - requiresBuild: true - dev: true + path-parse@1.0.7: optional: true - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + path-to-regexp@1.8.0: dependencies: isarray: 0.0.1 - dev: true - /path-type@2.0.0: - resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} - engines: {node: '>=4'} - requiresBuild: true + path-type@2.0.0: dependencies: pify: 2.3.0 - dev: true optional: true - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true + path-type@4.0.0: {} - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - dev: true + path-type@5.0.0: {} - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true + pathe@1.1.2: {} - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true + pathval@1.1.1: {} - /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - requiresBuild: true - dev: true + performance-now@2.1.0: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true + picomatch@2.3.1: {} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + pidtree@0.6.0: {} - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + pify@2.3.0: optional: true - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true + pify@3.0.0: {} - /pkg-conf@2.1.0: - resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} - engines: {node: '>=4'} + pkg-conf@2.1.0: dependencies: find-up: 2.1.0 load-json-file: 4.0.0 - dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + pkg-types@1.0.3: dependencies: jsonc-parser: 3.2.1 mlly: 1.5.0 pathe: 1.1.2 - dev: true - /pluralize@1.1.6: - resolution: {integrity: sha512-UZuZBoEfkgswguqcjVu6V59DVrILlC7GjclesLS6SA+u/+esH/f1FBW+BtzSMAz1mENIlM0Eo/89AIjxAFidQA==} - requiresBuild: true - dev: true + pluralize@1.1.6: optional: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.33: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - requiresBuild: true - dev: true + prelude-ls@1.1.2: optional: true - /prepend-http@1.0.4: - resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + prepend-http@1.0.4: optional: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - requiresBuild: true - dev: true + process-nextick-args@2.0.1: {} - /proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - dev: true + proto-list@1.2.4: {} - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@1.1.0: {} - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - requiresBuild: true - dev: true + pseudomap@1.0.2: optional: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - requiresBuild: true - dev: true + psl@1.9.0: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - requiresBuild: true - dev: true + punycode@2.3.1: {} - /q@0.9.7: - resolution: {integrity: sha512-ijt0LhxWClXBtc1RCt8H0WhlZLAdVX26nWbpsJy+Hblmp81d2F/pFsvlrJhJDDruFHM+ECtxP0H0HzGSrARkwg==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - requiresBuild: true - dev: true + q@0.9.7: optional: true - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} + qs@6.11.2: dependencies: side-channel: 1.0.4 - dev: true - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - requiresBuild: true - dev: true + qs@6.5.3: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true + queue-microtask@1.2.3: {} - /raml-parser@0.8.18: - resolution: {integrity: sha512-WpKlKhxN7mXJ1Kf5/7f7+EMOsXNwjI4TbrY6TkbR+bzzdFMTjz8oqPJdDkr7gA+ow5vvzCfe16+tUhmSNnkcNQ==} - hasBin: true - requiresBuild: true + raml-parser@0.8.18: dependencies: got: 2.4.0 jju: 1.2.1 @@ -3768,88 +4792,57 @@ packages: uritemplate: 0.3.4 transitivePeerDependencies: - supports-color - dev: true optional: true - /raml-to-swagger@1.1.0: - resolution: {integrity: sha512-aDsSklVNG1xOAXenzmX8+Pfq+G95esQNx5WQo/qa/AtVPm3KsM6zI6hw3oYE6whocfnogwpnbJSFbTrADwpZIg==} - hasBin: true - requiresBuild: true + raml-to-swagger@1.1.0: dependencies: http-status-codes: 1.4.0 json-schema-compatibility: 1.1.0 jsonpath: 0.2.12 lodash: 4.17.21 urijs: 1.19.11 - dev: true optional: true - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: true - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.2.0: {} - /read-all-stream@1.0.2: - resolution: {integrity: sha512-ZCvB3TY2z5hGzzNe7zotaFsuRt4ODw5o+EVjfDVwlFG3ihfTd0k8jy9ffWZ4V1tCm0UHscbiS9KYREaq8eGE1Q==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + read-all-stream@1.0.2: optional: true - /read-pkg-up@11.0.0: - resolution: {integrity: sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==} - engines: {node: '>=18'} - deprecated: Renamed to read-package-up + read-pkg-up@11.0.0: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 type-fest: 4.10.2 - dev: true - /read-pkg-up@2.0.0: - resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} - engines: {node: '>=4'} - requiresBuild: true + read-pkg-up@2.0.0: dependencies: find-up: 2.1.0 read-pkg: 2.0.0 - dev: true optional: true - /read-pkg@2.0.0: - resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} - engines: {node: '>=4'} - requiresBuild: true + read-pkg@2.0.0: dependencies: load-json-file: 2.0.0 normalize-package-data: 2.5.0 path-type: 2.0.0 - dev: true optional: true - /read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 8.1.0 type-fest: 4.10.2 unicorn-magic: 0.1.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - requiresBuild: true + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -3858,35 +4851,22 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /redeyed@2.1.1: - resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + redeyed@2.1.1: dependencies: esprima: 4.0.1 - dev: true - /registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + registry-auth-token@5.0.2: dependencies: '@pnpm/npm-conf': 2.2.2 - dev: true - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - requiresBuild: true + request@2.88.2: dependencies: aws-sign2: 0.7.0 aws4: 1.12.0 @@ -3908,66 +4888,35 @@ packages: tough-cookie: 2.5.0 tunnel-agent: 0.6.0 uuid: 3.4.0 - dev: true - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + require-directory@2.1.1: {} - /require-main-filename@1.0.1: - resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} - requiresBuild: true - dev: true + require-main-filename@1.0.1: optional: true - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - requiresBuild: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true optional: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@4.0.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true + reusify@1.0.4: {} - /rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} - dev: true + rfdc@1.3.1: {} - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup@4.9.6: dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -3985,37 +4934,20 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.9.6 '@rollup/rollup-win32-x64-msvc': 4.9.6 fsevents: 2.3.3 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - requiresBuild: true - dev: true + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.2.1: {} - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - requiresBuild: true - dev: true + safer-buffer@2.1.2: {} - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - requiresBuild: true - dev: true + sax@1.3.0: {} - /semantic-release@23.0.0(typescript@5.3.3): - resolution: {integrity: sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg==} - engines: {node: '>=20.8.1'} - hasBin: true + semantic-release@23.0.0(typescript@5.3.3): dependencies: '@semantic-release/commit-analyzer': 11.1.0(semantic-release@23.0.0) '@semantic-release/error': 4.0.0 @@ -4049,269 +4981,151 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + semver-diff@4.0.0: dependencies: semver: 7.5.4 - dev: true - /semver-regex@4.0.5: - resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} - engines: {node: '>=12'} - dev: true + semver-regex@4.0.5: {} - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - requiresBuild: true - dev: true + semver@5.7.2: optional: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - requiresBuild: true - dev: true + set-blocking@2.0.0: optional: true - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} - engines: {node: '>= 0.4'} + set-function-length@1.2.0: dependencies: define-data-property: 1.1.1 function-bind: 1.1.2 get-intrinsic: 1.2.3 gopd: 1.0.1 has-property-descriptors: 1.0.1 - dev: true - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - requiresBuild: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 - dev: true optional: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: true - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + shebang-regex@1.0.0: optional: true - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true + shebang-regex@3.0.0: {} - /shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + shiki@0.14.7: dependencies: ansi-sequence-parser: 1.1.1 jsonc-parser: 3.2.1 vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 - dev: true - /should-equal@2.0.0: - resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} - requiresBuild: true + should-equal@2.0.0: dependencies: should-type: 1.4.0 - dev: true optional: true - /should-format@3.0.3: - resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} - requiresBuild: true + should-format@3.0.3: dependencies: should-type: 1.4.0 should-type-adaptors: 1.1.0 - dev: true optional: true - /should-type-adaptors@1.1.0: - resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} - requiresBuild: true + should-type-adaptors@1.1.0: dependencies: should-type: 1.4.0 should-util: 1.0.1 - dev: true optional: true - /should-type@1.4.0: - resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} - requiresBuild: true - dev: true + should-type@1.4.0: optional: true - /should-util@1.0.1: - resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} - requiresBuild: true - dev: true + should-util@1.0.1: optional: true - /should@13.2.3: - resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} - requiresBuild: true + should@13.2.3: dependencies: should-equal: 2.0.0 should-format: 3.0.3 should-type: 1.4.0 should-type-adaptors: 1.1.0 should-util: 1.0.1 - dev: true optional: true - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.4: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.3 object-inspect: 1.13.1 - dev: true - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true + siginfo@2.0.0: {} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - requiresBuild: true - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /signale@1.4.0: - resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} - engines: {node: '>=6'} + signale@1.4.0: dependencies: chalk: 2.4.2 figures: 2.0.0 pkg-conf: 2.1.0 - dev: true - /skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} - engines: {node: '>=8'} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 - dev: true - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true + slash@3.0.0: {} - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: true + slash@5.1.0: {} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.0.2: {} - /source-map@0.6.0: - resolution: {integrity: sha512-mTozplhTX4tLKIHYji92OTZzVyZvi+Z1qRZDeBvQFI2XUB89wrRoj/xXad3c9NZ1GPJXXRvB+k41PQCPTMC+aA==} - engines: {node: '>=0.10.0'} - dev: true + source-map@0.6.0: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + source-map@0.6.1: {} - /spawn-error-forwarder@1.0.0: - resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} - dev: true + spawn-error-forwarder@1.0.0: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - requiresBuild: true + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.16 - dev: true - /spdx-exceptions@2.4.0: - resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} - requiresBuild: true - dev: true + spdx-exceptions@2.4.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - requiresBuild: true + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.4.0 spdx-license-ids: 3.0.16 - dev: true - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - requiresBuild: true - dev: true + spdx-license-ids@3.0.16: {} - /split2@1.0.0: - resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + split2@1.0.0: dependencies: through2: 2.0.5 - dev: true - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: true + split2@4.2.0: {} - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + sprintf-js@1.0.3: {} - /sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true + sshpk@1.18.0: dependencies: asn1: 0.2.6 assert-plus: 1.0.0 @@ -4322,179 +5136,101 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 - dev: true - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true + stackback@0.0.2: {} - /static-eval@0.2.3: - resolution: {integrity: sha512-tAlLR3cdYw5GOEJfGqsL3YqwwldzljwqoOJ/jjFMmNRI9/iqve9RX4XE3vJs1KKsQ+ECT1u9o7a6NonewRl1lg==} - requiresBuild: true + static-eval@0.2.3: dependencies: escodegen: 0.0.28 - dev: true optional: true - /static-eval@2.0.2: - resolution: {integrity: sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==} - requiresBuild: true + static-eval@2.0.2: dependencies: escodegen: 1.14.3 - dev: true optional: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - requiresBuild: true - dev: true + statuses@1.5.0: optional: true - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true + std-env@3.7.0: {} - /stream-combiner2@1.1.1: - resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 readable-stream: 2.3.8 - dev: true - /stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - requiresBuild: true - dev: true + stream-shift@1.0.3: optional: true - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.3.2: {} - /string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + string-width@1.0.2: dependencies: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 - dev: true optional: true - /string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - requiresBuild: true + string-width@2.1.1: dependencies: is-fullwidth-code-point: 2.0.0 strip-ansi: 4.0.0 - dev: true optional: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} - engines: {node: '>=18'} + string-width@7.1.0: dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - requiresBuild: true + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - requiresBuild: true + strip-ansi@3.0.1: dependencies: ansi-regex: 2.1.1 - dev: true optional: true - /strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} - requiresBuild: true + strip-ansi@4.0.0: dependencies: ansi-regex: 3.0.1 - dev: true optional: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - requiresBuild: true - dev: true + strip-bom@3.0.0: {} - /strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + strip-eof@1.0.0: optional: true - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: true + strip-json-comments@2.0.1: {} - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + strip-literal@1.3.0: dependencies: acorn: 8.11.3 - dev: true - /superagent@7.1.6: - resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} - engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731) + superagent@7.1.6: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 @@ -4509,64 +5245,36 @@ packages: semver: 7.5.4 transitivePeerDependencies: - supports-color - dev: true - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - dev: true + supports-color@9.4.0: {} - /supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} - engines: {node: '>=14.18'} + supports-hyperlinks@3.0.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - requiresBuild: true - dev: true + supports-preserve-symlinks-flag@1.0.0: optional: true - /swagger-converter@1.5.1: - resolution: {integrity: sha512-u98/Gt+fAnS95WoUDgWuOiN8MymrNCUdcLoD4Q6szy4nAj9BPCVRzwvJauqqj7+jKcB1ZEKf9vacQKSXEr3OBw==} - requiresBuild: true + swagger-converter@1.5.1: dependencies: common-prefix: 1.1.0 urijs: 1.19.11 - dev: true optional: true - /swagger-methods@1.0.8: - resolution: {integrity: sha512-G6baCwuHA+C5jf4FNOrosE4XlmGsdjbOjdBK4yuiDDj/ro9uR4Srj3OR84oQMT8F3qKp00tYNv0YN730oTHPZA==} - deprecated: This package is no longer being maintained. - dev: true + swagger-methods@1.0.8: {} - /swagger-schema-official@2.0.0-bab6bed: - resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} - dev: true + swagger-schema-official@2.0.0-bab6bed: {} - /swagger2openapi@2.9.4: - resolution: {integrity: sha512-dc9gxEkxuJYPz9y0Fx3ypsaiA2enxHxz7Q0tlyjJ01TopT2aR/EuxZhIWkslaN/Fx5FTT2OOSlP5VnvTbvIj+Q==} - hasBin: true - requiresBuild: true + swagger2openapi@2.9.4: dependencies: ajv: 5.5.2 call-me-maybe: 1.0.2 @@ -4577,11 +5285,9 @@ packages: node-readfiles: 0.2.0 should: 13.2.3 yargs: 9.0.1 - dev: true optional: true - /sway@2.0.6: - resolution: {integrity: sha512-0HRT2WuU44XIdq+eCiMx67Bl/kiEKORP+4j+Wt89rFjoR5Dwx2hmU4PkMA6hnd48XLfS50olIac3pQGrV/wv7w==} + sway@2.0.6: dependencies: debug: 3.2.7 faker: 4.1.0 @@ -4597,292 +5303,147 @@ packages: z-schema: 3.25.1 transitivePeerDependencies: - supports-color - dev: true - /temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - dev: true + temp-dir@3.0.0: {} - /tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} + tempy@3.1.0: dependencies: is-stream: 3.0.0 temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 - dev: true - /text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - dev: true + text-extensions@2.4.0: {} - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true + through@2.3.8: {} - /timed-out@2.0.0: - resolution: {integrity: sha512-pqqJOi1rF5zNs/ps4vmbE4SFCrM4iR7LW+GHAsHqO/EumqbIWceioevYLM5xZRgQSH6gFgL9J/uB7EcJhQ9niQ==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + timed-out@2.0.0: optional: true - /tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - dev: true + tinybench@2.6.0: {} - /tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} - engines: {node: '>=14.0.0'} - dev: true + tinypool@0.8.2: {} - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - dev: true + tinyspy@2.2.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - requiresBuild: true + tough-cookie@2.5.0: dependencies: psl: 1.9.0 punycode: 2.3.1 - dev: true - /traverse@0.6.8: - resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} - engines: {node: '>= 0.4'} - dev: true + traverse@0.6.8: {} - /tsx@4.7.0: - resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} - engines: {node: '>=18.0.0'} - hasBin: true + tsx@4.7.0: dependencies: esbuild: 0.19.12 get-tsconfig: 4.7.2 optionalDependencies: fsevents: 2.3.3 - dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - requiresBuild: true + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 - dev: true - /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - requiresBuild: true - dev: true + tweetnacl@0.14.5: {} - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - requiresBuild: true + type-check@0.3.2: dependencies: prelude-ls: 1.1.2 - dev: true optional: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true + type-fest@2.19.0: {} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true + type-fest@3.13.1: {} - /type-fest@4.10.2: - resolution: {integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==} - engines: {node: '>=16'} - dev: true + type-fest@4.10.2: {} - /type-of-is@3.5.1: - resolution: {integrity: sha512-SOnx8xygcAh8lvDU2exnK2bomASfNjzB3Qz71s2tw9QnX8fkAo7aC+D0H7FV0HjRKj94CKV2Hi71kVkkO6nOxg==} - engines: {node: '>=0.10.5'} - requiresBuild: true - dev: true + type-of-is@3.5.1: optional: true - /typedoc@0.25.7(typescript@5.3.3): - resolution: {integrity: sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==} - engines: {node: '>= 16'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x + typedoc@0.25.7(typescript@5.3.3): dependencies: lunr: 2.3.9 marked: 4.3.0 minimatch: 9.0.3 shiki: 0.14.7 typescript: 5.3.3 - dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true + typescript@5.3.3: {} - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true + ufo@1.3.2: {} - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + uglify-js@3.17.4: optional: true - /underscore@1.1.7: - resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==} - requiresBuild: true - dev: true + underscore@1.1.7: optional: true - /underscore@1.12.1: - resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==} - requiresBuild: true - dev: true + underscore@1.12.1: optional: true - /underscore@1.7.0: - resolution: {integrity: sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA==} - requiresBuild: true - dev: true + underscore@1.7.0: optional: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true + undici-types@5.26.5: {} - /undici@5.28.2: - resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} - engines: {node: '>=14.0'} + undici@5.28.2: dependencies: '@fastify/busboy': 2.1.0 - dev: true - /unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - dev: true + unicode-emoji-modifier-base@1.0.0: {} - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: true + unicorn-magic@0.1.0: {} - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: true - /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - dev: true + universal-user-agent@6.0.1: {} - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.1: {} - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - requiresBuild: true + uri-js@4.4.1: dependencies: punycode: 2.3.1 - dev: true - /urijs@1.19.11: - resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} - dev: true + urijs@1.19.11: {} - /uritemplate@0.3.4: - resolution: {integrity: sha512-enADBvHfhjrwxFMTVWeIIYz51SZ91uC6o2MR/NQTVljJB6HTZ8eQL3Q7JBj3RxNISA14MOwJaU3vpf5R6dyxHA==} - requiresBuild: true - dev: true + uritemplate@0.3.4: optional: true - /url-join@5.0.0: - resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + url-join@5.0.0: {} - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - requiresBuild: true - dev: true + uuid@3.4.0: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - requiresBuild: true + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /validator@10.11.0: - resolution: {integrity: sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==} - engines: {node: '>= 0.10'} - dev: true + validator@10.11.0: {} - /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - requiresBuild: true + verror@1.10.0: dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.3.0 - dev: true - /vite-node@1.2.2(@types/node@20.11.16): - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vite-node@1.2.2(@types/node@20.11.16): dependencies: cac: 6.7.14 debug: 4.3.4 @@ -4898,35 +5459,8 @@ packages: - sugarss - supports-color - terser - dev: true - /vite@5.0.12(@types/node@20.11.16): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@5.0.12(@types/node@20.11.16): dependencies: '@types/node': 20.11.16 esbuild: 0.19.12 @@ -4934,32 +5468,8 @@ packages: rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 - dev: true - /vitest@1.2.2(@types/node@20.11.16): - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + vitest@1.2.2(@types/node@20.11.16): dependencies: '@types/node': 20.11.16 '@vitest/expect': 1.2.2 @@ -4991,151 +5501,82 @@ packages: - sugarss - supports-color - terser - dev: true - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: true + vscode-oniguruma@1.7.0: {} - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: true + vscode-textmate@8.0.0: {} - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - requiresBuild: true - dev: true + which-module@2.0.1: optional: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - requiresBuild: true + which@1.3.1: dependencies: isexe: 2.0.0 - dev: true optional: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: true - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true + word-wrap@1.2.5: optional: true - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + wordwrap@1.0.0: {} - /wrap-ansi@2.1.0: - resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} - engines: {node: '>=0.10.0'} - requiresBuild: true + wrap-ansi@2.1.0: dependencies: string-width: 1.0.2 strip-ansi: 3.0.1 - dev: true optional: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 string-width: 7.1.0 strip-ansi: 7.1.0 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + wrappy@1.0.2: {} - /xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} - engines: {node: '>=4.0.0'} + xml2js@0.4.23: dependencies: sax: 1.3.0 xmlbuilder: 11.0.1 - dev: true - /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: true + xmlbuilder@11.0.1: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xtend@4.0.2: {} - /y18n@3.2.2: - resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} - requiresBuild: true - dev: true + y18n@3.2.2: optional: true - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - requiresBuild: true - dev: true + yallist@2.1.2: optional: true - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true + yallist@4.0.0: {} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml@2.3.4: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs-parser@7.0.0: - resolution: {integrity: sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==} - requiresBuild: true + yargs-parser@7.0.0: dependencies: camelcase: 4.1.0 - dev: true optional: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -5144,11 +5585,8 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yargs@9.0.1: - resolution: {integrity: sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==} - requiresBuild: true + yargs@9.0.1: dependencies: camelcase: 4.1.0 cliui: 3.2.0 @@ -5163,17 +5601,11 @@ packages: which-module: 2.0.1 y18n: 3.2.2 yargs-parser: 7.0.0 - dev: true optional: true - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true + yocto-queue@1.0.0: {} - /z-schema@3.25.1: - resolution: {integrity: sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==} - hasBin: true + z-schema@3.25.1: dependencies: core-js: 2.6.12 lodash.get: 4.4.2 @@ -5181,4 +5613,3 @@ packages: validator: 10.11.0 optionalDependencies: commander: 2.20.3 - dev: true diff --git a/scripts/update-ts-definitions.ts b/scripts/update-ts-definitions.ts index ca22b6c..eb63bba 100644 --- a/scripts/update-ts-definitions.ts +++ b/scripts/update-ts-definitions.ts @@ -1,6 +1,7 @@ import converter from 'api-spec-converter' import openapiTS from "openapi-typescript"; import * as fs from "fs"; +import {mkdirSync} from "node:fs"; converter.convert({ from: 'wadl', @@ -11,12 +12,34 @@ converter.convert({ return result; }).then(async result => { - const schema = await openapiTS('openapi.json', {}) + mkdirSync('src/generated', { recursive: true }) + + try { + const schema = await openapiTS('openapi.json', {}) + fs.writeFileSync('src/generated/openapi-server.ts', schema) + } catch(error) { + console.error("Error while downloading jira rest api schema", error) + } + + try { const cloudSchema = await openapiTS('https://dac-static.atlassian.com/cloud/jira/platform/swagger-v3.v3.json', {}) - const softwareSchema = await openapiTS('https://dac-static.atlassian.com/cloud/jira/software/swagger.v3.json?_v=1.6844.0-0.1297.0', {}) - const serviceDeskSchema = await openapiTS('https://dac-static.atlassian.com/cloud/jira/service-desk/swagger.v3.json', {}) - fs.writeFileSync('src/generated/openapi-server.ts', schema) - fs.writeFileSync('src/generated/openapi-cloud.ts', cloudSchema) - fs.writeFileSync('src/generated/openapi-software.ts', softwareSchema) - fs.writeFileSync('src/generated/openapi-service-desk.ts', serviceDeskSchema) + fs.writeFileSync('src/generated/openapi-cloud.ts', cloudSchema) + } catch(error) { + console.error("Error while downloading jira cloud api schema", error) + + } + try { + const softwareSchema = await openapiTS('https://dac-static.atlassian.com/cloud/jira/software/swagger.v3.json', {}) + fs.writeFileSync('src/generated/openapi-software.ts', softwareSchema) + } catch(error) { + console.error("Error while downloading jira software api schema", error) + } + try { + const serviceDeskSchema = await openapiTS('https://dac-static.atlassian.com/cloud/jira/service-desk/swagger.v3.json', {}) + + + fs.writeFileSync('src/generated/openapi-service-desk.ts', serviceDeskSchema) + } catch(error) { + console.error("Error while downloading jira service desk api schema", error) + } }) diff --git a/src/generated/openapi-cloud.ts b/src/generated/openapi-cloud.ts index db4a373..08b349c 100644 --- a/src/generated/openapi-cloud.ts +++ b/src/generated/openapi-cloud.ts @@ -3,6 +3,7 @@ * Do not make direct changes to the file. */ + export interface paths { "/rest/api/3/announcementBanner": { /** @@ -302,6 +303,93 @@ export interface paths { */ get: operations["getAllSystemAvatars"]; }; + "/rest/api/3/bulk/issues/fields": { + /** + * Get bulk editable fields + * @description Use this API to get a list of fields visible to the user to perform bulk edit operations. You can pass single or multiple issues in the query to get eligible editable fields. This API uses pagination to return responses, delivering 50 fields at a time. + * + * This method is experimental and may change. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in all projects that contain the selected issues. + */ + get: operations["getBulkEditableFields"]; + /** + * Bulk edit issues + * @description Use this API to submit a bulk edit request and simultaneously edit multiple issues. There are limits applied to the number of issues and fields that can be edited. A single request can accommodate a maximum of 1000 issues (including subtasks) and 200 fields. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in all projects that contain the selected issues. + */ + post: operations["submitBulkEdit"]; + }; + "/rest/api/3/bulk/issues/move": { + /** + * Bulk move issues + * @description Use this API to submit a bulk issue move request. You can move multiple issues, but they must all be moved to and from a single project, issue type, and parent. You can't move more than 1000 issues (including subtasks) at once. + * + * #### Scenarios: #### + * + * This is an early version of the API and it doesn't have full feature parity with the Bulk Move UI experience. + * + * * Moving issue of type A to issue of type B in the same project or a different project: `SUPPORTED` + * * Moving multiple issues of type A in one project to multiple issues of type B in the same project or a different project: **`SUPPORTED`** + * * Moving a standard parent issue of type A with its multiple subtask issue types in one project to standard issue of type B and multiple subtask issue types in the same project or a different project: `SUPPORTED` + * * Moving an epic issue with its child issues to a different project without losing their relation: `NOT SUPPORTED` + * (Workaround: Move them individually and stitch the relationship back with the Bulk Edit API) + * + * #### Limits applied to bulk issue moves: #### + * + * When using the bulk move, keep in mind that there are limits on the number of issues and fields you can include. + * + * * You can move up to 1,000 issues in a single operation, including any subtasks. + * * All issues must originate from the same project and share the same issue type and parent. + * * The total combined number of fields across all issues must not exceed 1,500,000. For example, if each issue includes 15,000 fields, then the maximum number of issues that can be moved is 100. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Move [issues permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in source projects. + * * Create [issues permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in destination projects. + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in destination projects, if moving subtasks only. + */ + post: operations["submitBulkMove"]; + }; + "/rest/api/3/bulk/queue/{taskId}": { + /** + * Get bulk issue operation progress + * @description Use this to get the progress state for the specified bulk operation `taskId`. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Administer Jira [global permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/), or be the creator of the task. + * + * If the task is running, this resource will return: + * + * {"taskId":"10779","status":"RUNNING","progressPercent":65,"submittedBy":{"accountId":"5b10a2844c20165700ede21g"},"created":1690180055963,"started":1690180056206,"updated":169018005829} + * + * If the task has completed, then this resource will return: + * + * {"processedAccessibleIssues":[10001,10002],"created":1709189449954,"progressPercent":100,"started":1709189450154,"status":"COMPLETE","submittedBy":{"accountId":"5b10a2844c20165700ede21g"},"invalidOrInaccessibleIssueCount":0,"taskId":"10000","totalIssueCount":2,"updated":1709189450354} + * + * **Note:** You can view task progress for up to 14 days from creation. + */ + get: operations["getBulkOperationProgress"]; + }; + "/rest/api/3/classification-levels": { + /** + * Get all classification levels + * @description Returns all classification levels. + * + * **[Permissions](#permissions) required:** None. + */ + get: operations["getAllUserDataClassificationLevels"]; + }; "/rest/api/3/comment/list": { /** * Get comments by IDs @@ -374,6 +462,15 @@ export interface paths { delete: operations["deleteCommentProperty"]; }; "/rest/api/3/component": { + /** + * Find components for projects + * @description Returns a [paginated](#pagination) list of all components in a project, including global (Compass) components when applicable. + * + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + */ + get: operations["findComponentsForProjects"]; /** * Create component * @description Creates a component. Use components to provide containers for issues within a project. Use components to provide containers for issues within a project. @@ -689,6 +786,20 @@ export interface paths { */ post: operations["copyDashboard"]; }; + "/rest/api/3/data-policy": { + /** + * Get data policy for the workspace + * @description Returns data policy for the workspace. + */ + get: operations["getPolicy"]; + }; + "/rest/api/3/data-policy/project": { + /** + * Get data policy for projects + * @description Returns data policies for the projects specified in the request. + */ + get: operations["getPolicies"]; + }; "/rest/api/3/events": { /** * Get events @@ -1039,6 +1150,17 @@ export interface paths { */ delete: operations["deleteCustomFieldOption"]; }; + "/rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}/issue": { + /** + * Replace custom field options + * @description Replaces the options of a custom field. + * + * Note that this operation **only works for issue field select list options created in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options) resource**, it cannot be used with issue field select list options created by Connect or Forge apps. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + delete: operations["replaceCustomFieldOption"]; + }; "/rest/api/3/field/{fieldId}/context/{contextId}/project": { /** * Assign custom field context to projects @@ -1267,14 +1389,14 @@ export interface paths { }; "/rest/api/3/fieldconfigurationscheme": { /** - * Get all fieldg rnfiguration schemes + * Get all field configuration schemes * @description Returns a [paginated](#pagination) list of field configuration schemes. * * Only field configuration schemes used in classic projects are returned. * * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ - get: operations["getAllFieldgRnfigurationSchemes"]; + get: operations["getAllFieldConfigurationSchemes"]; /** * Create field configuration scheme * @description Creates a field configuration scheme. @@ -1608,7 +1730,10 @@ export interface paths { * * Returns all users in a group. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * **[Permissions](#permissions) required:** either of: + * + * * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ get: operations["getGroup"]; /** @@ -1642,7 +1767,10 @@ export interface paths { * * Note that users are ordered by username, however the username is not returned in the results due to privacy reasons. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * **[Permissions](#permissions) required:** either of: + * + * * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ get: operations["getUsersFromGroup"]; }; @@ -1795,6 +1923,8 @@ export interface paths { * @deprecated * @description Returns details of projects, issue types within projects, and, when requested, the create screen fields for each issue type for the user. Use the information to populate the requests in [ Create issue](#api-rest-api-3-issue-post) and [Create issues](#api-rest-api-3-issue-bulk-post). * + * Deprecated, see [Create Issue Meta Endpoint Deprecation Notice](https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1304). + * * The request can be restricted to specific projects or issue types using the query parameters. The response will contain information for the valid projects, issue types, or project and issue type combinations requested. Note that invalid project, issue type, or project and issue type combinations do not generate errors. * * This operation can be accessed anonymously. @@ -1825,6 +1955,18 @@ export interface paths { */ get: operations["getCreateIssueMetaIssueTypeId"]; }; + "/rest/api/3/issue/limit/report": { + /** + * Get issue limit report + * @description Returns all issues breaching and approaching per-issue limits. + * + * **[Permissions](#permissions) required:** + * + * * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) is required for the project the issues are in. Results may be incomplete otherwise + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + get: operations["getIssueLimitReport"]; + }; "/rest/api/3/issue/picker": { /** * Get issue picker suggestions @@ -1990,7 +2132,7 @@ export interface paths { get: operations["getIssue"]; /** * Edit issue - * @description Edits an issue. A transition may be applied and issue properties updated as part of the edit. + * @description Edits an issue. Issue properties may be updated as part of the edit. Please note that issue transition will be ignored as it is not supported yet. * * The edits to the issue's fields are defined using `update` and `fields`. The fields that can be edited are determined using [ Get edit issue metadata](#api-rest-api-3-issue-issueIdOrKey-editmeta-get). * @@ -2604,7 +2746,7 @@ export interface paths { "/rest/api/3/issue/{issueIdOrKey}/worklog": { /** * Get issue worklogs - * @description Returns worklogs for an issue, starting from the oldest worklog or from the worklog started on or after a date and time. + * @description Returns worklogs for an issue (ordered by created time), starting from the oldest worklog or from the worklog started on or after a date and time. * * Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM). * @@ -2957,7 +3099,7 @@ export interface paths { }; "/rest/api/3/issuesecurityschemes/{issueSecuritySchemeId}/members": { /** - * Get issue security level members + * Get issue security level members by issue security scheme * @description Returns issue security level members. * * Only issue security level members in context of classic projects are returned. @@ -3520,12 +3662,9 @@ export interface paths { * * This means that users may be shown as having an issue permission (such as EDIT\_ISSUES) in the global context or a project context but may not have the permission for any or all issues. For example, if Reporters have the EDIT\_ISSUES permission a user would be shown as having this permission in the global context or the context of a project, because any user can be a reporter. However, if they are not the user who reported the issue queried they would not have EDIT\_ISSUES permission for that issue. * - * Global permissions are unaffected by context. - * - * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. + * For [Jira Service Management project permissions](https://support.atlassian.com/jira-cloud-administration/docs/customize-jira-service-management-permissions/), this will be evaluated similarly to a user in the customer portal. For example, if the BROWSE\_PROJECTS permission is granted to Service Project Customer - Portal Access, any users with access to the customer portal will have the BROWSE\_PROJECTS permission. * - * * **Classic**: `read:jira-work` - * * **Granular**: `read:permission:jira` + * Global permissions are unaffected by context. * * This operation can be accessed anonymously. * @@ -3545,7 +3684,6 @@ export interface paths { * * These system preferences keys will be deprecated by 15/07/2024. You can still retrieve these keys, but it will not have any impact on Notification behaviour. * - * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * *user.notifications.watcher* Whether the user gets notified when they are watcher. * * *user.notifications.assignee* Whether the user gets notified when they are assignee. * * *user.notifications.reporter* Whether the user gets notified when they are reporter. @@ -3564,6 +3702,7 @@ export interface paths { * * *user.default.share.private* Whether new [ filters](https://confluence.atlassian.com/x/eQiiLQ) are set to private. Defaults to `true`. * * *user.keyboard.shortcuts.disabled* Whether keyboard shortcuts are disabled. Defaults to `false`. * * *user.autowatch.disabled* Whether the user automatically watches issues they create or add a comment to. By default, not set: the user takes the instance autowatch setting. + * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * Note that these keys are deprecated: * @@ -3572,7 +3711,6 @@ export interface paths { * * These system preferences keys will be deprecated by 15/07/2024. You can still use these keys to create arbitrary preferences, but it will not have any impact on Notification behaviour. * - * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * *user.notifications.watcher* Whether the user gets notified when they are watcher. * * *user.notifications.assignee* Whether the user gets notified when they are assignee. * * *user.notifications.reporter* Whether the user gets notified when they are reporter. @@ -3721,7 +3859,9 @@ export interface paths { * * project permissions. * * global permissions added by plugins. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** None. */ get: operations["getAllPermissions"]; }; @@ -3758,11 +3898,6 @@ export interface paths { * Get permitted projects * @description Returns all the projects where the user is granted a list of project permissions. * - * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. - * - * * **Classic**: `read:jira-work` - * * **Granular**: `read:permission:jira`, `read:project:jira` - * * This operation can be accessed anonymously. * * **[Permissions](#permissions) required:** None. @@ -3970,6 +4105,7 @@ export interface paths { "/rest/api/3/priority/search": { /** * Search priorities + * @deprecated * @description Returns a [paginated](#pagination) list of priorities. The list can contain all priorities or a subset determined by any combination of these criteria: * * * a list of priority IDs. Any invalid priority IDs are ignored. @@ -3997,10 +4133,7 @@ export interface paths { put: operations["updatePriority"]; /** * Delete priority - * @deprecated - * @description *Deprecated: please refer to the* [changelog](https://developer.atlassian.com/changelog/#CHANGE-1066) *for more details.* - * - * Deletes an issue priority. + * @description Deletes an issue priority. * * This operation is [asynchronous](#async). Follow the `location` link in the response to determine the status of the task and use [Get task](#api-rest-api-3-task-taskId-get) to obtain subsequent updates. * @@ -4008,6 +4141,76 @@ export interface paths { */ delete: operations["deletePriority"]; }; + "/rest/api/3/priorityscheme": { + /** + * Get priority schemes + * @description Returns a [paginated](#pagination) list of priority schemes. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + get: operations["getPrioritySchemes"]; + /** + * Create priority scheme + * @description Creates a new priority scheme. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + post: operations["createPriorityScheme"]; + }; + "/rest/api/3/priorityscheme/mappings": { + /** + * Suggested priorities for mappings + * @description Returns a [paginated](#pagination) list of priorities that would require mapping, given a change in priorities or projects associated with a priority scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + post: operations["suggestedPrioritiesForMappings"]; + }; + "/rest/api/3/priorityscheme/priorities/available": { + /** + * Get available priorities by priority scheme + * @description Returns a [paginated](#pagination) list of priorities available for adding to a priority scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + get: operations["getAvailablePrioritiesByPriorityScheme"]; + }; + "/rest/api/3/priorityscheme/{schemeId}": { + /** + * Update priority scheme + * @description Updates a priority scheme. This includes its details, the lists of priorities and projects in it + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + put: operations["updatePriorityScheme"]; + /** + * Delete priority scheme + * @description Deletes a priority scheme. + * + * This operation is only available for priority schemes without any associated projects. Any associated projects must be removed from the priority scheme before this operation can be performed. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + delete: operations["deletePriorityScheme"]; + }; + "/rest/api/3/priorityscheme/{schemeId}/priorities": { + /** + * Get priorities by priority scheme + * @description Returns a [paginated](#pagination) list of priorities by scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + get: operations["getPrioritiesByPriorityScheme"]; + }; + "/rest/api/3/priorityscheme/{schemeId}/projects": { + /** + * Get projects by priority scheme + * @description Returns a [paginated](#pagination) list of projects by scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + get: operations["getProjectsByPriorityScheme"]; + }; "/rest/api/3/project": { /** * Get all projects @@ -4210,6 +4413,39 @@ export interface paths { */ get: operations["getAllProjectAvatars"]; }; + "/rest/api/3/project/{projectIdOrKey}/classification-level/default": { + /** + * Get the default data classification level of a project + * @description Returns the default data classification for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + get: operations["getDefaultProjectClassification"]; + /** + * Update the default data classification level of a project + * @description Updates the default data classification level for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + put: operations["updateDefaultProjectClassification"]; + /** + * Remove the default data classification level from a project + * @description Remove the default data classification level for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + delete: operations["removeDefaultProjectClassification"]; + }; "/rest/api/3/project/{projectIdOrKey}/component": { /** * Get project components paginated @@ -4440,7 +4676,6 @@ export interface paths { "/rest/api/3/project/{projectId}/hierarchy": { /** * Get project issue type hierarchy - * @deprecated * @description Get the issue type hierarchy for a next-gen project. * * The issue type hierarchy for a project consists of: @@ -4938,6 +5173,22 @@ export interface paths { */ post: operations["searchForIssuesUsingJqlPost"]; }; + "/rest/api/3/search/id": { + /** + * Search issue IDs using JQL + * @description Searches for IDs of issues using [JQL](https://confluence.atlassian.com/x/egORLQ). + * + * Use the [Search](#api-rest-api-3-search-post) endpoint if you need to fetch more than just issue IDs. The Search endpoint returns more information, but may take much longer to respond to requests. This is because it uses a different mechanism for ordering results than this endpoint and doesn't provide the total number of results for your query. + * + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** Issues are included in the response where the user has: + * + * * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project containing the issue. + * * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission to view the issue. + */ + post: operations["searchForIssuesIds"]; + }; "/rest/api/3/securitylevel/{id}": { /** * Get issue security level @@ -7588,7 +7839,7 @@ export interface paths { * @description Gets all the properties of an app. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. - * Additionally, Forge apps published on the Marketplace can access properties of Connect apps they were [migrated from](https://developer.atlassian.com/platform/forge/build-a-connect-on-forge-app/). + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ get: operations["AddonPropertiesResource.getAddonProperties_get"]; }; @@ -7598,7 +7849,7 @@ export interface paths { * @description Returns the key and value of an app's property. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. - * Additionally, Forge apps published on the Marketplace can access properties of Connect apps they were [migrated from](https://developer.atlassian.com/platform/forge/build-a-connect-on-forge-app/). + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ get: operations["AddonPropertiesResource.getAddonProperty_get"]; /** @@ -7608,6 +7859,7 @@ export interface paths { * The value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The maximum length is 32768 characters. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ put: operations["AddonPropertiesResource.putAddonProperty_put"]; /** @@ -7615,6 +7867,7 @@ export interface paths { * @description Deletes an app's property. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ delete: operations["AddonPropertiesResource.deleteAddonProperty_delete"]; }; @@ -7687,14 +7940,14 @@ export interface paths { * * **[Permissions](#permissions) required:** Only Forge apps can make this request. */ - put: operations["AddonPropertiesResource.putAppProperty_put"]; + put: operations["putForgeAppProperty"]; /** * Delete app property (Forge) * @description Deletes a Forge app's property. * * **[Permissions](#permissions) required:** Only Forge apps can make this request. */ - delete: operations["AddonPropertiesResource.deleteAppProperty_delete"]; + delete: operations["deleteForgeAppProperty"]; }; } @@ -8246,6 +8499,15 @@ export interface components { [key: string]: string; }; }; + /** @description Bulk Edit Get Fields Response. */ + BulkEditGetFields: { + /** @description The end cursor for use in pagination. */ + endingBefore?: string; + /** @description List of all the fields */ + fields?: readonly components["schemas"]["IssueBulkEditField"][]; + /** @description The start cursor for use in pagination. */ + startingAfter?: string; + }; /** @description Details of a request to bulk edit shareable entity. */ BulkEditShareableEntityRequest: { /** @@ -8290,6 +8552,9 @@ export interface components { /** @description The value of the property. The value must be a [valid](https://tools.ietf.org/html/rfc4627), non-empty JSON blob. The maximum length is 32768 characters. */ value?: unknown; }; + BulkOperationErrorResponse: { + errors?: components["schemas"]["ErrorMessage"][]; + }; BulkOperationErrorResult: { elementErrors?: components["schemas"]["ErrorCollection"]; /** Format: int32 */ @@ -8297,6 +8562,52 @@ export interface components { /** Format: int32 */ status?: number; }; + BulkOperationProgress: { + /** + * Format: date-time + * @description A timestamp of when the task was submitted. + */ + created?: string; + /** @description Map of issue IDs for which the operation failed and that the user has permission to view, to their one or more reasons for failure. These reasons are open-ended text descriptions of the error and are not selected from a predefined list of standard reasons. */ + failedAccessibleIssues?: { + [key: string]: string[]; + }; + /** + * Format: int32 + * @description The number of issues that are either invalid or issues that the user doesn't have permission to view, regardless of the success or failure of the operation. + */ + invalidOrInaccessibleIssueCount?: number; + /** @description List of issue IDs for which the operation was successful and that the user has permission to view. */ + processedAccessibleIssues?: number[]; + /** + * Format: int64 + * @description Progress of the task as a percentage. + */ + progressPercent?: number; + /** + * Format: date-time + * @description A timestamp of when the task was started. + */ + started?: string; + /** + * @description The status of the task. + * @enum {string} + */ + status?: "ENQUEUED" | "RUNNING" | "COMPLETE" | "FAILED" | "CANCEL_REQUESTED" | "CANCELLED" | "DEAD"; + submittedBy?: components["schemas"]["User"]; + /** @description The ID of the task. */ + taskId?: string; + /** + * Format: int32 + * @description The number of issues that the bulk operation was attempted on. + */ + totalIssueCount?: number; + /** + * Format: date-time + * @description A timestamp of when the task progress was last updated. + */ + updated?: string; + }; /** @description Details of global and project permissions granted to the user. */ BulkPermissionGrants: { /** @description List of permissions granted to the user. */ @@ -8476,6 +8787,17 @@ export interface components { */ self?: string; }; + ComponentJsonBean: { + ari?: string; + description?: string; + id?: string; + metadata?: { + [key: string]: string; + }; + name?: string; + self?: string; + [key: string]: unknown; + }; /** @description Details about a component with a count of the issues it contains. */ ComponentWithIssueCount: { /** @description The details of the user associated with `assigneeType`, if any. See `realAssignee` for details of the user assigned to issues created with this component. */ @@ -8541,7 +8863,7 @@ export interface components { operator: "and" | "or" | "not"; }; /** @description The conditions group associated with the transition. */ - ConditionGroupConfiguration: { + ConditionGroupConfiguration: ({ /** @description The nested conditions of the condition group. */ conditionGroups?: components["schemas"]["ConditionGroupConfiguration"][]; /** @description The rules for this condition. */ @@ -8551,9 +8873,9 @@ export interface components { * @enum {string} */ operation?: "ANY" | "ALL"; - } | null; + }) | null; /** @description The conditions group associated with the transition. */ - ConditionGroupUpdate: { + ConditionGroupUpdate: ({ /** @description The nested conditions of the condition group. */ conditionGroups?: components["schemas"]["ConditionGroupUpdate"][]; /** @description The rules for this condition. */ @@ -8563,7 +8885,7 @@ export interface components { * @enum {string} */ operation: "ANY" | "ALL"; - } | null; + }) | null; /** @description Details about the configuration of Jira. */ Configuration: { /** @description Whether the ability to add attachments to issues is enabled. */ @@ -8589,13 +8911,7 @@ export interface components { * @description The type of custom field. * @enum {string} */ - _type: - | "StringIssueField" - | "NumberIssueField" - | "RichTextIssueField" - | "SingleSelectIssueField" - | "MultiSelectIssueField" - | "TextIssueField"; + _type: "StringIssueField" | "NumberIssueField" | "RichTextIssueField" | "SingleSelectIssueField" | "MultiSelectIssueField" | "TextIssueField"; /** @description The custom field ID. */ fieldID: number; /** @description The issue ID. */ @@ -8804,23 +9120,31 @@ export interface components { * @description The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. * @enum {string} */ - iconUrl?: - | "/images/icons/priorities/blocker.png" - | "/images/icons/priorities/critical.png" - | "/images/icons/priorities/high.png" - | "/images/icons/priorities/highest.png" - | "/images/icons/priorities/low.png" - | "/images/icons/priorities/lowest.png" - | "/images/icons/priorities/major.png" - | "/images/icons/priorities/medium.png" - | "/images/icons/priorities/minor.png" - | "/images/icons/priorities/trivial.png"; + iconUrl?: "/images/icons/priorities/blocker.png" | "/images/icons/priorities/critical.png" | "/images/icons/priorities/high.png" | "/images/icons/priorities/highest.png" | "/images/icons/priorities/low.png" | "/images/icons/priorities/lowest.png" | "/images/icons/priorities/major.png" | "/images/icons/priorities/medium.png" | "/images/icons/priorities/minor.png" | "/images/icons/priorities/trivial.png" | "/images/icons/priorities/blocker_new.png" | "/images/icons/priorities/critical_new.png" | "/images/icons/priorities/high_new.png" | "/images/icons/priorities/highest_new.png" | "/images/icons/priorities/low_new.png" | "/images/icons/priorities/lowest_new.png" | "/images/icons/priorities/major_new.png" | "/images/icons/priorities/medium_new.png" | "/images/icons/priorities/minor_new.png" | "/images/icons/priorities/trivial_new.png"; /** @description The name of the priority. Must be unique. */ name: string; /** @description The status color of the priority in 3-digit or 6-digit hexadecimal format. */ statusColor: string; [key: string]: unknown; }; + /** @description Details of a new priority scheme */ + CreatePrioritySchemeDetails: { + /** + * Format: int64 + * @description The ID of the default priority for the priority scheme. + */ + defaultPriorityId: number; + /** @description The description of the priority scheme. */ + description?: string; + /** @description Mappings of issue priorities for issues being migrated in and out of this priority scheme. */ + mappings?: components["schemas"]["PriorityMapping"]; + /** @description The name of the priority scheme. Must be unique. */ + name: string; + /** @description The IDs of priorities in the scheme. */ + priorityIds: number[]; + /** @description The IDs of projects that will use the priority scheme. */ + projectIds?: number[]; + }; /** @description Details about the project. */ CreateProjectDetails: { /** @@ -8882,51 +9206,7 @@ export interface components { * @description A predefined configuration for a project. The type of the `projectTemplateKey` must match with the type of the `projectTypeKey`. * @enum {string} */ - projectTemplateKey?: - | "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban" - | "com.pyxis.greenhopper.jira:gh-simplified-agility-scrum" - | "com.pyxis.greenhopper.jira:gh-simplified-basic" - | "com.pyxis.greenhopper.jira:gh-simplified-kanban-classic" - | "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic" - | "com.pyxis.greenhopper.jira:gh-cross-team-template" - | "com.pyxis.greenhopper.jira:gh-cross-team-planning-template" - | "com.atlassian.servicedesk:simplified-it-service-management" - | "com.atlassian.servicedesk:simplified-general-service-desk" - | "com.atlassian.servicedesk:simplified-general-service-desk-it" - | "com.atlassian.servicedesk:simplified-general-service-desk-business" - | "com.atlassian.servicedesk:simplified-internal-service-desk" - | "com.atlassian.servicedesk:simplified-external-service-desk" - | "com.atlassian.servicedesk:simplified-hr-service-desk" - | "com.atlassian.servicedesk:simplified-facilities-service-desk" - | "com.atlassian.servicedesk:simplified-legal-service-desk" - | "com.atlassian.servicedesk:simplified-marketing-service-desk" - | "com.atlassian.servicedesk:simplified-finance-service-desk" - | "com.atlassian.servicedesk:simplified-analytics-service-desk" - | "com.atlassian.servicedesk:simplified-design-service-desk" - | "com.atlassian.servicedesk:simplified-sales-service-desk" - | "com.atlassian.servicedesk:simplified-halp-service-desk" - | "com.atlassian.servicedesk:simplified-blank-project-it" - | "com.atlassian.servicedesk:simplified-blank-project-business" - | "com.atlassian.servicedesk:next-gen-it-service-desk" - | "com.atlassian.servicedesk:next-gen-hr-service-desk" - | "com.atlassian.servicedesk:next-gen-legal-service-desk" - | "com.atlassian.servicedesk:next-gen-marketing-service-desk" - | "com.atlassian.servicedesk:next-gen-facilities-service-desk" - | "com.atlassian.servicedesk:next-gen-general-service-desk" - | "com.atlassian.servicedesk:next-gen-general-it-service-desk" - | "com.atlassian.servicedesk:next-gen-general-business-service-desk" - | "com.atlassian.servicedesk:next-gen-analytics-service-desk" - | "com.atlassian.servicedesk:next-gen-finance-service-desk" - | "com.atlassian.servicedesk:next-gen-design-service-desk" - | "com.atlassian.servicedesk:next-gen-sales-service-desk" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-content-management" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-process-control" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-procurement" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-project-management" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment" - | "com.atlassian.jira-core-project-templates:jira-core-simplified-task-"; + projectTemplateKey?: "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban" | "com.pyxis.greenhopper.jira:gh-simplified-agility-scrum" | "com.pyxis.greenhopper.jira:gh-simplified-basic" | "com.pyxis.greenhopper.jira:gh-simplified-kanban-classic" | "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic" | "com.pyxis.greenhopper.jira:gh-cross-team-template" | "com.pyxis.greenhopper.jira:gh-cross-team-planning-template" | "com.atlassian.servicedesk:simplified-it-service-management" | "com.atlassian.servicedesk:simplified-general-service-desk" | "com.atlassian.servicedesk:simplified-general-service-desk-it" | "com.atlassian.servicedesk:simplified-general-service-desk-business" | "com.atlassian.servicedesk:simplified-internal-service-desk" | "com.atlassian.servicedesk:simplified-external-service-desk" | "com.atlassian.servicedesk:simplified-hr-service-desk" | "com.atlassian.servicedesk:simplified-facilities-service-desk" | "com.atlassian.servicedesk:simplified-legal-service-desk" | "com.atlassian.servicedesk:simplified-marketing-service-desk" | "com.atlassian.servicedesk:simplified-finance-service-desk" | "com.atlassian.servicedesk:simplified-analytics-service-desk" | "com.atlassian.servicedesk:simplified-design-service-desk" | "com.atlassian.servicedesk:simplified-sales-service-desk" | "com.atlassian.servicedesk:simplified-halp-service-desk" | "com.atlassian.servicedesk:simplified-blank-project-it" | "com.atlassian.servicedesk:simplified-blank-project-business" | "com.atlassian.servicedesk:next-gen-it-service-desk" | "com.atlassian.servicedesk:next-gen-hr-service-desk" | "com.atlassian.servicedesk:next-gen-legal-service-desk" | "com.atlassian.servicedesk:next-gen-marketing-service-desk" | "com.atlassian.servicedesk:next-gen-facilities-service-desk" | "com.atlassian.servicedesk:next-gen-general-service-desk" | "com.atlassian.servicedesk:next-gen-general-it-service-desk" | "com.atlassian.servicedesk:next-gen-general-business-service-desk" | "com.atlassian.servicedesk:next-gen-analytics-service-desk" | "com.atlassian.servicedesk:next-gen-finance-service-desk" | "com.atlassian.servicedesk:next-gen-design-service-desk" | "com.atlassian.servicedesk:next-gen-sales-service-desk" | "com.atlassian.jira-core-project-templates:jira-core-simplified-content-management" | "com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval" | "com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking" | "com.atlassian.jira-core-project-templates:jira-core-simplified-process-control" | "com.atlassian.jira-core-project-templates:jira-core-simplified-procurement" | "com.atlassian.jira-core-project-templates:jira-core-simplified-project-management" | "com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment" | "com.atlassian.jira-core-project-templates:jira-core-simplified-task-"; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes), which defines the application-specific feature set. If you don't specify the project template you have to specify the project type. * @enum {string} @@ -9144,11 +9424,7 @@ export interface components { CustomContextVariable: { /** @description Type of custom context variable. */ type: string; - } & ( - | components["schemas"]["UserContextVariable"] - | components["schemas"]["IssueContextVariable"] - | components["schemas"]["JsonContextVariable"] - ); + } & (components["schemas"]["UserContextVariable"] | components["schemas"]["IssueContextVariable"] | components["schemas"]["JsonContextVariable"]); /** @description Details of configurations for a custom field. */ CustomFieldConfigurations: { /** @description The list of custom field configuration details. */ @@ -9167,34 +9443,7 @@ export interface components { /** @description The name of the context. */ name: string; }; - CustomFieldContextDefaultValue: - | components["schemas"]["CustomFieldContextDefaultValueCascadingOption"] - | components["schemas"]["CustomFieldContextDefaultValueMultipleOption"] - | components["schemas"]["CustomFieldContextDefaultValueSingleOption"] - | components["schemas"]["CustomFieldContextSingleUserPickerDefaults"] - | components["schemas"]["CustomFieldContextDefaultValueMultiUserPicker"] - | components["schemas"]["CustomFieldContextDefaultValueSingleGroupPicker"] - | components["schemas"]["CustomFieldContextDefaultValueMultipleGroupPicker"] - | components["schemas"]["CustomFieldContextDefaultValueDate"] - | components["schemas"]["CustomFieldContextDefaultValueDateTime"] - | components["schemas"]["CustomFieldContextDefaultValueURL"] - | components["schemas"]["CustomFieldContextDefaultValueProject"] - | components["schemas"]["CustomFieldContextDefaultValueFloat"] - | components["schemas"]["CustomFieldContextDefaultValueLabels"] - | components["schemas"]["CustomFieldContextDefaultValueTextField"] - | components["schemas"]["CustomFieldContextDefaultValueTextArea"] - | components["schemas"]["CustomFieldContextDefaultValueReadOnly"] - | components["schemas"]["CustomFieldContextDefaultValueSingleVersionPicker"] - | components["schemas"]["CustomFieldContextDefaultValueMultipleVersionPicker"] - | components["schemas"]["CustomFieldContextDefaultValueForgeStringField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeMultiStringField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeObjectField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeDateTimeField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeGroupField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeMultiGroupField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeNumberField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeUserField"] - | components["schemas"]["CustomFieldContextDefaultValueForgeMultiUserField"]; + CustomFieldContextDefaultValue: components["schemas"]["CustomFieldContextDefaultValueCascadingOption"] | components["schemas"]["CustomFieldContextDefaultValueMultipleOption"] | components["schemas"]["CustomFieldContextDefaultValueSingleOption"] | components["schemas"]["CustomFieldContextSingleUserPickerDefaults"] | components["schemas"]["CustomFieldContextDefaultValueMultiUserPicker"] | components["schemas"]["CustomFieldContextDefaultValueSingleGroupPicker"] | components["schemas"]["CustomFieldContextDefaultValueMultipleGroupPicker"] | components["schemas"]["CustomFieldContextDefaultValueDate"] | components["schemas"]["CustomFieldContextDefaultValueDateTime"] | components["schemas"]["CustomFieldContextDefaultValueURL"] | components["schemas"]["CustomFieldContextDefaultValueProject"] | components["schemas"]["CustomFieldContextDefaultValueFloat"] | components["schemas"]["CustomFieldContextDefaultValueLabels"] | components["schemas"]["CustomFieldContextDefaultValueTextField"] | components["schemas"]["CustomFieldContextDefaultValueTextArea"] | components["schemas"]["CustomFieldContextDefaultValueReadOnly"] | components["schemas"]["CustomFieldContextDefaultValueSingleVersionPicker"] | components["schemas"]["CustomFieldContextDefaultValueMultipleVersionPicker"] | components["schemas"]["CustomFieldContextDefaultValueForgeStringField"] | components["schemas"]["CustomFieldContextDefaultValueForgeMultiStringField"] | components["schemas"]["CustomFieldContextDefaultValueForgeObjectField"] | components["schemas"]["CustomFieldContextDefaultValueForgeDateTimeField"] | components["schemas"]["CustomFieldContextDefaultValueForgeGroupField"] | components["schemas"]["CustomFieldContextDefaultValueForgeMultiGroupField"] | components["schemas"]["CustomFieldContextDefaultValueForgeNumberField"] | components["schemas"]["CustomFieldContextDefaultValueForgeUserField"] | components["schemas"]["CustomFieldContextDefaultValueForgeMultiUserField"]; /** @description The default value for a cascading select custom field. */ CustomFieldContextDefaultValueCascadingOption: { /** @description The ID of the default cascading option. */ @@ -9488,20 +9737,7 @@ export interface components { * If no searcher is provided, the field isn't searchable. However, [Forge custom fields](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#jira-custom-field-type--beta-) have a searcher set automatically, so are always searchable. * @enum {string} */ - searcherKey?: - | "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:daterange" - | "com.atlassian.jira.plugin.system.customfieldtypes:datetimerange" - | "com.atlassian.jira.plugin.system.customfieldtypes:exactnumber" - | "com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:numberrange" - | "com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:textsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher"; + searcherKey?: "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:daterange" | "com.atlassian.jira.plugin.system.customfieldtypes:datetimerange" | "com.atlassian.jira.plugin.system.customfieldtypes:exactnumber" | "com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:numberrange" | "com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:textsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher"; /** * @description The type of the custom field. These built-in custom field types are available: * @@ -9709,6 +9945,31 @@ export interface components { /** @description The title of the gadget. */ title?: string; }; + /** @description The data classification. */ + DataClassificationLevelsBean: { + /** @description The data classifications. */ + classifications?: components["schemas"]["DataClassificationTagBean"][]; + }; + /** @description The data classification. */ + DataClassificationTagBean: { + /** @description The color of the data classification object. */ + color?: string; + /** @description The description of the data classification object. */ + description?: string; + /** @description The guideline of the data classification object. */ + guideline?: string; + /** @description The ID of the data classification object. */ + id: string; + /** @description The name of the data classification object. */ + name?: string; + /** + * Format: int32 + * @description The rank of the data classification object. + */ + rank?: number; + /** @description The status of the data classification object. */ + status: string; + }; /** @description List issues archived within a specified date range. */ DateRangeFilterRequest: { /** @description List issues archived after a specified date, passed in the YYYY-MM-DD format. */ @@ -9842,14 +10103,8 @@ export interface components { status?: number; }; ErrorCollections: Record; - /** - * @example { - * "message": "The request is not from a Connect app." - * } - */ ErrorMessage: { - /** @description The error message. */ - message: string; + message?: string; }; Errors: { issueIsSubtask?: components["schemas"]["Error"]; @@ -9876,19 +10131,7 @@ export interface components { * @description Identifies the recipients of the notification. * @enum {string} */ - notificationType?: - | "CurrentAssignee" - | "Reporter" - | "CurrentUser" - | "ProjectLead" - | "ComponentLead" - | "User" - | "Group" - | "ProjectRole" - | "EmailAddress" - | "AllWatchers" - | "UserCustomField" - | "GroupCustomField"; + notificationType?: "CurrentAssignee" | "Reporter" | "CurrentUser" | "ProjectLead" | "ComponentLead" | "User" | "Group" | "ProjectRole" | "EmailAddress" | "AllWatchers" | "UserCustomField" | "GroupCustomField"; /** * @description As a group's name can change, use of `recipient` is recommended. The identifier associated with the `notificationType` value that defines the receiver of the notification, where the receiver isn't implied by `notificationType` value. So, when `notificationType` is: * @@ -9914,6 +10157,24 @@ export interface components { /** @description The specified user. */ user?: components["schemas"]["UserDetails"]; }; + /** @description A priority scheme with less fields to be used in for an API expand response. */ + ExpandPrioritySchemeBean: { + /** @description The ID of the priority scheme. */ + id?: string; + /** @description The name of the priority scheme. */ + name?: string; + /** @description The URL of the priority scheme. */ + self?: string; + }; + ExpandPrioritySchemePage: { + /** Format: int32 */ + maxResults?: number; + /** Format: int64 */ + startAt?: number; + /** Format: int64 */ + total?: number; + [key: string]: unknown; + }; /** @description The response for status request for a running/completed export task. */ ExportArchivedIssuesTaskProgressResponse: { fileUrl?: string; @@ -9987,6 +10248,8 @@ export interface components { screensCount?: number; /** @description The searcher key of the field. Returned for custom fields. */ searcherKey?: string; + /** @description The stable ID of the field. */ + stableId?: string; }; /** @description A clause that asserts whether a field was changed. For example, `status CHANGED AFTER startOfMonth(-1M)`.See [CHANGED](https://confluence.atlassian.com/x/dgiiLQ#Advancedsearching-operatorsreference-CHANGEDCHANGED) for more information about the CHANGED operator. */ FieldChangedClause: { @@ -10289,6 +10552,11 @@ export interface components { }; /** @description Details about a filter. */ Filter: { + /** + * Format: date-time + * @description \[Experimental\] Approximate last used time. Returns the date and time when the filter was last used. Returns `null` if the filter hasn't been used after tracking was enabled. For performance reasons, timestamps aren't updated in real time and therefore may not be exactly accurate. + */ + approximateLastUsed?: string; /** @description A description of the filter. */ description?: string; /** @description The groups and projects that can edit the filter. */ @@ -10332,6 +10600,11 @@ export interface components { }; /** @description Details of a filter. */ FilterDetails: { + /** + * Format: date-time + * @description \[Experimental\] Approximate last used time. Returns the date and time when the filter was last used. Returns `null` if the filter hasn't been used after tracking was enabled. For performance reasons, timestamps aren't updated in real time and therefore may not be exactly accurate. + */ + approximateLastUsed?: string; /** @description The description of the filter. */ description?: string; /** @description The groups and projects that can edit the filter. This can be specified when updating a filter, but not when creating a filter. */ @@ -10633,6 +10906,25 @@ export interface components { /** @description The key of the referenced item. */ key?: string; }; + IdSearchRequestBean: { + /** @description A [JQL](https://confluence.atlassian.com/x/egORLQ) expression. Order by clauses are not allowed. */ + jql?: string; + /** + * Format: int32 + * @description The maximum number of items to return per page. + * @default 1000 + */ + maxResults?: number; + /** @description The continuation token to fetch the next page. This token is provided by the response of this endpoint. */ + nextPageToken?: string; + }; + /** @description Result of your JQL search. Returns a list of issue IDs and a token to fetch the next page if one exists. */ + IdSearchResults: { + /** @description The list of issue IDs found by the search. */ + issueIds?: readonly number[]; + /** @description Continuation token to fetch the next page. If this result represents the last or the only page this token will be null. */ + nextPageToken?: string; + }; IncludedFields: { actuallyIncluded?: string[]; excluded?: string[]; @@ -10699,6 +10991,51 @@ export interface components { }; }; }; + IssueBulkEditField: { + /** @description Description of the field. */ + description?: string; + /** @description A list of options related to the field, applicable in contexts where multiple selections are allowed. */ + fieldOptions?: components["schemas"]["IssueBulkOperationsFieldOption"][]; + /** @description The unique ID of the field. */ + id?: string; + /** @description Indicates whether the field is mandatory for the operation. */ + isRequired?: boolean; + /** @description Specifies supported actions (like add, replace, remove) on multi-select fields via an enum. */ + multiSelectFieldOptions?: ("ADD" | "REMOVE" | "REPLACE" | "REMOVE_ALL")[]; + /** @description The display name of the field. */ + name?: string; + /** @description A URL to fetch additional data for the field */ + searchUrl?: string; + /** @description The type of the field. */ + type?: string; + /** @description A message indicating why the field is unavailable for editing. */ + unavailableMessage?: string; + }; + /** @description Issue Bulk Edit Payload */ + IssueBulkEditPayload: { + /** @description An object that defines the values to be updated in specified fields of an issue. The structure and content of this parameter vary depending on the type of field being edited. Although the order is not significant, ensure that field IDs align with those in selectedActions. */ + editedFieldsInput: components["schemas"]["JiraIssueFields"]; + /** @description List of all the field IDs that are to be bulk edited. Each field ID in this list corresponds to a specific attribute of an issue that is set to be modified in the bulk edit operation. The relevant field ID can be obtained by calling the Bulk Edit Get Fields REST API (documentation available on this page itself). */ + selectedActions: string[]; + /** @description List of issue IDs or keys which are to be bulk edited. These IDs or keys can be from different projects and issue types. */ + selectedIssueIdsOrKeys: string[]; + }; + /** @description Issue Bulk Move Payload */ + IssueBulkMovePayload: { + /** + * @description An object representing the mapping of issues and data related to destination entities, like fields and statuses, that are required during a bulk move. + * + * The key is a string that is created by concatenating the following three entities in order, separated by commas. The format is `,,`. It should be unique across mappings provided in the payload. If you provide multiple mappings for the same key, only one will be processed. However, the operation won't fail, so the error may be hard to track down. + * + * * ***Destination project*** (Required): ID or key of the project to which the issues are being moved. + * * ***Destination issueType*** (Required): ID of the issueType to which the issues are being moved. + * * ***Destination parent ID or key*** (Optional): ID or key of the issue which will become the parent of the issues being moved. Only required when the destination issueType is a subtask. + */ + targetToSourcesMapping?: { + [key: string]: components["schemas"]["targetToSourcesMapping"]; + }; + }; + IssueBulkOperationsFieldOption: Record; /** @description A list of changelog IDs. */ IssueChangelogIds: { /** @description The list of changelog IDs. */ @@ -10814,6 +11151,30 @@ export interface components { /** @description Whether the bulk operation occurs only when the property is present on or absent from an issue. */ hasProperty?: boolean; }; + IssueLimitReportRequest: { + /** @description A list of fields and their respective approaching limit threshold. Required for querying issues approaching limits. Optional for querying issues breaching limits. Accepted fields are: `comment`, `worklog`, `attachment`, `remoteIssueLinks`, and `issuelinks`. Example: `{"issuesApproachingLimitParams": {"comment": 4500, "attachment": 1800}}` */ + issuesApproachingLimitParams?: { + [key: string]: number; + }; + }; + IssueLimitReportResponseBean: { + /** @description A list of ids of issues approaching the limit and their field count */ + issuesApproachingLimit?: { + [key: string]: { + [key: string]: number; + }; + }; + /** @description A list of ids of issues breaching the limit and their field count */ + issuesBreachingLimit?: { + [key: string]: { + [key: string]: number; + }; + }; + /** @description The fields and their defined limits */ + limits?: { + [key: string]: number; + }; + }; /** @description Details of a link between issues. */ IssueLink: { /** @description The ID of the issue link. */ @@ -11365,6 +11726,36 @@ export interface components { */ validation?: "strict" | "warn" | "none"; }; + JiraCascadingSelectField: { + childOptionValue?: components["schemas"]["JiraSelectedOptionField"]; + fieldId: string; + parentOptionValue: components["schemas"]["JiraSelectedOptionField"]; + }; + JiraColorField: { + color: components["schemas"]["JiraColorInput"]; + fieldId: string; + }; + JiraColorInput: { + name: string; + }; + JiraComponentField: { + /** Format: int64 */ + componentId: number; + }; + JiraDateField: { + date?: components["schemas"]["JiraDateInput"]; + fieldId: string; + }; + JiraDateInput: { + formattedDate: string; + }; + JiraDateTimeField: { + dateTime: components["schemas"]["JiraDateTimeInput"]; + fieldId: string; + }; + JiraDateTimeInput: { + formattedDateTime: string; + }; /** @description Details about the analysed Jira expression. */ JiraExpressionAnalysis: { complexity?: components["schemas"]["JiraExpressionComplexity"]; @@ -11519,6 +11910,228 @@ export interface components { */ value: number; }; + JiraGroupInput: { + groupName: string; + }; + JiraIssueFields: { + /** + * @description Add or clear a cascading select field: + * + * * To add, specify `optionId` for both parent and child. + * * To clear the child, set its `optionId` to null. + * * To clear both, set the parent's `optionId` to null. + */ + cascadingSelectFields?: components["schemas"]["JiraCascadingSelectField"][]; + /** + * @description Add or clear a number field: + * + * * To add, specify a numeric `value`. + * * To clear, set `value` to `null`. + */ + clearableNumberFields?: components["schemas"]["JiraNumberField"][]; + /** + * @description Add or clear a color field: + * + * * To add, specify the color `name`. Available colors are: `purple`, `blue`, `green`, `teal`, `yellow`, `orange`, `grey`, `dark purple`, `dark blue`, `dark green`, `dark teal`, `dark yellow`, `dark orange`, `dark grey`. + * * To clear, set the color `name` to an empty string. + */ + colorFields?: components["schemas"]["JiraColorField"][]; + /** + * @description Add or clear a date picker field: + * + * * To add, specify the date in `d/mmm/yy` format or ISO format `dd-mm-yyyy`. + * * To clear, set `formattedDate` to an empty string. + */ + datePickerFields?: components["schemas"]["JiraDateField"][]; + /** + * @description Add or clear the planned start date and time: + * + * * To add, specify the date and time in ISO format for `formattedDateTime`. + * * To clear, provide an empty string for `formattedDateTime`. + */ + dateTimePickerFields?: components["schemas"]["JiraDateTimeField"][]; + /** @description Set the issue type field by providing an `issueTypeId`. */ + issueType?: components["schemas"]["JiraIssueTypeField"]; + /** + * @description Edit a labels field: + * + * * Options include `ADD`, `REPLACE`, `REMOVE`, or `REMOVE_ALL` for bulk edits. + * * To clear labels, use the `REMOVE_ALL` option with an empty `labels` array. + */ + labelsFields?: components["schemas"]["JiraLabelsField"][]; + /** + * @description Add or clear a multi-group picker field: + * + * * To add groups, provide an array of groups with `groupName`s. + * * To clear all groups, use an empty `groups` array. + */ + multipleGroupPickerFields?: components["schemas"]["JiraMultipleGroupPickerField"][]; + /** + * @description Assign or unassign multiple users to/from a field: + * + * * To assign, provide an array of user `accountId`s. + * * To clear, set `users` to `null`. + */ + multipleSelectClearableUserPickerFields?: components["schemas"]["JiraMultipleSelectUserPickerField"][]; + /** + * @description Add or clear a multi-select field: + * + * * To add, provide an array of options with `optionId`s. + * * To clear, use an empty `options` array. + */ + multipleSelectFields?: components["schemas"]["JiraMultipleSelectField"][]; + /** + * @description Edit a multi-version picker field like Fix Versions/Affects Versions: + * + * * Options include `ADD`, `REPLACE`, `REMOVE`, or `REMOVE_ALL` for bulk edits. + * * To clear the field, use the `REMOVE_ALL` option with an empty `versions` array. + */ + multipleVersionPickerFields?: components["schemas"]["JiraMultipleVersionPickerField"][]; + /** + * @description Edit a multi select components field: + * + * * Options include `ADD`, `REPLACE`, `REMOVE`, or `REMOVE_ALL` for bulk edits. + * * To clear, use the `REMOVE_ALL` option with an empty `components` array. + */ + multiselectComponents?: components["schemas"]["JiraMultiSelectComponentField"]; + /** @description Set the priority of an issue by specifying a `priorityId`. */ + priority?: components["schemas"]["JiraPriorityField"]; + /** + * @description Add or clear a rich text field: + * + * * To add, provide `adfValue`. Note that rich text fields only support ADF values. + * * To clear, use an empty `richText` object. + * + * For ADF format details, refer to: [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure). + */ + richTextFields?: components["schemas"]["JiraRichTextField"][]; + /** + * @description Add or clear a single group picker field: + * + * * To add, specify the group with `groupName`. + * * To clear, set `groupName` to an empty string. + */ + singleGroupPickerFields?: components["schemas"]["JiraSingleGroupPickerField"][]; + /** + * @description Add or clear a single line text field: + * + * * To add, provide the `text` value. + * * To clear, set `text` to an empty string. + */ + singleLineTextFields?: components["schemas"]["JiraSingleLineTextField"][]; + /** + * @description Edit assignment for single select user picker fields like Assignee/Reporter: + * + * * To assign an issue, specify the user's `accountId`. + * * To unassign an issue, set `user` to `null`. + * * For automatic assignment, set `accountId` to `-1`. + */ + singleSelectClearableUserPickerFields?: components["schemas"]["JiraSingleSelectUserPickerField"][]; + /** + * @description Add or clear a single select field: + * + * * To add, specify the option with an `optionId`. + * * To clear, pass an option with `optionId` as `-1`. + */ + singleSelectFields?: components["schemas"]["JiraSingleSelectField"][]; + /** + * @description Add or clear a single version picker field: + * + * * To add, specify the version with a `versionId`. + * * To clear, set `versionId` to `-1`. + */ + singleVersionPickerFields?: components["schemas"]["JiraSingleVersionPickerField"][]; + /** + * @description Add or clear a URL field: + * + * * To add, provide the `url` with the desired URL value. + * * To clear, set `url` to an empty string. + */ + urlFields?: components["schemas"]["JiraUrlField"][]; + }; + JiraIssueTypeField: { + issueTypeId: string; + }; + JiraLabelsField: { + /** @enum {string} */ + bulkEditMultiSelectFieldOption: "ADD" | "REMOVE" | "REPLACE" | "REMOVE_ALL"; + fieldId: string; + labels: components["schemas"]["JiraLabelsInput"][]; + }; + JiraLabelsInput: { + name: string; + }; + JiraMultiSelectComponentField: { + /** @enum {string} */ + bulkEditMultiSelectFieldOption: "ADD" | "REMOVE" | "REPLACE" | "REMOVE_ALL"; + components: components["schemas"]["JiraComponentField"][]; + fieldId: string; + }; + JiraMultipleGroupPickerField: { + fieldId: string; + groups: components["schemas"]["JiraGroupInput"][]; + }; + JiraMultipleSelectField: { + fieldId: string; + options: components["schemas"]["JiraSelectedOptionField"][]; + }; + JiraMultipleSelectUserPickerField: { + fieldId: string; + users?: components["schemas"]["JiraUserField"][]; + }; + JiraMultipleVersionPickerField: { + /** @enum {string} */ + bulkEditMultiSelectFieldOption: "ADD" | "REMOVE" | "REPLACE" | "REMOVE_ALL"; + fieldId: string; + versions: components["schemas"]["JiraVersionField"][]; + }; + JiraNumberField: { + fieldId: string; + /** Format: double */ + value?: number; + }; + JiraPriorityField: { + priorityId: string; + }; + JiraRichTextField: { + fieldId: string; + richText: components["schemas"]["JiraRichTextInput"]; + }; + JiraRichTextInput: { + adfValue?: { + [key: string]: unknown; + }; + }; + JiraSelectedOptionField: { + /** Format: int64 */ + optionId?: number; + }; + JiraSingleGroupPickerField: { + fieldId: string; + group: components["schemas"]["JiraGroupInput"]; + }; + JiraSingleLineTextField: { + fieldId: string; + text: string; + }; + /** + * @description Add or clear a single select field: + * + * * To add, specify the option with an `optionId`. + * * To clear, pass an option with `optionId` as `-1`. + */ + JiraSingleSelectField: { + fieldId: string; + option: components["schemas"]["JiraSelectedOptionField"]; + }; + JiraSingleSelectUserPickerField: { + fieldId: string; + user?: components["schemas"]["JiraUserField"]; + }; + JiraSingleVersionPickerField: { + fieldId: string; + version: components["schemas"]["JiraVersionField"]; + }; /** @description Details of a status. */ JiraStatus: { /** @description The description of the status. */ @@ -11538,6 +12151,16 @@ export interface components { /** @description The workflows that use this status. Only available if the `workflowUsages` expand is requested. */ workflowUsages?: components["schemas"]["WorkflowUsages"][]; }; + JiraUrlField: { + fieldId: string; + url: string; + }; + JiraUserField: { + accountId: string; + }; + JiraVersionField: { + versionId?: string; + }; /** @description Details of a workflow. */ JiraWorkflow: { /** @description The description of the workflow. */ @@ -11554,7 +12177,7 @@ export interface components { statuses?: components["schemas"]["WorkflowReferenceStatus"][]; /** @description If there is a current [asynchronous task](#async-operations) operation for this workflow. */ taskId?: string | null; - /** @description The transitions of the workflow. */ + /** @description The transitions of the workflow. Note that a transition can have either the deprecated `to`/`from` fields or the `toStatusReference`/`links` fields, but never both nor a combination. */ transitions?: components["schemas"]["WorkflowTransitions"][]; /** @description Use the optional `workflows.usages` expand to get additional information about the projects and issue types associated with the requested workflows. */ usages?: components["schemas"]["ProjectIssueTypes"][]; @@ -11642,17 +12265,9 @@ export interface components { where?: components["schemas"]["JqlQueryClause"]; }; /** @description A JQL query clause. */ - JqlQueryClause: - | components["schemas"]["CompoundClause"] - | components["schemas"]["FieldValueClause"] - | components["schemas"]["FieldWasClause"] - | components["schemas"]["FieldChangedClause"]; + JqlQueryClause: components["schemas"]["CompoundClause"] | components["schemas"]["FieldValueClause"] | components["schemas"]["FieldWasClause"] | components["schemas"]["FieldChangedClause"]; /** @description Details of an operand in a JQL clause. */ - JqlQueryClauseOperand: - | components["schemas"]["ListOperand"] - | components["schemas"]["ValueOperand"] - | components["schemas"]["FunctionOperand"] - | components["schemas"]["KeywordOperand"]; + JqlQueryClauseOperand: components["schemas"]["ListOperand"] | components["schemas"]["ValueOperand"] | components["schemas"]["FunctionOperand"] | components["schemas"]["KeywordOperand"]; /** @description A time predicate for a temporal JQL clause. */ JqlQueryClauseTimePredicate: { operand: components["schemas"]["JqlQueryClauseOperand"]; @@ -11717,10 +12332,7 @@ export interface components { query: string; }; /** @description An operand that can be part of a list operand. */ - JqlQueryUnitaryOperand: - | components["schemas"]["ValueOperand"] - | components["schemas"]["FunctionOperand"] - | components["schemas"]["KeywordOperand"]; + JqlQueryUnitaryOperand: components["schemas"]["ValueOperand"] | components["schemas"]["FunctionOperand"] | components["schemas"]["KeywordOperand"]; /** @description A JSON object with custom content. */ JsonContextVariable: { /** @description Type of custom context variable. */ @@ -11878,6 +12490,38 @@ export interface components { /** @description The locale code. The Java the locale format is used: a two character language code (ISO 639), an underscore, and two letter country code (ISO 3166). For example, en\_US represents a locale of English (United States). Required on create. */ locale?: string; }; + /** @description List of string of inputs */ + MandatoryFieldValue: { + /** + * @description If `true`, will try to retain original non-null issue field values on move. + * @default true + */ + retain?: boolean | null; + /** + * @description Will treat as `MandatoryFieldValue` if type is `raw` or `empty` + * @default raw + * @enum {string|null} + */ + type?: "adf" | "raw" | null; + /** @description Value for each field. Provide a `list of strings` for non-ADF fields. */ + value: string[]; + }; + /** @description An object notation input */ + MandatoryFieldValueForADF: { + /** + * @description If `true`, will try to retain original non-null issue field values on move. + * @default true + */ + retain?: boolean | null; + /** + * @description Will treat as `MandatoryFieldValueForADF` if type is `adf` + * @default raw + * @enum {string} + */ + type: "adf" | "raw"; + /** @description Value for each field. Accepts Atlassian Document Format (ADF) for rich text fields like `description`, `environments`. For ADF format details, refer to: [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure) */ + value: Record; + }; /** @description Overrides, for the selected issue types, any status mappings provided in `statusMappingsByWorkflows`. Status mappings are required when the new workflow for an issue type doesn't contain all statuses that the old workflow has. Status mappings can be provided by a combination of `statusMappingsByWorkflows` and `statusMappingsByIssueTypeOverride`. */ MappingsByIssueTypeOverride: { /** @description The ID of the issue type for this mapping. */ @@ -11965,8 +12609,8 @@ export interface components { name?: string; /** @description This property is no longer available. If the user has an Atlassian account, their password is not changed. If the user does not have an Atlassian account, they are sent an email asking them set up an account. */ password?: string; - /** @description Products the new user has access to. Valid products are: jira-core, jira-servicedesk, jira-product-discovery, jira-software. If left empty, the user will get default product access. To create a user without product access, set this field to be an empty array. */ - products?: string[]; + /** @description Products the new user has access to. Valid products are: jira-core, jira-servicedesk, jira-product-discovery, jira-software. To create a user without product access, set this field to be an empty array. */ + products: string[]; /** @description The URL of the user. */ self?: string; [key: string]: unknown; @@ -12133,6 +12777,38 @@ export interface components { position?: "First" | "Last"; }; /** @description A page of items. */ + PageBean2ComponentJsonBean: { + /** @description Whether this is the last page. */ + isLast?: boolean; + /** + * Format: int32 + * @description The maximum number of items that could be returned. + */ + maxResults?: number; + /** + * Format: uri + * @description If there is another page of results, the URL of the next page. + */ + nextPage?: string; + /** + * Format: uri + * @description The URL of the page. + */ + self?: string; + /** + * Format: int64 + * @description The index of the first item returned. + */ + startAt?: number; + /** + * Format: int64 + * @description The number of items returned. + */ + total?: number; + /** @description The list of items. */ + values?: readonly components["schemas"]["ComponentJsonBean"][]; + }; + /** @description A page of items. */ PageBeanChangelog: { /** @description Whether this is the last page. */ isLast?: boolean; @@ -13189,6 +13865,70 @@ export interface components { values?: readonly components["schemas"]["Priority"][]; }; /** @description A page of items. */ + PageBeanPrioritySchemeWithPaginatedPrioritiesAndProjects: { + /** @description Whether this is the last page. */ + isLast?: boolean; + /** + * Format: int32 + * @description The maximum number of items that could be returned. + */ + maxResults?: number; + /** + * Format: uri + * @description If there is another page of results, the URL of the next page. + */ + nextPage?: string; + /** + * Format: uri + * @description The URL of the page. + */ + self?: string; + /** + * Format: int64 + * @description The index of the first item returned. + */ + startAt?: number; + /** + * Format: int64 + * @description The number of items returned. + */ + total?: number; + /** @description The list of items. */ + values?: readonly components["schemas"]["PrioritySchemeWithPaginatedPrioritiesAndProjects"][]; + }; + /** @description A page of items. */ + PageBeanPriorityWithSequence: { + /** @description Whether this is the last page. */ + isLast?: boolean; + /** + * Format: int32 + * @description The maximum number of items that could be returned. + */ + maxResults?: number; + /** + * Format: uri + * @description If there is another page of results, the URL of the next page. + */ + nextPage?: string; + /** + * Format: uri + * @description The URL of the page. + */ + self?: string; + /** + * Format: int64 + * @description The index of the first item returned. + */ + startAt?: number; + /** + * Format: int64 + * @description The number of items returned. + */ + total?: number; + /** @description The list of items. */ + values?: readonly components["schemas"]["PriorityWithSequence"][]; + }; + /** @description A page of items. */ PageBeanProject: { /** @description Whether this is the last page. */ isLast?: boolean; @@ -14117,6 +14857,8 @@ export interface components { isDefault?: boolean; /** @description The name of the issue priority. */ name?: string; + /** @description Priority schemes associated with the issue priority. */ + schemes?: components["schemas"]["ExpandPrioritySchemePage"]; /** @description The URL of the issue priority. */ self?: string; /** @description The color used to indicate the issue priority. */ @@ -14129,6 +14871,73 @@ export interface components { id: string; [key: string]: unknown; }; + /** @description Mapping of issue priorities for changes in priority schemes. */ + PriorityMapping: { + /** @description The mapping of priorities for issues being migrated **into** this priority scheme. Key is the old priority ID, value is the new priority ID (must exist in this priority scheme). */ + in?: { + [key: string]: number; + }; + /** @description The mapping of priorities for issues being migrated **out of** this priority scheme. Key is the old priority ID (must exist in this priority scheme), value is the new priority ID (must exist in the default priority scheme). Required for updating an existing priority scheme. Not used when creating a new priority scheme. */ + out?: { + [key: string]: number; + }; + }; + PrioritySchemeChangesWithMappings: { + /** @description Affected entity ids. */ + ids: number[]; + /** @description Instructions to migrate issues. */ + mappings?: components["schemas"]["PriorityMapping"][]; + }; + PrioritySchemeChangesWithoutMappings: { + /** @description Affected entity ids. */ + ids: number[]; + }; + /** @description The ID of a priority scheme. */ + PrioritySchemeId: { + /** @description The ID of the priority scheme. */ + id?: string; + /** @description The in-progress issue migration task. */ + task?: components["schemas"]["TaskProgressBeanJsonNode"]; + }; + /** @description A priority scheme with paginated priorities and projects. */ + PrioritySchemeWithPaginatedPrioritiesAndProjects: { + default?: boolean; + /** @description The ID of the default issue priority. */ + defaultPriorityId?: string; + /** @description The description of the priority scheme */ + description?: string; + /** @description The ID of the priority scheme. */ + id: string; + isDefault?: boolean; + /** @description The name of the priority scheme */ + name: string; + /** @description The paginated list of priorities. */ + priorities?: components["schemas"]["PageBeanPriorityWithSequence"]; + /** @description The paginated list of projects. */ + projects?: components["schemas"]["PageBeanProjectDetails"]; + /** @description The URL of the priority scheme. */ + self?: string; + [key: string]: unknown; + }; + /** @description An issue priority with sequence information. */ + PriorityWithSequence: { + /** @description The description of the issue priority. */ + description?: string; + /** @description The URL of the icon for the issue priority. */ + iconUrl?: string; + /** @description The ID of the issue priority. */ + id?: string; + /** @description Whether this priority is the default. */ + isDefault?: boolean; + /** @description The name of the issue priority. */ + name?: string; + /** @description The URL of the issue priority. */ + self?: string; + /** @description The sequence of the issue priority. */ + sequence?: string; + /** @description The color used to indicate the issue priority. */ + statusColor?: string; + }; /** @description Details about a project. */ Project: { /** @description Whether the project is archived. */ @@ -14318,6 +15127,16 @@ export interface components { */ self?: string; }; + /** @description Details about data policies for a list of projects. */ + ProjectDataPolicies: { + /** @description List of projects with data policies. */ + projectDataPolicies?: readonly components["schemas"]["ProjectWithDataPolicy"][]; + }; + /** @description Details about data policy. */ + ProjectDataPolicy: { + /** @description Whether the project contains any content inaccessible to the requesting application. */ + anyContentBlocked?: boolean; + }; /** @description Details about a project. */ ProjectDetails: { /** @description The URLs of the project's avatars. */ @@ -14475,7 +15294,7 @@ export interface components { /** @description Use the optional `workflows.usages` expand to get additional information about the projects and issue types associated with the requested workflows. */ ProjectIssueTypes: { /** @description IDs of the issue types */ - issueTypes?: (string | null)[] | null; + issueTypes?: ((string | null)[]) | null; project?: components["schemas"]["ProjectId"]; }; /** @description Details of an issue type hierarchy level. */ @@ -14633,6 +15452,16 @@ export interface components { /** @description The key of the project type. */ key?: string; }; + /** @description Details about data policies for a project. */ + ProjectWithDataPolicy: { + /** @description Data policy. */ + dataPolicy?: components["schemas"]["ProjectDataPolicy"]; + /** + * Format: int64 + * @description The project ID. + */ + id?: number; + }; /** @description Property key details. */ PropertyKey: { /** @description The key of the property. */ @@ -14955,7 +15784,7 @@ export interface components { * Format: int64 * @description The ID of the default screen. Required when creating a screen scheme. */ - default?: number; + default: number; /** * Format: int64 * @description The ID of the edit screen. @@ -15585,7 +16414,10 @@ export interface components { oldStatusReference: string; [key: string]: unknown; }; - /** @description The status reference and port that a transition is connected to. */ + /** + * @deprecated + * @description The status reference and port that a transition is connected to. + */ StatusReferenceAndPort: { /** * Format: int32 @@ -15635,6 +16467,9 @@ export interface components { }; StreamingResponseBody: Record; StringList: Record; + SubmittedBulkOperation: { + taskId?: string; + }; /** @description An issue suggested for use in the issue picker auto-completion. */ SuggestedIssue: { /** @@ -15653,12 +16488,102 @@ export interface components { /** @description The phrase containing the query string, as plain text. */ summaryText?: string; }; + /** @description Details of changes to a priority scheme's priorities that require suggested priority mappings. */ + SuggestedMappingsForPrioritiesRequestBean: { + /** @description The ids of priorities being removed from the scheme. */ + add?: number[]; + /** @description The ids of priorities being removed from the scheme. */ + remove?: number[]; + }; + /** @description Details of changes to a priority scheme's projects that require suggested priority mappings. */ + SuggestedMappingsForProjectsRequestBean: { + /** @description The ids of projects being added to the scheme. */ + add?: number[]; + }; + /** @description Details of changes to a priority scheme that require suggested priority mappings. */ + SuggestedMappingsRequestBean: { + /** + * Format: int32 + * @description The maximum number of results that could be on the page. + */ + maxResults?: number; + /** @description The priority changes in the scheme. */ + priorities?: components["schemas"]["SuggestedMappingsForPrioritiesRequestBean"]; + /** @description The project changes in the scheme. */ + projects?: components["schemas"]["SuggestedMappingsForProjectsRequestBean"]; + /** + * Format: int64 + * @description The id of the priority scheme. + */ + schemeId?: number; + /** + * Format: int64 + * @description The index of the first item returned on the page. + */ + startAt?: number; + }; /** @description List of system avatars. */ SystemAvatars: { /** @description A list of avatar details. */ system?: readonly components["schemas"]["Avatar"][]; }; /** @description Details about a task. */ + TaskProgressBeanJsonNode: { + /** @description The description of the task. */ + description?: string; + /** + * Format: int64 + * @description The execution time of the task, in milliseconds. + */ + elapsedRuntime: number; + /** + * Format: int64 + * @description A timestamp recording when the task was finished. + */ + finished?: number; + /** @description The ID of the task. */ + id: string; + /** + * Format: int64 + * @description A timestamp recording when the task progress was last updated. + */ + lastUpdate: number; + /** @description Information about the progress of the task. */ + message?: string; + /** + * Format: int64 + * @description The progress of the task, as a percentage complete. + */ + progress: number; + /** @description The result of the task execution. */ + result?: components["schemas"]["JsonNode"]; + /** + * Format: uri + * @description The URL of the task. + */ + self: string; + /** + * Format: int64 + * @description A timestamp recording when the task was started. + */ + started?: number; + /** + * @description The status of the task. + * @enum {string} + */ + status: "ENQUEUED" | "RUNNING" | "COMPLETE" | "FAILED" | "CANCEL_REQUESTED" | "CANCELLED" | "DEAD"; + /** + * Format: int64 + * @description A timestamp recording when the task was submitted. + */ + submitted: number; + /** + * Format: int64 + * @description The ID of the user who submitted the task. + */ + submittedBy: number; + }; + /** @description Details about a task. */ TaskProgressBeanObject: { /** @description The description of the task. */ description?: string; @@ -15857,7 +16782,7 @@ export interface components { /** @description The name of the screen. */ name?: string; }; - /** @description The transitions of this workflow. */ + /** @description The transition update data. Note that a transition can have either the deprecated `to`/`from` fields or the `toStatusReference`/`links` fields, but never both nor a combination. */ TransitionUpdateDTO: { /** @description The post-functions of the transition. */ actions?: components["schemas"]["WorkflowRuleConfiguration"][]; @@ -15866,10 +16791,15 @@ export interface components { customIssueEventId?: string; /** @description The description of the transition. */ description?: string; - /** @description The statuses the transition can start from. */ + /** + * @deprecated + * @description The statuses and ports that the transition can start from. This field is deprecated - use `toStatusReference`/`links` instead. + */ from?: components["schemas"]["StatusReferenceAndPort"][]; /** @description The ID of the transition. */ id: string; + /** @description The statuses the transition can start from, and the mapping of ports between the statuses. */ + links?: components["schemas"]["WorkflowTransitionLinks"][]; /** @description The name of the transition. */ name: string; /** @description The properties of the transition. */ @@ -15877,6 +16807,8 @@ export interface components { [key: string]: string; }; to?: components["schemas"]["StatusReferenceAndPort"]; + /** @description The status the transition goes to. */ + toStatusReference?: string; transitionScreen?: components["schemas"]["WorkflowRuleConfiguration"]; /** @description The triggers of the transition. */ triggers?: components["schemas"]["WorkflowTrigger"][]; @@ -15973,20 +16905,12 @@ export interface components { * * `version`: `versionsearcher` * @enum {string} */ - searcherKey?: - | "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:daterange" - | "com.atlassian.jira.plugin.system.customfieldtypes:datetimerange" - | "com.atlassian.jira.plugin.system.customfieldtypes:exactnumber" - | "com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:numberrange" - | "com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:textsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher" - | "com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher"; + searcherKey?: "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:daterange" | "com.atlassian.jira.plugin.system.customfieldtypes:datetimerange" | "com.atlassian.jira.plugin.system.customfieldtypes:exactnumber" | "com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:numberrange" | "com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:textsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher" | "com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher"; + }; + /** @description The request for updating the default project classification level. */ + UpdateDefaultProjectClassificationBean: { + /** @description The ID of the project classification. */ + id: string; }; /** @description The ID of a screen scheme. */ UpdateDefaultScreenScheme: { @@ -16022,6 +16946,14 @@ export interface components { name?: string; [key: string]: unknown; }; + /** @description Update priorities in a scheme */ + UpdatePrioritiesInSchemeRequestBean: { + /** @description Priorities to add to a scheme */ + add?: components["schemas"]["PrioritySchemeChangesWithoutMappings"]; + /** @description Priorities to remove from a scheme */ + remove?: components["schemas"]["PrioritySchemeChangesWithMappings"]; + [key: string]: unknown; + }; /** @description Details of an issue priority. */ UpdatePriorityDetails: { /** @description The description of the priority. */ @@ -16030,23 +16962,38 @@ export interface components { * @description The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. * @enum {string} */ - iconUrl?: - | "/images/icons/priorities/blocker.png" - | "/images/icons/priorities/critical.png" - | "/images/icons/priorities/high.png" - | "/images/icons/priorities/highest.png" - | "/images/icons/priorities/low.png" - | "/images/icons/priorities/lowest.png" - | "/images/icons/priorities/major.png" - | "/images/icons/priorities/medium.png" - | "/images/icons/priorities/minor.png" - | "/images/icons/priorities/trivial.png"; + iconUrl?: "/images/icons/priorities/blocker.png" | "/images/icons/priorities/critical.png" | "/images/icons/priorities/high.png" | "/images/icons/priorities/highest.png" | "/images/icons/priorities/low.png" | "/images/icons/priorities/lowest.png" | "/images/icons/priorities/major.png" | "/images/icons/priorities/medium.png" | "/images/icons/priorities/minor.png" | "/images/icons/priorities/trivial.png" | "/images/icons/priorities/blocker_new.png" | "/images/icons/priorities/critical_new.png" | "/images/icons/priorities/high_new.png" | "/images/icons/priorities/highest_new.png" | "/images/icons/priorities/low_new.png" | "/images/icons/priorities/lowest_new.png" | "/images/icons/priorities/major_new.png" | "/images/icons/priorities/medium_new.png" | "/images/icons/priorities/minor_new.png" | "/images/icons/priorities/trivial_new.png"; /** @description The name of the priority. Must be unique. */ name?: string; /** @description The status color of the priority in 3-digit or 6-digit hexadecimal format. */ statusColor?: string; [key: string]: unknown; }; + /** @description Details of a priority scheme. */ + UpdatePrioritySchemeRequestBean: { + /** + * Format: int64 + * @description The default priority of the scheme. + */ + defaultPriorityId?: number; + /** @description The description of the priority scheme. */ + description?: string; + /** @description Instructions to migrate issues. */ + mappings?: components["schemas"]["PriorityMapping"]; + /** @description The name of the priority scheme. Must be unique. */ + name?: string; + /** @description The priorities in the scheme. */ + priorities?: components["schemas"]["UpdatePrioritiesInSchemeRequestBean"]; + /** @description The projects in the scheme. */ + projects?: components["schemas"]["UpdateProjectsInSchemeRequestBean"]; + }; + /** @description Details of the updated priority scheme. */ + UpdatePrioritySchemeResponseBean: { + priorityScheme?: components["schemas"]["PrioritySchemeWithPaginatedPrioritiesAndProjects"]; + /** @description The in-progress issue migration task. */ + task?: components["schemas"]["TaskProgressBeanJsonNode"]; + [key: string]: unknown; + }; /** @description Details about the project. */ UpdateProjectDetails: { /** @@ -16092,6 +17039,14 @@ export interface components { /** @description A link to information about this project, such as project documentation */ url?: string; }; + /** @description Update projects in a scheme */ + UpdateProjectsInSchemeRequestBean: { + /** @description Projects to add to a scheme */ + add?: components["schemas"]["PrioritySchemeChangesWithoutMappings"]; + /** @description Projects to remove from a scheme */ + remove?: components["schemas"]["PrioritySchemeChangesWithoutMappings"]; + [key: string]: unknown; + }; /** @description Details of an issue resolution. */ UpdateResolutionDetails: { /** @description The description of the resolution. */ @@ -16533,7 +17488,7 @@ export interface components { category: string; /** * Format: int64 - * @description The title of the related work + * @description The ID of the issue associated with the related work (if there is one). Cannot be updated via the Rest API. */ issueId?: number; /** @description The id of the related work. For the native release note related work item, this will be null, and Rest API does not support updating it. */ @@ -16542,7 +17497,7 @@ export interface components { title?: string; /** * Format: uri - * @description The URL of the related work + * @description The URL of the related work. Will be null for the native release note related work item, but is otherwise required. */ url?: string; }; @@ -16629,16 +17584,7 @@ export interface components { /** @description A webhook. */ Webhook: { /** @description The Jira events that trigger the webhook. */ - events: ( - | "jira:issue_created" - | "jira:issue_updated" - | "jira:issue_deleted" - | "comment_created" - | "comment_updated" - | "comment_deleted" - | "issue_property_set" - | "issue_property_deleted" - )[]; + events: ("jira:issue_created" | "jira:issue_updated" | "jira:issue_deleted" | "comment_created" | "comment_updated" | "comment_deleted" | "issue_property_set" | "issue_property_deleted")[]; /** * Format: int64 * @description The date after which the webhook is no longer sent. Use [Extend webhook life](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-webhooks/#api-rest-api-3-webhook-refresh-put) to extend the date. @@ -16659,16 +17605,7 @@ export interface components { /** @description A list of webhooks. */ WebhookDetails: { /** @description The Jira events that trigger the webhook. */ - events: ( - | "jira:issue_created" - | "jira:issue_updated" - | "jira:issue_deleted" - | "comment_created" - | "comment_updated" - | "comment_deleted" - | "issue_property_set" - | "issue_property_deleted" - )[]; + events: ("jira:issue_created" | "jira:issue_updated" | "jira:issue_deleted" | "comment_created" | "comment_updated" | "comment_deleted" | "issue_property_set" | "issue_property_deleted")[]; /** @description A list of field IDs. When the issue changelog contains any of the fields, the webhook `jira:issue_updated` is sent. If this parameter is not present, the app is notified about all field updates. */ fieldIdsFilter?: string[]; /** @description A list of issue property keys. A change of those issue properties triggers the `issue_property_set` or `issue_property_deleted` webhooks. If this parameter is not present, the app is notified about all issue property updates. */ @@ -16745,11 +17682,8 @@ export interface components { editorScope?: "PROJECT" | "GLOBAL"; /** @description The Forge provided ecosystem rules available. */ forgeRules?: components["schemas"]["AvailableWorkflowForgeRule"][]; - /** - * @description The types of projects that this capability set is available for. - * @enum {array} - */ - projectTypes?: unknown; + /** @description The types of projects that this capability set is available for. */ + projectTypes?: ("software" | "service_desk" | "product_discovery" | "business" | "unknown")[]; /** @description The Atlassian provided system rules available. */ systemRules?: components["schemas"]["AvailableWorkflowSystemRule"][]; /** @description The trigger rules available. */ @@ -16767,9 +17701,7 @@ export interface components { operator: "AND" | "OR"; }; /** @description The workflow transition rule conditions tree. */ - WorkflowCondition: - | components["schemas"]["WorkflowSimpleCondition"] - | components["schemas"]["WorkflowCompoundCondition"]; + WorkflowCondition: components["schemas"]["WorkflowSimpleCondition"] | components["schemas"]["WorkflowCompoundCondition"]; /** @description The details of the workflows to create. */ WorkflowCreate: { /** @description The description of the workflow to create. */ @@ -16893,7 +17825,7 @@ export interface components { statusReference?: string; }; /** @description The configuration of the rule. */ - WorkflowRuleConfiguration: { + WorkflowRuleConfiguration: ({ /** @description The ID of the rule. */ id?: string | null; /** @description The parameters related to the rule. */ @@ -16902,7 +17834,7 @@ export interface components { }; /** @description The rule key of the rule. */ ruleKey: string; - } | null; + }) | null; /** @description A collection of transition rules. */ WorkflowRules: { conditionsTree?: components["schemas"]["WorkflowCondition"]; @@ -17017,9 +17949,9 @@ export interface components { /** @description The workflow scheme read request body. */ WorkflowSchemeReadRequest: { /** @description The list of project IDs to query. */ - projectIds?: (string | null)[] | null; + projectIds?: ((string | null)[]) | null; /** @description The list of workflow scheme IDs to query. */ - workflowSchemeIds?: (string | null)[] | null; + workflowSchemeIds?: ((string | null)[]) | null; }; WorkflowSchemeReadResponse: { defaultWorkflow?: components["schemas"]["WorkflowMetadataRestModel"]; @@ -17104,8 +18036,11 @@ export interface components { [key: string]: unknown; }; }; - /** @description The status reference and port that a transition is connected to. */ - WorkflowStatusAndPort: { + /** + * @deprecated + * @description The status reference and port that a transition is connected to. + */ + WorkflowStatusAndPort: ({ /** * Format: int32 * @description The port the transition is connected to this status. @@ -17113,9 +18048,9 @@ export interface components { port?: number | null; /** @description The reference of this status. */ statusReference?: string; - } | null; + }) | null; /** @description The x and y location of the status in the workflow. */ - WorkflowStatusLayout: { + WorkflowStatusLayout: ({ /** * Format: double * @description The x axis location. @@ -17126,7 +18061,7 @@ export interface components { * @description The y axis location. */ y?: number | null; - } | null; + }) | null; /** @description Details of the status being updated. */ WorkflowStatusUpdate: { /** @description The description of the status. */ @@ -17154,6 +18089,21 @@ export interface components { /** @description The transition name. */ name: string; }; + /** @description The statuses the transition can start from, and the mapping of ports between the statuses. */ + WorkflowTransitionLinks: ({ + /** + * Format: int32 + * @description The port that the transition starts from. + */ + fromPort?: number | null; + /** @description The status that the transition starts from. */ + fromStatusReference?: string | null; + /** + * Format: int32 + * @description The port that the transition goes to. + */ + toPort?: number | null; + }) | null; /** @description Details about the server Jira is running on. */ WorkflowTransitionProperty: { /** @description The ID of the transition property. */ @@ -17207,7 +18157,7 @@ export interface components { /** @description A list of workflows. */ updateResults: components["schemas"]["WorkflowTransitionRulesUpdateErrorDetails"][]; }; - /** @description The transitions of the workflow. */ + /** @description The transitions of the workflow. Note that a transition can have either the deprecated `to`/`from` fields or the `toStatusReference`/`links` fields, but never both nor a combination. */ WorkflowTransitions: { /** @description The post-functions of the transition. */ actions?: components["schemas"]["WorkflowRuleConfiguration"][]; @@ -17216,10 +18166,15 @@ export interface components { customIssueEventId?: string | null; /** @description The description of the transition. */ description?: string; - /** @description The statuses the transition can start from. */ + /** + * @deprecated + * @description The statuses and ports that the transition can start from. This field is deprecated - use `toStatusReference`/`links` instead. + */ from?: components["schemas"]["WorkflowStatusAndPort"][]; /** @description The ID of the transition. */ id?: string; + /** @description The statuses the transition can start from, and the mapping of ports between the statuses. */ + links?: components["schemas"]["WorkflowTransitionLinks"][]; /** @description The name of the transition. */ name?: string; /** @description The properties of the transition. */ @@ -17227,6 +18182,8 @@ export interface components { [key: string]: string; }; to?: components["schemas"]["WorkflowStatusAndPort"]; + /** @description The status the transition goes to. */ + toStatusReference?: string; transitionScreen?: components["schemas"]["WorkflowRuleConfiguration"]; /** @description The triggers of the transition. */ triggers?: components["schemas"]["WorkflowTrigger"][]; @@ -17309,17 +18266,7 @@ export interface components { * @description The type of element the error or warning references. * @enum {string} */ - type?: - | "RULE" - | "STATUS" - | "STATUS_LAYOUT" - | "STATUS_PROPERTY" - | "WORKFLOW" - | "TRANSITION" - | "TRANSITION_PROPERTY" - | "SCOPE" - | "STATUS_MAPPING" - | "TRIGGER"; + type?: "RULE" | "STATUS" | "STATUS_LAYOUT" | "STATUS_PROPERTY" | "WORKFLOW" | "TRANSITION" | "TRANSITION_PROPERTY" | "SCOPE" | "STATUS_MAPPING" | "TRIGGER"; }; WorkflowValidationErrorList: { /** @description The list of validation errors. */ @@ -17379,6 +18326,85 @@ export interface components { /** @description A list of worklog IDs. */ ids: number[]; }; + /** @description Details about data policy. */ + WorkspaceDataPolicy: { + /** @description Whether the workspace contains any content inaccessible to the requesting application. */ + anyContentBlocked?: boolean; + }; + /** @description Can contain multiple field values of following types depending on `type` key */ + fields: ({ + /** + * @description If `true`, will try to retain original non-null issue field values on move. + * @default true + */ + retain?: boolean | null; + /** @enum {string} */ + type?: "adf" | "raw"; + value?: Record; + }) & (components["schemas"]["MandatoryFieldValue"] | components["schemas"]["MandatoryFieldValueForADF"]); + /** @description Field mapping for mandatory fields in target */ + targetMandatoryFields: { + /** @description Contains the value of mandatory fields */ + fields: { + [key: string]: components["schemas"]["fields"]; + }; + } | null; + /** @description Status mapping for statuses in source workflow to respective target status in target workflow. */ + targetStatus: { + /** @description An object with the key as the ID of the target status and value with the list of the IDs of the current source statuses. */ + statuses: { + [key: string]: string[]; + }; + } | null; + /** @description An object representing the mapping of issues and data related to destination entities, like fields and statuses, that are required during a bulk move. */ + targetToSourcesMapping: { + /** + * @description If `true`, values from the source issues will be retained for the mandatory fields in the field configuration of the destination project. The `targetMandatoryFields` property shouldn't be defined. + * + * If `false`, the user is required to set values for mandatory fields present in the field configuration of the destination project. Provide input by defining the `targetMandatoryFields` property + */ + inferFieldDefaults: boolean; + /** + * @description If `true`, the statuses of issues being moved in this target group that are not present in the target workflow will be changed to the default status of the target workflow (see below). Leave `targetStatus` empty when using this. + * + * If `false`, you must provide a `targetStatus` for each status not present in the target workflow. + * + * The default status in a workflow is referred to as the "initial status". Each workflow has its own unique initial status. When an issue is created, it is automatically assigned to this initial status. Read more about configuring initial statuses: [Configure the initial status | Atlassian Support.](https://support.atlassian.com/jira-cloud-administration/docs/configure-the-initial-status/) + */ + inferStatusDefaults: boolean; + /** + * @description When an issue is moved, its subtasks (if there are any) need to be moved with it. `inferSubtaskTypeDefault` helps with moving the subtasks by picking a random subtask type in the target project. + * + * If `true`, subtasks will automatically move to the same project as their parent. + * + * When they move: + * + * * Their `issueType` will be set to the default for subtasks in the target project. + * * Values for mandatory fields will be retained from the source issues + * * Specifying separate mapping for implicit subtasks won’t be allowed. + * + * If `false`, you must manually move the subtasks. They will retain the parent which they had in the current project after being moved. + */ + inferSubtaskTypeDefault: boolean; + /** @description List of issue IDs or keys to be moved. These issues must be from the same project, have the same issue type, and be from the same parent (if they’re subtasks). */ + issueIdsOrKeys?: string[]; + /** + * @description List of objects containing mandatory fields in the target field configuration and new values that need to be set during the bulk move operation. + * + * The new values will only be applied if the field is mandatory in the target project and at least one issue from the source has that field empty, or if the field context is different in the target project (e.g. project-scoped version fields). + * + * **You should only define this property when `inferFieldDefaults` is `false`.** + */ + targetMandatoryFields?: components["schemas"]["targetMandatoryFields"][] | null; + /** + * @description List of the objects containing statuses in the source workflow and their new values which need to be set during the bulk move operation. + * + * The new values will only be applied if the source status is invalid for the target project and issue type. + * + * **You should only define this property when `inferStatusDefaults` is `false`.** + */ + targetStatus?: components["schemas"]["targetStatus"][] | null; + }; }; responses: never; parameters: never; @@ -17392,6 +18418,7 @@ export type $defs = Record; export type external = Record; export interface operations { + /** * Get announcement banner configuration * @description Returns the current announcement banner configuration. @@ -17978,7 +19005,7 @@ export interface operations { /** @description Returned if the request is successful when `redirect` is set to `false`. */ 200: { content: { - "application/json": components["schemas"]["StreamingResponseBody"]; + "application/json": unknown[]; }; }; /** @description Returned if the request is successful when a `Range` header is provided and `redirect` is set to `false`. */ @@ -18074,7 +19101,7 @@ export interface operations { /** @description Returned if the request is successful when `redirect` is set to `false`. */ 200: { content: { - "application/json": components["schemas"]["StreamingResponseBody"]; + "application/json": unknown[]; }; }; /** @description Returned if the request is successful. See the `Location` header for the download URL. */ @@ -18382,6 +19409,309 @@ export interface operations { }; }; }; + /** + * Get bulk editable fields + * @description Use this API to get a list of fields visible to the user to perform bulk edit operations. You can pass single or multiple issues in the query to get eligible editable fields. This API uses pagination to return responses, delivering 50 fields at a time. + * + * This method is experimental and may change. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in all projects that contain the selected issues. + */ + getBulkEditableFields: { + parameters: { + query: { + /** @description The IDs or keys of the issues to get editable fields from. */ + issueIdsOrKeys: string; + /** @description (Optional)The text to search for in the editable fields. */ + searchText?: string; + /** @description (Optional)The end cursor for use in pagination. */ + endingBefore?: string; + /** @description (Optional)The start cursor for use in pagination. */ + startingAfter?: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["BulkEditGetFields"]; + }; + }; + /** @description Returned if the request is not valid. */ + 400: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + /** @description Returned if the user does not have the necessary permission. */ + 403: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + /** @description Returned if no editable fields are found for the provided issue IDs. */ + 404: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + }; + }; + /** + * Bulk edit issues + * @description Use this API to submit a bulk edit request and simultaneously edit multiple issues. There are limits applied to the number of issues and fields that can be edited. A single request can accommodate a maximum of 1000 issues (including subtasks) and 200 fields. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in all projects that contain the selected issues. + */ + submitBulkEdit: { + parameters: { + query?: { + /** @description A boolean value that indicates whether to send a bulk change notification when the issues are being edited. */ + sendBulkNotification?: boolean; + }; + }; + /** @description The request body containing the issues to be edited and the new field values. */ + requestBody: { + content: { + "application/json": components["schemas"]["IssueBulkEditPayload"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 201: { + content: { + "application/json": components["schemas"]["SubmittedBulkOperation"]; + }; + }; + /** @description Returned if the request is invalid. */ + 400: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + }; + }; + /** + * Bulk move issues + * @description Use this API to submit a bulk issue move request. You can move multiple issues, but they must all be moved to and from a single project, issue type, and parent. You can't move more than 1000 issues (including subtasks) at once. + * + * #### Scenarios: #### + * + * This is an early version of the API and it doesn't have full feature parity with the Bulk Move UI experience. + * + * * Moving issue of type A to issue of type B in the same project or a different project: `SUPPORTED` + * * Moving multiple issues of type A in one project to multiple issues of type B in the same project or a different project: **`SUPPORTED`** + * * Moving a standard parent issue of type A with its multiple subtask issue types in one project to standard issue of type B and multiple subtask issue types in the same project or a different project: `SUPPORTED` + * * Moving an epic issue with its child issues to a different project without losing their relation: `NOT SUPPORTED` + * (Workaround: Move them individually and stitch the relationship back with the Bulk Edit API) + * + * #### Limits applied to bulk issue moves: #### + * + * When using the bulk move, keep in mind that there are limits on the number of issues and fields you can include. + * + * * You can move up to 1,000 issues in a single operation, including any subtasks. + * * All issues must originate from the same project and share the same issue type and parent. + * * The total combined number of fields across all issues must not exceed 1,500,000. For example, if each issue includes 15,000 fields, then the maximum number of issues that can be moved is 100. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Move [issues permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in source projects. + * * Create [issues permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in destination projects. + * * Browse [project permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/) in destination projects, if moving subtasks only. + */ + submitBulkMove: { + requestBody: { + content: { + /** + * @example { + * "targetToSourcesMapping": { + * "PROJECT-KEY,10001": { + * "inferFieldDefaults": false, + * "inferStatusDefaults": false, + * "inferSubtaskTypeDefault": true, + * "issueIdsOrKeys": [ + * "ISSUE-1" + * ], + * "targetMandatoryFields": [ + * { + * "fields": { + * "customfield_10000": { + * "retain": false, + * "type": "raw", + * "value": [ + * "value-1", + * "value-2" + * ] + * }, + * "description": { + * "retain": true, + * "type": "adf", + * "value": { + * "content": [ + * { + * "content": [ + * { + * "text": "New description value", + * "type": "text" + * } + * ], + * "type": "paragraph" + * } + * ], + * "type": "doc", + * "version": 1 + * } + * }, + * "fixVersions": { + * "retain": false, + * "type": "raw", + * "value": [ + * "10009" + * ] + * }, + * "labels": { + * "retain": false, + * "type": "raw", + * "value": [ + * "label-1", + * "label-2" + * ] + * } + * } + * } + * ], + * "targetStatus": [ + * { + * "statuses": { + * "10001": [ + * "10002", + * "10003" + * ] + * } + * } + * ] + * } + * } + * } + */ + "application/json": components["schemas"]["IssueBulkMovePayload"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["SubmittedBulkOperation"]; + }; + }; + /** @description Returned if the request is invalid. */ + 400: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["BulkOperationErrorResponse"]; + }; + }; + }; + }; + /** + * Get bulk issue operation progress + * @description Use this to get the progress state for the specified bulk operation `taskId`. + * + * **[Permissions](#permissions) required:** + * + * * Global bulk change [permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/). + * * Administer Jira [global permission](https://support.atlassian.com/jira-cloud-administration/docs/manage-global-permissions/), or be the creator of the task. + * + * If the task is running, this resource will return: + * + * {"taskId":"10779","status":"RUNNING","progressPercent":65,"submittedBy":{"accountId":"5b10a2844c20165700ede21g"},"created":1690180055963,"started":1690180056206,"updated":169018005829} + * + * If the task has completed, then this resource will return: + * + * {"processedAccessibleIssues":[10001,10002],"created":1709189449954,"progressPercent":100,"started":1709189450154,"status":"COMPLETE","submittedBy":{"accountId":"5b10a2844c20165700ede21g"},"invalidOrInaccessibleIssueCount":0,"taskId":"10000","totalIssueCount":2,"updated":1709189450354} + * + * **Note:** You can view task progress for up to 14 days from creation. + */ + getBulkOperationProgress: { + parameters: { + path: { + /** @description The ID of the task. */ + taskId: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["BulkOperationProgress"]; + }; + }; + /** @description Returned if the request is invalid. */ + 400: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + }; + }; + /** + * Get all classification levels + * @description Returns all classification levels. + * + * **[Permissions](#permissions) required:** None. + */ + getAllUserDataClassificationLevels: { + parameters: { + query?: { + /** @description Optional set of statuses to filter by. */ + status?: ("PUBLISHED" | "ARCHIVED" | "DRAFT")[]; + /** @description Ordering of the results by a given field. If not provided, values will not be sorted. */ + orderBy?: "rank" | "-rank" | "+rank"; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["DataClassificationLevelsBean"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: never; + }; + }; + }; /** * Get comments by IDs * @description Returns a [paginated](#pagination) list of comments specified by a list of comment IDs. @@ -18547,6 +19877,7 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; @@ -18626,6 +19957,51 @@ export interface operations { }; }; }; + /** + * Find components for projects + * @description Returns a [paginated](#pagination) list of all components in a project, including global (Compass) components when applicable. + * + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + */ + findComponentsForProjects: { + parameters: { + query?: { + /** @description The project IDs and/or project keys (case sensitive). */ + projectIdsOrKeys?: string[]; + /** @description The index of the first item to return in a page of results (page offset). */ + startAt?: number; + /** @description The maximum number of items to return per page. */ + maxResults?: number; + /** + * @description [Order](#ordering) the results by a field: + * + * * `description` Sorts by the component description. + * * `name` Sorts by component name. + */ + orderBy?: "description" | "-description" | "+description" | "name" | "-name" | "+name"; + /** @description Filter the results using a literal string. Components with a matching `name` or `description` are returned (case insensitive). */ + query?: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBean2ComponentJsonBean"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: never; + }; + /** @description Returned if the project is not found or the user does not have permission to view it. */ + 404: { + content: never; + }; + }; + }; /** * Create component * @description Creates a component. Use components to provide containers for issues within a project. Use components to provide containers for issues within a project. @@ -19127,6 +20503,12 @@ export interface operations { * **[Permissions](#permissions) required:** None. */ createDashboard: { + parameters: { + query?: { + /** @description Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) */ + extendAdminPermissions?: boolean; + }; + }; /** @description Dashboard details. */ requestBody: { content: { @@ -19298,25 +20680,7 @@ export interface operations { * * `name` Sorts by dashboard name. * * `owner` Sorts by dashboard owner name. */ - orderBy?: - | "description" - | "-description" - | "+description" - | "favorite_count" - | "-favorite_count" - | "+favorite_count" - | "id" - | "-id" - | "+id" - | "is_favorite" - | "-is_favorite" - | "+is_favorite" - | "name" - | "-name" - | "+name" - | "owner" - | "-owner" - | "+owner"; + orderBy?: "description" | "-description" | "+description" | "favorite_count" | "-favorite_count" | "+favorite_count" | "id" | "-id" | "+id" | "is_favorite" | "-is_favorite" | "+is_favorite" | "name" | "-name" | "+name" | "owner" | "-owner" | "+owner"; /** @description The index of the first item to return in a page of results (page offset). */ startAt?: number; /** @description The maximum number of items to return per page. */ @@ -19672,7 +21036,7 @@ export interface operations { propertyKey: string; }; }; - /** @description The request containing the value of the dashboard item's property. */ + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { /** @@ -19836,6 +21200,10 @@ export interface operations { */ updateDashboard: { parameters: { + query?: { + /** @description Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) */ + extendAdminPermissions?: boolean; + }; path: { /** @description The ID of the dashboard to update. */ id: string; @@ -19930,6 +21298,10 @@ export interface operations { */ copyDashboard: { parameters: { + query?: { + /** @description Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) */ + extendAdminPermissions?: boolean; + }; path: { id: string; }; @@ -19979,6 +21351,70 @@ export interface operations { }; }; }; + /** + * Get data policy for the workspace + * @description Returns data policy for the workspace. + */ + getPolicy: { + responses: { + /** @description Returned if the request is successful */ + 200: { + content: { + "application/json": components["schemas"]["WorkspaceDataPolicy"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + /** @description Returned if the client is not authorized to make the request. */ + 403: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + }; + }; + /** + * Get data policy for projects + * @description Returns data policies for the projects specified in the request. + */ + getPolicies: { + parameters: { + query?: { + /** @description A list of project identifiers. This parameter accepts a comma-separated list. */ + ids?: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["ProjectDataPolicies"]; + }; + }; + /** @description Returned if the request is not valid or includes invalid or not-permitted project identifiers. */ + 400: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + /** @description Returned if the client is not authorized to make the request. */ + 403: { + content: { + "application/json": components["schemas"]["ErrorCollection"]; + }; + }; + }; + }; /** * Get events * @description Returns all issue events. @@ -20297,26 +21733,12 @@ export interface operations { * * `name` sorts by the field name * * `screensCount` sorts by the number of screens related to a field */ - orderBy?: - | "contextsCount" - | "-contextsCount" - | "+contextsCount" - | "lastUsed" - | "-lastUsed" - | "+lastUsed" - | "name" - | "-name" - | "+name" - | "screensCount" - | "-screensCount" - | "+screensCount" - | "projectsCount" - | "-projectsCount" - | "+projectsCount"; + orderBy?: "contextsCount" | "-contextsCount" | "+contextsCount" | "lastUsed" | "-lastUsed" | "+lastUsed" | "name" | "-name" | "+name" | "screensCount" | "-screensCount" | "+screensCount" | "projectsCount" | "-projectsCount" | "+projectsCount"; /** * @description Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include: * * * `key` returns the key for each field + * * `stableId` returns the stableId for each field * * `lastUsed` returns the date when the value of the field last changed * * `screensCount` returns the number of screens related to a field * * `contextsCount` returns the number of contexts related to a field @@ -20369,19 +21791,7 @@ export interface operations { id?: string[]; /** @description String used to perform a case-insensitive partial match with field names or descriptions. */ query?: string; - expand?: - | "name" - | "-name" - | "+name" - | "trashDate" - | "-trashDate" - | "+trashDate" - | "plannedDeletionDate" - | "-plannedDeletionDate" - | "+plannedDeletionDate" - | "projectsCount" - | "-projectsCount" - | "+projectsCount"; + expand?: "name" | "-name" | "+name" | "trashDate" | "-trashDate" | "+trashDate" | "plannedDeletionDate" | "-plannedDeletionDate" | "+plannedDeletionDate" | "projectsCount" | "-projectsCount" | "+projectsCount"; /** * @description [Order](#ordering) the results by a field: * @@ -21488,6 +22898,54 @@ export interface operations { }; }; }; + /** + * Replace custom field options + * @description Replaces the options of a custom field. + * + * Note that this operation **only works for issue field select list options created in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options) resource**, it cannot be used with issue field select list options created by Connect or Forge apps. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + replaceCustomFieldOption: { + parameters: { + query?: { + /** @description The ID of the option that will replace the currently selected option. */ + replaceWith?: number; + /** @description A JQL query that specifies the issues to be updated. For example, *project=10000*. */ + jql?: string; + }; + path: { + /** @description The ID of the custom field. */ + fieldId: string; + /** @description The ID of the option to be deselected. */ + optionId: number; + /** @description The ID of the context. */ + contextId: number; + }; + }; + responses: { + /** @description Returned if the long-running task to deselect the option is started. */ + 303: { + content: { + "application/json": components["schemas"]["TaskProgressBeanRemoveOptionFromIssuesResult"]; + }; + }; + /** @description Returned if the request is not valid. */ + 400: { + content: never; + }; + /** @description Returned if the user does not have the necessary permission. */ + 403: { + content: { + "application/json": unknown; + }; + }; + /** @description Returned if the field is not found or does not support options, or the options to be replaced are not found. */ + 404: { + content: never; + }; + }; + }; /** * Assign custom field context to projects * @description Assigns a custom field context to projects. @@ -22574,14 +24032,14 @@ export interface operations { }; }; /** - * Get all fieldg rnfiguration schemes + * Get all field configuration schemes * @description Returns a [paginated](#pagination) list of field configuration schemes. * * Only field configuration schemes used in classic projects are returned. * * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ - getAllFieldgRnfigurationSchemes: { + getAllFieldConfigurationSchemes: { parameters: { query?: { /** @description The index of the first item to return in a page of results (page offset). */ @@ -23251,28 +24709,7 @@ export interface operations { * * `owner` Sorts by the ID of the filter owner. * * `is_shared` Sorts by whether the filter is shared. */ - orderBy?: - | "description" - | "-description" - | "+description" - | "favourite_count" - | "-favourite_count" - | "+favourite_count" - | "id" - | "-id" - | "+id" - | "is_favourite" - | "-is_favourite" - | "+is_favourite" - | "name" - | "-name" - | "+name" - | "owner" - | "-owner" - | "+owner" - | "is_shared" - | "-is_shared" - | "+is_shared"; + orderBy?: "description" | "-description" | "+description" | "favourite_count" | "-favourite_count" | "+favourite_count" | "id" | "-id" | "+id" | "is_favourite" | "-is_favourite" | "+is_favourite" | "name" | "-name" | "+name" | "owner" | "-owner" | "+owner" | "is_shared" | "-is_shared" | "+is_shared"; /** @description The index of the first item to return in a page of results (page offset). */ startAt?: number; /** @description The maximum number of items to return per page. */ @@ -23289,6 +24726,7 @@ export interface operations { * * `sharePermissions` Returns the share permissions defined for the filter. * * `editPermissions` Returns the edit permissions defined for the filter. * * `isWritable` Returns whether the current user has permission to edit the filter. + * * `approximateLastUsed` \[Experimental\] Returns the approximate date and time when the filter was last evaluated. * * `subscriptions` Returns the users that are subscribed to the filter. * * `viewUrl` Returns a URL to view the filter. */ @@ -23520,10 +24958,11 @@ export interface operations { }; }; /** @description The IDs of the fields to set as columns. In the form data, specify each field as `columns=id`, where `id` is the *id* of a field (as seen in the response for [Get fields](#api-rest-api--field-get)). For example, `columns=summary`. */ - requestBody?: { + requestBody: { content: { - "*/*": string[]; - "multipart/form-data": string[]; + "*/*": components["schemas"]["ColumnRequestBody"]; + "application/json": components["schemas"]["ColumnRequestBody"]; + "multipart/form-data": components["schemas"]["ColumnRequestBody"]; }; }; responses: { @@ -23913,7 +25352,10 @@ export interface operations { * * Returns all users in a group. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * **[Permissions](#permissions) required:** either of: + * + * * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ getGroup: { parameters: { @@ -24095,7 +25537,10 @@ export interface operations { * * Note that users are ordered by username, however the username is not returned in the results due to privacy reasons. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * **[Permissions](#permissions) required:** either of: + * + * * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). */ getUsersFromGroup: { parameters: { @@ -24336,28 +25781,7 @@ export interface operations { /** @description The ID of an issue type that returned users and groups must have permission to view. To include multiple issue types, provide an ampersand-separated list. For example, `issueTypeId=10000&issueTypeId=10001`. Special values, such as `-1` (all standard issue types) and `-2` (all subtask issue types), are supported. This parameter is only used when `fieldId` is present. */ issueTypeId?: string[]; /** @description The size of the avatar to return. If an invalid value is provided, the default value is used. */ - avatarSize?: - | "xsmall" - | "xsmall@2x" - | "xsmall@3x" - | "small" - | "small@2x" - | "small@3x" - | "medium" - | "medium@2x" - | "medium@3x" - | "large" - | "large@2x" - | "large@3x" - | "xlarge" - | "xlarge@2x" - | "xlarge@3x" - | "xxlarge" - | "xxlarge@2x" - | "xxlarge@3x" - | "xxxlarge" - | "xxxlarge@2x" - | "xxxlarge@3x"; + avatarSize?: "xsmall" | "xsmall@2x" | "xsmall@3x" | "small" | "small@2x" | "small@3x" | "medium" | "medium@2x" | "medium@3x" | "large" | "large@2x" | "large@3x" | "xlarge" | "xlarge@2x" | "xlarge@3x" | "xxlarge" | "xxlarge@2x" | "xxlarge@3x" | "xxxlarge" | "xxxlarge@2x" | "xxxlarge@3x"; /** @description Whether the search for groups should be case insensitive. */ caseInsensitive?: boolean; /** @description Whether Connect app users and groups should be excluded from the search results. If an invalid value is provided, the default value is used. */ @@ -25062,6 +26486,8 @@ export interface operations { * @deprecated * @description Returns details of projects, issue types within projects, and, when requested, the create screen fields for each issue type for the user. Use the information to populate the requests in [ Create issue](#api-rest-api-3-issue-post) and [Create issues](#api-rest-api-3-issue-bulk-post). * + * Deprecated, see [Create Issue Meta Endpoint Deprecation Notice](https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1304). + * * The request can be restricted to specific projects or issue types using the query parameters. The response will contain information for the valid projects, issue types, or project and issue type combinations requested. Note that invalid project, issue type, or project and issue type combinations do not generate errors. * * This operation can be accessed anonymously. @@ -25178,6 +26604,57 @@ export interface operations { }; }; }; + /** + * Get issue limit report + * @description Returns all issues breaching and approaching per-issue limits. + * + * **[Permissions](#permissions) required:** + * + * * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) is required for the project the issues are in. Results may be incomplete otherwise + * * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + getIssueLimitReport: { + parameters: { + query?: { + /** + * @description Return issue keys instead of issue ids in the response. + * + * Usage: Add `?isReturningKeys=true` to the end of the path to request issue keys. + */ + isReturningKeys?: boolean; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["IssueLimitReportRequest"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["IssueLimitReportResponseBean"]; + }; + }; + /** + * @description Returned if the request is invalid. Other possible reasons: + * + * * the field queried is not supported + * * the threshold is not within the supported range + */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: never; + }; + /** @description Returned if the user does not have permission to complete this request. */ + 403: { + content: never; + }; + }; + }; /** * Get issue picker suggestions * @description Returns lists of issues matching a query string. Use this resource to provide auto-completion suggestions when the user is looking for an issue using a word or string. @@ -25658,6 +27135,8 @@ export interface operations { properties?: string[]; /** @description Whether the project in which the issue is created is added to the user's **Recently viewed** project list, as shown under **Projects** in Jira. This also populates the [JQL issues search](#api-rest-api-3-search-get) `lastViewed` field. */ updateHistory?: boolean; + /** @description Whether to fail the request quickly in case of an error while loading fields for an issue. For `failFast=true`, if one field fails, the entire operation fails. For `failFast=false`, the operation will continue even if a field fails. It will return a valid response, but without values for the failed field(s). */ + failFast?: boolean; }; path: { /** @description The ID or key of the issue. */ @@ -25683,7 +27162,7 @@ export interface operations { }; /** * Edit issue - * @description Edits an issue. A transition may be applied and issue properties updated as part of the edit. + * @description Edits an issue. Issue properties may be updated as part of the edit. Please note that issue transition will be ignored as it is not supported yet. * * The edits to the issue's fields are defined using `update` and `fields`. The fields that can be edited are determined using [ Get edit issue metadata](#api-rest-api-3-issue-issueIdOrKey-editmeta-get). * @@ -26145,7 +27624,15 @@ export interface operations { 404: { content: never; }; - /** @description The attachments exceed the maximum attachment size for issues, or more than 60 files are requested to be uploaded. See [Configuring file attachments](https://confluence.atlassian.com/x/wIXKM) for details. */ + /** + * @description Returned if any of the following is true: + * + * * the attachments exceed the maximum attachment size for issues. + * * more than 60 files are requested to be uploaded. + * * the per-issue limit for attachments has been breached. + * + * See [Configuring file attachments](https://confluence.atlassian.com/x/wIXKM) for details. + */ 413: { content: never; }; @@ -26356,6 +27843,15 @@ export interface operations { 404: { content: never; }; + /** + * @description Returned if the per-issue limit has been breached for one of the following fields: + * + * * comments + * * attachments + */ + 413: { + content: never; + }; }; }; /** @@ -26771,6 +28267,7 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; @@ -26889,6 +28386,10 @@ export interface operations { 404: { content: never; }; + /** @description Returned if the per-issue limit for remote links has been breached. */ + 413: { + content: never; + }; }; }; /** @@ -26936,7 +28437,7 @@ export interface operations { * "resolved": true * }, * "summary": "Customer support issue", - * "title": "TSTSUP-111",board + * "title": "TSTSUP-111", * "url": "http://www.mycompany.com/support?id=1" * }, * "relationship": "causes" @@ -27375,6 +28876,18 @@ export interface operations { 409: { content: never; }; + /** + * @description Returned if a per-issue limit has been breached for one of the following fields: + * + * * comments + * * worklogs + * * attachments + * * issue links + * * remote issue links + */ + 413: { + content: never; + }; /** @description Returned if a configuration problem prevents the creation of the issue. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364) *for more details.* */ 422: { content: never; @@ -27647,7 +29160,7 @@ export interface operations { }; /** * Get issue worklogs - * @description Returns worklogs for an issue, starting from the oldest worklog or from the worklog started on or after a date and time. + * @description Returns worklogs for an issue (ordered by created time), starting from the oldest worklog or from the worklog started on or after a date and time. * * Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM). * @@ -27798,6 +29311,15 @@ export interface operations { 404: { content: never; }; + /** + * @description Returned if the per-issue limit has been breached for one of the following fields: + * + * * worklogs + * * attachments + */ + 413: { + content: never; + }; }; }; /** @@ -28157,6 +29679,7 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; @@ -28335,6 +29858,10 @@ export interface operations { 404: { content: never; }; + /** @description Returned if the per-issue limit for issue links has been breached. */ + 413: { + content: never; + }; }; }; /** @@ -29229,7 +30756,7 @@ export interface operations { }; }; /** - * Get issue security level members + * Get issue security level members by issue security scheme * @description Returns issue security level members. * * Only issue security level members in context of classic projects are returned. @@ -30125,6 +31652,7 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { /** @@ -31593,7 +33121,7 @@ export interface operations { */ parseJqlQueries: { parameters: { - query?: { + query: { /** * @description How to validate the JQL query and treat the validation results. Validation options include: * @@ -31601,7 +33129,7 @@ export interface operations { * * `warn` Returns all errors. If validation fails but the JQL query is correctly formed, the query structure is returned. * * `none` No validation is performed. If JQL query is correctly formed, the query structure is returned. */ - validation?: "strict" | "warn" | "none"; + validation: "strict" | "warn" | "none"; }; }; requestBody: { @@ -31847,12 +33375,9 @@ export interface operations { * * This means that users may be shown as having an issue permission (such as EDIT\_ISSUES) in the global context or a project context but may not have the permission for any or all issues. For example, if Reporters have the EDIT\_ISSUES permission a user would be shown as having this permission in the global context or the context of a project, because any user can be a reporter. However, if they are not the user who reported the issue queried they would not have EDIT\_ISSUES permission for that issue. * - * Global permissions are unaffected by context. - * - * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. + * For [Jira Service Management project permissions](https://support.atlassian.com/jira-cloud-administration/docs/customize-jira-service-management-permissions/), this will be evaluated similarly to a user in the customer portal. For example, if the BROWSE\_PROJECTS permission is granted to Service Project Customer - Portal Access, any users with access to the customer portal will have the BROWSE\_PROJECTS permission. * - * * **Classic**: `read:jira-work` - * * **Granular**: `read:permission:jira` + * Global permissions are unaffected by context. * * This operation can be accessed anonymously. * @@ -31915,7 +33440,6 @@ export interface operations { * * These system preferences keys will be deprecated by 15/07/2024. You can still retrieve these keys, but it will not have any impact on Notification behaviour. * - * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * *user.notifications.watcher* Whether the user gets notified when they are watcher. * * *user.notifications.assignee* Whether the user gets notified when they are assignee. * * *user.notifications.reporter* Whether the user gets notified when they are reporter. @@ -31957,6 +33481,7 @@ export interface operations { * * *user.default.share.private* Whether new [ filters](https://confluence.atlassian.com/x/eQiiLQ) are set to private. Defaults to `true`. * * *user.keyboard.shortcuts.disabled* Whether keyboard shortcuts are disabled. Defaults to `false`. * * *user.autowatch.disabled* Whether the user automatically watches issues they create or add a comment to. By default, not set: the user takes the instance autowatch setting. + * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * Note that these keys are deprecated: * @@ -31965,7 +33490,6 @@ export interface operations { * * These system preferences keys will be deprecated by 15/07/2024. You can still use these keys to create arbitrary preferences, but it will not have any impact on Notification behaviour. * - * * *user.notifiy.own.changes* Whether the user gets notified of their own changes. * * *user.notifications.watcher* Whether the user gets notified when they are watcher. * * *user.notifications.assignee* Whether the user gets notified when they are assignee. * * *user.notifications.reporter* Whether the user gets notified when they are reporter. @@ -32584,7 +34108,9 @@ export interface operations { * * project permissions. * * global permissions added by plugins. * - * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** None. */ getAllPermissions: { responses: { @@ -32694,11 +34220,6 @@ export interface operations { * Get permitted projects * @description Returns all the projects where the user is granted a list of project permissions. * - * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. - * - * * **Classic**: `read:jira-work` - * * **Granular**: `read:permission:jira`, `read:project:jira` - * * This operation can be accessed anonymously. * * **[Permissions](#permissions) required:** None. @@ -33425,6 +34946,7 @@ export interface operations { }; /** * Search priorities + * @deprecated * @description Returns a [paginated](#pagination) list of priorities. The list can contain all priorities or a subset determined by any combination of these criteria: * * * a list of priority IDs. Any invalid priority IDs are ignored. @@ -33448,6 +34970,8 @@ export interface operations { priorityName?: string; /** @description Whether only the default priority is returned. */ onlyDefault?: boolean; + /** @description Use `schemes` to return the associated priority schemes for each priority. Limited to returning first 15 priority schemes per priority. */ + expand?: string; }; }; responses: { @@ -33556,10 +35080,7 @@ export interface operations { }; /** * Delete priority - * @deprecated - * @description *Deprecated: please refer to the* [changelog](https://developer.atlassian.com/changelog/#CHANGE-1066) *for more details.* - * - * Deletes an issue priority. + * @description Deletes an issue priority. * * This operation is [asynchronous](#async). Follow the `location` link in the response to determine the status of the task and use [Get task](#api-rest-api-3-task-taskId-get) to obtain subsequent updates. * @@ -33567,10 +35088,6 @@ export interface operations { */ deletePriority: { parameters: { - query: { - /** @description The ID of the issue priority that will replace the currently selected resolution. */ - replaceWith: string; - }; path: { /** @description The ID of the issue priority. */ id: string; @@ -33615,6 +35132,415 @@ export interface operations { }; }; }; + /** + * Get priority schemes + * @description Returns a [paginated](#pagination) list of priority schemes. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + getPrioritySchemes: { + parameters: { + query?: { + /** @description The index of the first item to return in a page of results (page offset). */ + startAt?: string; + /** @description The maximum number of items to return per page. */ + maxResults?: string; + /** @description A set of priority IDs to filter by. To include multiple IDs, provide an ampersand-separated list. For example, `priorityId=10000&priorityId=10001`. */ + priorityId?: number[]; + /** @description A set of priority scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `schemeId=10000&schemeId=10001`. */ + schemeId?: number[]; + /** @description The name of scheme to search for. */ + schemeName?: string; + /** @description Whether only the default priority is returned. */ + onlyDefault?: boolean; + /** @description The ordering to return the priority schemes by. */ + orderBy?: "name" | "+name" | "-name"; + /** @description A comma separated list of additional information to return. "priorities" will return priorities associated with the priority scheme. "projects" will return projects associated with the priority scheme. `expand=priorities,projects`. */ + expand?: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBeanPrioritySchemeWithPaginatedPrioritiesAndProjects"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; + /** + * Create priority scheme + * @description Creates a new priority scheme. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + createPriorityScheme: { + requestBody: { + content: { + /** + * @example { + * "defaultPriorityId": 10001, + * "description": "My priority scheme description", + * "mappings": { + * "in": { + * "10002": 10000, + * "10005": 10001, + * "10006": 10001, + * "10008": 10003 + * }, + * "out": {} + * }, + * "name": "My new priority scheme", + * "priorityIds": [ + * 10000, + * 10001, + * 10003 + * ], + * "projectIds": [ + * 10005, + * 10006, + * 10007 + * ] + * } + */ + "application/json": components["schemas"]["CreatePrioritySchemeDetails"]; + }; + }; + responses: { + /** @description Returned if the request is completed. */ + 201: { + content: { + "application/json": components["schemas"]["PrioritySchemeId"]; + }; + }; + /** @description Returned if the request is accepted. */ + 202: { + content: { + "application/json": components["schemas"]["PrioritySchemeId"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + /** @description Returned if the user doesn't have the necessary permissions. */ + 403: { + content: never; + }; + /** @description Returned if an action with this priority scheme is still in progress. */ + 409: { + content: never; + }; + }; + }; + /** + * Suggested priorities for mappings + * @description Returns a [paginated](#pagination) list of priorities that would require mapping, given a change in priorities or projects associated with a priority scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + suggestedPrioritiesForMappings: { + requestBody: { + content: { + /** + * @example { + * "maxResults": 50, + * "priorities": { + * "add": [ + * 10001, + * 10002 + * ], + * "remove": [ + * 10003 + * ] + * }, + * "projects": { + * "add": [ + * 10021 + * ] + * }, + * "schemeId": 10005, + * "startAt": 0 + * } + */ + "application/json": components["schemas"]["SuggestedMappingsRequestBean"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBeanPriorityWithSequence"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; + /** + * Get available priorities by priority scheme + * @description Returns a [paginated](#pagination) list of priorities available for adding to a priority scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + getAvailablePrioritiesByPriorityScheme: { + parameters: { + query: { + /** @description The index of the first item to return in a page of results (page offset). */ + startAt?: string; + /** @description The maximum number of items to return per page. */ + maxResults?: string; + /** @description The string to query priorities on by name. */ + query?: string; + /** @description The priority scheme ID. */ + schemeId: string; + /** @description A list of priority IDs to exclude from the results. */ + exclude?: string[]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBeanPriorityWithSequence"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; + /** + * Update priority scheme + * @description Updates a priority scheme. This includes its details, the lists of priorities and projects in it + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + updatePriorityScheme: { + parameters: { + path: { + /** @description The ID of the priority scheme. */ + schemeId: number; + }; + }; + requestBody: { + content: { + /** + * @example { + * "defaultPriorityId": 10001, + * "description": "My priority scheme description", + * "mappings": { + * "in": { + * "10005": 10002 + * }, + * "out": { + * "10004": 10001 + * } + * }, + * "name": "My new priority scheme", + * "priorities": { + * "add": { + * "ids": [ + * 10001, + * 10002 + * ] + * }, + * "remove": { + * "ids": [ + * 10003, + * 10004 + * ], + * "mappings": [ + * { + * "in": { + * "10001": 10011 + * }, + * "out": { + * "10012": 10002 + * } + * } + * ] + * } + * }, + * "projects": { + * "add": { + * "ids": [ + * 10101, + * 10102 + * ] + * }, + * "remove": { + * "ids": [ + * 10103, + * 10104 + * ] + * } + * } + * } + */ + "application/json": components["schemas"]["UpdatePrioritySchemeRequestBean"]; + }; + }; + responses: { + /** @description Returned if the request is accepted. */ + 202: { + content: { + "application/json": components["schemas"]["UpdatePrioritySchemeResponseBean"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: never; + }; + /** @description Returned if the user doesn't have the necessary permissions. */ + 403: { + content: never; + }; + /** @description Returned if an action with this priority scheme is still in progress. */ + 409: { + content: never; + }; + }; + }; + /** + * Delete priority scheme + * @description Deletes a priority scheme. + * + * This operation is only available for priority schemes without any associated projects. Any associated projects must be removed from the priority scheme before this operation can be performed. + * + * **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + deletePriorityScheme: { + parameters: { + path: { + /** @description The priority scheme ID. */ + schemeId: number; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 204: { + content: { + "application/json": unknown; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect or missing. */ + 401: { + content: never; + }; + /** @description Returned if the user doesn't have the necessary permissions. */ + 403: { + content: never; + }; + }; + }; + /** + * Get priorities by priority scheme + * @description Returns a [paginated](#pagination) list of priorities by scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + getPrioritiesByPriorityScheme: { + parameters: { + query?: { + /** @description The index of the first item to return in a page of results (page offset). */ + startAt?: string; + /** @description The maximum number of items to return per page. */ + maxResults?: string; + }; + path: { + /** @description The priority scheme ID. */ + schemeId: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBeanPriorityWithSequence"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; + /** + * Get projects by priority scheme + * @description Returns a [paginated](#pagination) list of projects by scheme. + * + * **[Permissions](#permissions) required:** Permission to access Jira. + */ + getProjectsByPriorityScheme: { + parameters: { + query?: { + /** @description The index of the first item to return in a page of results (page offset). */ + startAt?: string; + /** @description The maximum number of items to return per page. */ + maxResults?: string; + /** @description The project IDs to filter by. For example, `projectId=10000&projectId=10001`. */ + projectId?: number[]; + /** @description The string to query projects on by name. */ + query?: string; + }; + path: { + /** @description The priority scheme ID. */ + schemeId: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["PageBeanProject"]; + }; + }; + /** @description Returned if the request isn't valid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; /** * Get all projects * @deprecated @@ -33799,31 +35725,7 @@ export interface operations { * * `archivedDate` EXPERIMENTAL. Sorts by project archived date. * * `deletedDate` EXPERIMENTAL. Sorts by project deleted date. */ - orderBy?: - | "category" - | "-category" - | "+category" - | "key" - | "-key" - | "+key" - | "name" - | "-name" - | "+name" - | "owner" - | "-owner" - | "+owner" - | "issueCount" - | "-issueCount" - | "+issueCount" - | "lastIssueUpdatedDate" - | "-lastIssueUpdatedDate" - | "+lastIssueUpdatedDate" - | "archivedDate" - | "+archivedDate" - | "-archivedDate" - | "deletedDate" - | "+deletedDate" - | "-deletedDate"; + orderBy?: "category" | "-category" | "+category" | "key" | "-key" | "+key" | "name" | "-name" | "+name" | "owner" | "-owner" | "+owner" | "issueCount" | "-issueCount" | "+issueCount" | "lastIssueUpdatedDate" | "-lastIssueUpdatedDate" | "+lastIssueUpdatedDate" | "archivedDate" | "+archivedDate" | "-archivedDate" | "deletedDate" | "+deletedDate" | "-deletedDate"; /** @description The project IDs to filter the results by. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`. Up to 50 project IDs can be provided. */ id?: number[]; /** @description The project keys to filter the results by. To include multiple keys, provide an ampersand-separated list. For example, `keys=PA&keys=PB`. Up to 50 project keys can be provided. */ @@ -34382,6 +36284,124 @@ export interface operations { }; }; }; + /** + * Get the default data classification level of a project + * @description Returns the default data classification for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + getDefaultProjectClassification: { + parameters: { + path: { + /** @description The project ID or project key (case-sensitive). */ + projectIdOrKey: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": unknown; + }; + }; + /** @description Returned if the user does not have the necessary permission. */ + 401: { + content: never; + }; + /** @description Returned if the project is not found. */ + 404: { + content: never; + }; + }; + }; + /** + * Update the default data classification level of a project + * @description Updates the default data classification level for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + updateDefaultProjectClassification: { + parameters: { + path: { + /** @description The project ID or project key (case-sensitive). */ + projectIdOrKey: string; + }; + }; + requestBody: { + content: { + /** + * @example { + * "id": "ari:cloud:platform::classification-tag/dec24c48-5073-4c25-8fef-9d81a992c30c" + * } + */ + "application/json": components["schemas"]["UpdateDefaultProjectClassificationBean"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 204: { + content: { + "application/json": unknown; + }; + }; + /** @description Returned if the request is invalid. */ + 400: { + content: never; + }; + /** @description Returned if the user does not have the necessary permission. */ + 401: { + content: never; + }; + /** @description Returned if the project is not found. */ + 404: { + content: never; + }; + }; + }; + /** + * Remove the default data classification level from a project + * @description Remove the default data classification level for a project. + * + * **[Permissions](#permissions) required:** + * + * * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project. + * * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg). + */ + removeDefaultProjectClassification: { + parameters: { + path: { + /** @description The project ID or project key (case-sensitive). */ + projectIdOrKey: string; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 204: { + content: { + "application/json": unknown; + }; + }; + /** @description Returned if the request is invalid. */ + 400: { + content: never; + }; + /** @description Returned if the user does not have the necessary permission. */ + 401: { + content: never; + }; + /** @description Returned if the project is not found. */ + 404: { + content: never; + }; + }; + }; /** * Get project components paginated * @description Returns a [paginated](#pagination) list of all components in a project. See the [Get project components](#api-rest-api-3-project-projectIdOrKey-components-get) resource if you want to get a full list of versions without pagination. @@ -34407,19 +36427,7 @@ export interface operations { * * `lead` Sorts by the user key of the component's project lead. * * `name` Sorts by component name. */ - orderBy?: - | "description" - | "-description" - | "+description" - | "issueCount" - | "-issueCount" - | "+issueCount" - | "lead" - | "-lead" - | "+lead" - | "name" - | "-name" - | "+name"; + orderBy?: "description" | "-description" | "+description" | "issueCount" | "-issueCount" | "+issueCount" | "lead" | "-lead" | "+lead" | "name" | "-name" | "+name"; /** @description The source of the components to return. Can be `jira` (default), `compass` or `auto`. When `auto` is specified, the API will return connected Compass components if the project is opted into Compass, otherwise it will return Jira components. Defaults to `jira`. */ componentSource?: "jira" | "compass" | "auto"; /** @description Filter the results using a literal string. Components with a matching `name` or `description` are returned (case insensitive). */ @@ -34710,6 +36718,7 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { /** @@ -35179,22 +37188,7 @@ export interface operations { * * `sequence` Sorts by the order of appearance in the user interface. * * `startDate` Sorts by start date, starting with the oldest date. Versions with no start date are listed last. */ - orderBy?: - | "description" - | "-description" - | "+description" - | "name" - | "-name" - | "+name" - | "releaseDate" - | "-releaseDate" - | "+releaseDate" - | "sequence" - | "-sequence" - | "+sequence" - | "startDate" - | "-startDate" - | "+startDate"; + orderBy?: "description" | "-description" | "+description" | "name" | "-name" | "+name" | "releaseDate" | "-releaseDate" | "+releaseDate" | "sequence" | "-sequence" | "+sequence" | "startDate" | "-startDate" | "+startDate"; /** @description Filter the results using a literal string. Versions with matching `name` or `description` are returned (case insensitive). */ query?: string; /** @description A list of status values used to filter the results by version status. This parameter accepts a comma-separated list. The status values are `released`, `unreleased`, and `archived`. */ @@ -35346,7 +37340,6 @@ export interface operations { }; /** * Get project issue type hierarchy - * @deprecated * @description Get the issue type hierarchy for a next-gen project. * * The issue type hierarchy for a project consists of: @@ -37602,6 +39595,8 @@ export interface operations { properties?: string[]; /** @description Reference fields by their key (rather than ID). */ fieldsByKeys?: boolean; + /** @description Whether to fail the request quickly in case of an error while loading fields for an issue. For `failFast=true`, if one field fails, the entire operation fails. For `failFast=false`, the operation will continue even if a field fails. It will return a valid response, but without values for the failed field(s). */ + failFast?: boolean; }; }; responses: { @@ -37676,6 +39671,50 @@ export interface operations { }; }; }; + /** + * Search issue IDs using JQL + * @description Searches for IDs of issues using [JQL](https://confluence.atlassian.com/x/egORLQ). + * + * Use the [Search](#api-rest-api-3-search-post) endpoint if you need to fetch more than just issue IDs. The Search endpoint returns more information, but may take much longer to respond to requests. This is because it uses a different mechanism for ordering results than this endpoint and doesn't provide the total number of results for your query. + * + * This operation can be accessed anonymously. + * + * **[Permissions](#permissions) required:** Issues are included in the response where the user has: + * + * * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project containing the issue. + * * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission to view the issue. + */ + searchForIssuesIds: { + /** @description A JSON object containing the search request. */ + requestBody: { + content: { + /** + * @example { + * "jql": "project = HSP", + * "maxResults": 1000, + * "nextPageToken": "EgQIlMIC" + * } + */ + "application/json": components["schemas"]["IdSearchRequestBean"]; + }; + }; + responses: { + /** @description Returned if the request is successful. */ + 200: { + content: { + "application/json": components["schemas"]["IdSearchResults"]; + }; + }; + /** @description Returned if the JQL query is invalid. */ + 400: { + content: never; + }; + /** @description Returned if the authentication credentials are incorrect. */ + 401: { + content: never; + }; + }; + }; /** * Get issue security level * @description Returns details of an issue security level. @@ -39689,7 +41728,7 @@ export interface operations { propertyKey: string; }; }; - /** @description The request containing the value of the property. The value has to a valid, non-empty JSON array. The maximum length is 32768 characters. */ + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; @@ -40513,6 +42552,14 @@ export interface operations { }; requestBody: { content: { + /** + * @example { + * "category": "Design", + * "relatedWorkId": "fabcdef6-7878-1234-beaf-43211234abcd", + * "title": "Design link", + * "url": "https://www.atlassian.com" + * } + */ "application/json": components["schemas"]["VersionRelatedWork"]; }; }; @@ -40557,6 +42604,13 @@ export interface operations { }; requestBody: { content: { + /** + * @example { + * "category": "Design", + * "title": "Design link", + * "url": "https://www.atlassian.com" + * } + */ "application/json": components["schemas"]["VersionRelatedWork"]; }; }; @@ -41879,629 +43933,6 @@ export interface operations { expand?: string; }; }; - requestBody: { - content: { - "application/json": { - asyncContext?: { - request?: { - asyncStarted?: boolean; - asyncSupported?: boolean; - attributeNames?: Record; - characterEncoding?: string; - /** Format: int32 */ - contentLength?: number; - /** Format: int64 */ - contentLengthLong?: number; - contentType?: string; - /** @enum {string} */ - dispatcherType?: "FORWARD" | "INCLUDE" | "REQUEST" | "ASYNC" | "ERROR"; - inputStream?: { - finished?: boolean; - readListener?: Record; - ready?: boolean; - }; - localAddr?: string; - localName?: string; - /** Format: int32 */ - localPort?: number; - locale?: { - country?: string; - displayCountry?: string; - displayLanguage?: string; - displayName?: string; - displayScript?: string; - displayVariant?: string; - extensionKeys?: string[]; - iso3Country?: string; - iso3Language?: string; - language?: string; - script?: string; - unicodeLocaleAttributes?: string[]; - unicodeLocaleKeys?: string[]; - variant?: string; - }; - locales?: Record; - parameterMap?: { - [key: string]: string[]; - }; - parameterNames?: Record; - protocol?: string; - reader?: Record; - remoteAddr?: string; - remoteHost?: string; - /** Format: int32 */ - remotePort?: number; - scheme?: string; - secure?: boolean; - serverName?: string; - /** Format: int32 */ - serverPort?: number; - servletContext?: { - attributeNames?: Record; - classLoader?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - parent?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - contextPath?: string; - defaultSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - /** Format: int32 */ - effectiveMajorVersion?: number; - /** Format: int32 */ - effectiveMinorVersion?: number; - effectiveSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - filterRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - name?: string; - servletNameMappings?: string[]; - urlPatternMappings?: string[]; - }; - }; - initParameterNames?: Record; - jspConfigDescriptor?: { - jspPropertyGroups?: { - buffer?: string; - defaultContentType?: string; - deferredSyntaxAllowedAsLiteral?: string; - elIgnored?: string; - errorOnUndeclaredNamespace?: string; - includeCodas?: string[]; - includePreludes?: string[]; - isXml?: string; - pageEncoding?: string; - scriptingInvalid?: string; - trimDirectiveWhitespaces?: string; - urlPatterns?: string[]; - }[]; - taglibs?: { - taglibLocation?: string; - taglibURI?: string; - }[]; - }; - /** Format: int32 */ - majorVersion?: number; - /** Format: int32 */ - minorVersion?: number; - requestCharacterEncoding?: string; - responseCharacterEncoding?: string; - serverInfo?: string; - servletContextName?: string; - servletNames?: Record; - servletRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - mappings?: string[]; - name?: string; - runAsRole?: string; - }; - }; - servlets?: Record; - sessionCookieConfig?: { - comment?: string; - domain?: string; - httpOnly?: boolean; - /** Format: int32 */ - maxAge?: number; - name?: string; - path?: string; - secure?: boolean; - }; - /** Format: int32 */ - sessionTimeout?: number; - sessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - virtualServerName?: string; - }; - }; - response?: { - /** Format: int32 */ - bufferSize?: number; - characterEncoding?: string; - committed?: boolean; - /** Format: int32 */ - contentLength?: number; - /** Format: int64 */ - contentLengthLong?: number; - contentType?: string; - locale?: { - country?: string; - displayCountry?: string; - displayLanguage?: string; - displayName?: string; - displayScript?: string; - displayVariant?: string; - extensionKeys?: string[]; - iso3Country?: string; - iso3Language?: string; - language?: string; - script?: string; - unicodeLocaleAttributes?: string[]; - unicodeLocaleKeys?: string[]; - variant?: string; - }; - outputStream?: { - ready?: boolean; - writeListener?: Record; - }; - writer?: Record; - }; - /** Format: int64 */ - timeout?: number; - }; - asyncStarted?: boolean; - asyncSupported?: boolean; - attributeNames?: Record; - authType?: string; - characterEncoding?: string; - /** Format: int32 */ - contentLength?: number; - /** Format: int64 */ - contentLengthLong?: number; - contentType?: string; - contextPath?: string; - cookies?: { - comment?: string; - domain?: string; - httpOnly?: boolean; - /** Format: int32 */ - maxAge?: number; - name?: string; - path?: string; - secure?: boolean; - value?: string; - /** Format: int32 */ - version?: number; - }[]; - /** @enum {string} */ - dispatcherType?: "FORWARD" | "INCLUDE" | "REQUEST" | "ASYNC" | "ERROR"; - headerNames?: Record; - httpServletMapping?: { - /** @enum {string} */ - mappingMatch?: "CONTEXT_ROOT" | "DEFAULT" | "EXACT" | "EXTENSION" | "PATH"; - matchValue?: string; - pattern?: string; - servletName?: string; - }; - inputStream?: { - finished?: boolean; - readListener?: Record; - ready?: boolean; - }; - localAddr?: string; - localName?: string; - /** Format: int32 */ - localPort?: number; - locale?: { - country?: string; - displayCountry?: string; - displayLanguage?: string; - displayName?: string; - displayScript?: string; - displayVariant?: string; - extensionKeys?: string[]; - iso3Country?: string; - iso3Language?: string; - language?: string; - script?: string; - unicodeLocaleAttributes?: string[]; - unicodeLocaleKeys?: string[]; - variant?: string; - }; - locales?: Record; - method?: string; - parameterMap?: { - [key: string]: string[]; - }; - parameterNames?: Record; - parts?: { - contentType?: string; - headerNames?: string[]; - inputStream?: Record; - name?: string; - /** Format: int64 */ - size?: number; - submittedFileName?: string; - }[]; - pathInfo?: string; - pathTranslated?: string; - protocol?: string; - queryString?: string; - reader?: Record; - remoteAddr?: string; - remoteHost?: string; - /** Format: int32 */ - remotePort?: number; - remoteUser?: string; - requestURI?: string; - requestURL?: { - /** Format: int32 */ - length?: number; - }; - requestedSessionId?: string; - requestedSessionIdFromCookie?: boolean; - requestedSessionIdFromURL?: boolean; - requestedSessionIdFromUrl?: boolean; - requestedSessionIdValid?: boolean; - scheme?: string; - secure?: boolean; - serverName?: string; - /** Format: int32 */ - serverPort?: number; - servletContext?: { - attributeNames?: Record; - classLoader?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - parent?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - contextPath?: string; - defaultSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - /** Format: int32 */ - effectiveMajorVersion?: number; - /** Format: int32 */ - effectiveMinorVersion?: number; - effectiveSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - filterRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - name?: string; - servletNameMappings?: string[]; - urlPatternMappings?: string[]; - }; - }; - initParameterNames?: Record; - jspConfigDescriptor?: { - jspPropertyGroups?: { - buffer?: string; - defaultContentType?: string; - deferredSyntaxAllowedAsLiteral?: string; - elIgnored?: string; - errorOnUndeclaredNamespace?: string; - includeCodas?: string[]; - includePreludes?: string[]; - isXml?: string; - pageEncoding?: string; - scriptingInvalid?: string; - trimDirectiveWhitespaces?: string; - urlPatterns?: string[]; - }[]; - taglibs?: { - taglibLocation?: string; - taglibURI?: string; - }[]; - }; - /** Format: int32 */ - majorVersion?: number; - /** Format: int32 */ - minorVersion?: number; - requestCharacterEncoding?: string; - responseCharacterEncoding?: string; - serverInfo?: string; - servletContextName?: string; - servletNames?: Record; - servletRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - mappings?: string[]; - name?: string; - runAsRole?: string; - }; - }; - servlets?: Record; - sessionCookieConfig?: { - comment?: string; - domain?: string; - httpOnly?: boolean; - /** Format: int32 */ - maxAge?: number; - name?: string; - path?: string; - secure?: boolean; - }; - /** Format: int32 */ - sessionTimeout?: number; - sessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - virtualServerName?: string; - }; - servletPath?: string; - session?: { - attributeNames?: Record; - /** Format: int64 */ - creationTime?: number; - id?: string; - /** Format: int64 */ - lastAccessedTime?: number; - /** Format: int32 */ - maxInactiveInterval?: number; - new?: boolean; - servletContext?: { - attributeNames?: Record; - classLoader?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - parent?: { - defaultAssertionStatus?: boolean; - definedPackages?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - implementationTitle?: string; - implementationVendor?: string; - implementationVersion?: string; - name?: string; - sealed?: boolean; - specificationTitle?: string; - specificationVendor?: string; - specificationVersion?: string; - }[]; - name?: string; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - registeredAsParallelCapable?: boolean; - unnamedModule?: { - annotations?: Record[]; - declaredAnnotations?: Record[]; - descriptor?: { - automatic?: boolean; - open?: boolean; - }; - layer?: Record; - name?: string; - named?: boolean; - packages?: string[]; - }; - }; - contextPath?: string; - defaultSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - /** Format: int32 */ - effectiveMajorVersion?: number; - /** Format: int32 */ - effectiveMinorVersion?: number; - effectiveSessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - filterRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - name?: string; - servletNameMappings?: string[]; - urlPatternMappings?: string[]; - }; - }; - initParameterNames?: Record; - jspConfigDescriptor?: { - jspPropertyGroups?: { - buffer?: string; - defaultContentType?: string; - deferredSyntaxAllowedAsLiteral?: string; - elIgnored?: string; - errorOnUndeclaredNamespace?: string; - includeCodas?: string[]; - includePreludes?: string[]; - isXml?: string; - pageEncoding?: string; - scriptingInvalid?: string; - trimDirectiveWhitespaces?: string; - urlPatterns?: string[]; - }[]; - taglibs?: { - taglibLocation?: string; - taglibURI?: string; - }[]; - }; - /** Format: int32 */ - majorVersion?: number; - /** Format: int32 */ - minorVersion?: number; - requestCharacterEncoding?: string; - responseCharacterEncoding?: string; - serverInfo?: string; - servletContextName?: string; - servletNames?: Record; - servletRegistrations?: { - [key: string]: { - className?: string; - initParameters?: { - [key: string]: string; - }; - mappings?: string[]; - name?: string; - runAsRole?: string; - }; - }; - servlets?: Record; - sessionCookieConfig?: { - comment?: string; - domain?: string; - httpOnly?: boolean; - /** Format: int32 */ - maxAge?: number; - name?: string; - path?: string; - secure?: boolean; - }; - /** Format: int32 */ - sessionTimeout?: number; - sessionTrackingModes?: ("COOKIE" | "URL" | "SSL")[]; - virtualServerName?: string; - }; - sessionContext?: { - ids?: Record; - }; - valueNames?: string[]; - }; - trailerFields?: { - [key: string]: string; - }; - trailerFieldsReady?: boolean; - userPrincipal?: { - name?: string; - }; - }; - }; - }; responses: { /** @description Returned if the request is successful. */ 200: { @@ -42719,16 +44150,7 @@ export interface operations { * * `created` Sorts by create time. * * `updated` Sorts by update time. */ - orderBy?: - | "name" - | "-name" - | "+name" - | "created" - | "-created" - | "+created" - | "updated" - | "+updated" - | "-updated"; + orderBy?: "name" | "-name" | "+name" | "created" | "-created" | "+created" | "updated" | "+updated" | "-updated"; /** @description Filters active and inactive workflows. */ isActive?: boolean; }; @@ -43032,6 +44454,8 @@ export interface operations { * * `statuses.usages` Returns the project and issue types that each status is associated with. */ expand?: string; + /** @description Return the new fields (`toStatusReference`/`links`) instead of the deprecated fields (`to`/`from`) for workflow transition port mappings. */ + useTransitionLinksFormat?: boolean; }; }; requestBody: { @@ -46026,7 +47450,7 @@ export interface operations { * @description Gets all the properties of an app. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. - * Additionally, Forge apps published on the Marketplace can access properties of Connect apps they were [migrated from](https://developer.atlassian.com/platform/forge/build-a-connect-on-forge-app/). + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ "AddonPropertiesResource.getAddonProperties_get": { parameters: { @@ -46055,7 +47479,7 @@ export interface operations { * @description Returns the key and value of an app's property. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. - * Additionally, Forge apps published on the Marketplace can access properties of Connect apps they were [migrated from](https://developer.atlassian.com/platform/forge/build-a-connect-on-forge-app/). + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ "AddonPropertiesResource.getAddonProperty_get": { parameters: { @@ -46100,6 +47524,7 @@ export interface operations { * The value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The maximum length is 32768 characters. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ "AddonPropertiesResource.putAddonProperty_put": { parameters: { @@ -46152,6 +47577,7 @@ export interface operations { * @description Deletes an app's property. * * **[Permissions](#permissions) required:** Only a Connect app whose key matches `addonKey` can make this request. + * Additionally, Forge apps can access Connect app properties (stored against the same `app.connect.key`). */ "AddonPropertiesResource.deleteAddonProperty_delete": { parameters: { @@ -46370,16 +47796,7 @@ export interface operations { }; path: { /** @description The type indicating the object that contains the entity properties. */ - entityType: - | "IssueProperty" - | "CommentProperty" - | "DashboardItemProperty" - | "IssueTypeProperty" - | "ProjectProperty" - | "UserProperty" - | "WorklogProperty" - | "BoardProperty" - | "SprintProperty"; + entityType: "IssueProperty" | "CommentProperty" | "DashboardItemProperty" | "IssueTypeProperty" | "ProjectProperty" | "UserProperty" | "WorklogProperty" | "BoardProperty" | "SprintProperty"; }; }; requestBody: { @@ -46496,7 +47913,7 @@ export interface operations { * * **[Permissions](#permissions) required:** Only Forge apps can make this request. */ - "AddonPropertiesResource.putAppProperty_put": { + putForgeAppProperty: { parameters: { path: { /** @description The key of the property. */ @@ -46550,7 +47967,7 @@ export interface operations { * * **[Permissions](#permissions) required:** Only Forge apps can make this request. */ - "AddonPropertiesResource.deleteAppProperty_delete": { + deleteForgeAppProperty: { parameters: { path: { /** @description The key of the property. */ diff --git a/src/generated/openapi-server.ts b/src/generated/openapi-server.ts index f300064..7644066 100644 --- a/src/generated/openapi-server.ts +++ b/src/generated/openapi-server.ts @@ -3,6 +3,7 @@ * Do not make direct changes to the file. */ + export interface paths { "/api/2/application-properties": { /** @description Returns an application property. */ @@ -3104,6 +3105,7 @@ export type $defs = Record; export type external = Record; export interface operations { + /** * @description Returns the value of the property with a given key from the user identified by the key or by the id. The user who retrieves * the property is required to have permissions to read the user. diff --git a/src/generated/openapi-service-desk.ts b/src/generated/openapi-service-desk.ts index c4cf5f0..cd64296 100644 --- a/src/generated/openapi-service-desk.ts +++ b/src/generated/openapi-service-desk.ts @@ -3,6 +3,7 @@ * Do not make direct changes to the file. */ + export interface paths { "/rest/servicedeskapi/assets/workspace": { /** @@ -70,6 +71,8 @@ export interface paths { * Get organization * @description This method returns details of an organization. Use this method to get organization details whenever your application component is passed an organization ID but needs to display other organization details. * + * To get organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). + * * **[Permissions](#permissions) required**: Any * * **Response limitations**: Customers can only retrieve organization of which they are members. @@ -86,7 +89,9 @@ export interface paths { "/rest/servicedeskapi/organization/{organizationId}/property": { /** * Get properties keys - * @description Returns the keys of all properties for an organization. Use this resource when you need to find out what additional properties items have been added to an organization. + * @description Returns the keys of all organization properties. Organization properties are a type of entity property which are available to the API only, and not shown in Jira Service Management. [Learn more](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/). + * + * To get organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). * * **[Permissions](#permissions) required**: Any * @@ -97,7 +102,9 @@ export interface paths { "/rest/servicedeskapi/organization/{organizationId}/property/{propertyKey}": { /** * Get property - * @description Returns the value of a property from an organization. Use this method to obtain the JSON content for an organization's property. + * @description Returns the value of an organization property. Use this method to obtain the JSON content for an organization's property. Organization properties are a type of entity property which are available to the API only, and not shown in Jira Service Management. [Learn more](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/). + * + * To get organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). * * **[Permissions](#permissions) required**: Any * @@ -106,7 +113,9 @@ export interface paths { get: operations["getProperty"]; /** * Set property - * @description Sets the value of a property for an organization. Use this resource to store custom data against an organization. + * @description Sets the value of an organization property. Use this resource to store custom data against an organization. Organization properties are a type of entity property which are available to the API only, and not shown in Jira Service Management. [Learn more](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/). + * + * To store organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). * * **[Permissions](#permissions) required**: Service Desk Administrator or Agent. * @@ -115,7 +124,9 @@ export interface paths { put: operations["setProperty"]; /** * Delete property - * @description Removes a property from an organization. + * @description Removes an organization property. Organization properties are a type of entity property which are available to the API only, and not shown in Jira Service Management. [Learn more](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/). + * + * For operations relating to organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). * * **[Permissions](#permissions) required**: Service Desk Administrator or Agent. * @@ -1342,6 +1353,8 @@ export interface components { id?: string; /** @description Name of the organization. */ name?: string; + /** @description A unique system generated ID for the organization. This is identity from the group directory id */ + uuid?: string; }; OrganizationServiceDeskUpdateDTO: { /** @@ -2229,6 +2242,7 @@ export type $defs = Record; export type external = Record; export interface operations { + /** * Get assets workspaces * @description Returns a list of Assets workspace IDs. Include a workspace ID in the path to access the [Assets REST APIs](https://developer.atlassian.com/cloud/assets/rest). @@ -2393,7 +2407,7 @@ export interface operations { query: { /** @description The string used to filter the articles (required). */ query: string; - /** @description If set to true matching query term in the title and excerpt will be highlighted using the \{@code */ + /** @description If set to true matching query term in the title and excerpt will be highlighted using the `@@@hl@@@term@@@endhl@@@` syntax. Default: false. */ highlight?: boolean; /** @description The starting index of the returned objects. Base index: 0. See the [Pagination](#pagination) section for more details. */ start?: number; @@ -2545,6 +2559,8 @@ export interface operations { * Get organization * @description This method returns details of an organization. Use this method to get organization details whenever your application component is passed an organization ID but needs to display other organization details. * + * To get organization detail field values which are visible in Jira Service Management, see the [Customer Service Management REST API](https://developer.atlassian.com/cloud/customer-service-management/rest/v1/api-group-organization/#api-group-organization). + * * **[Permissions](#permissions) required**: Any * * **Response limitations**: Customers can only retrieve organization of which they are members. @@ -4993,13 +5009,13 @@ export interface operations { /** * @example { * "accountIds": [ - * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3581db05e2a66fa80b", + * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d69abfa3980ce712caae" * ], * "usernames": [ - * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3581db05e2a66fa80b", + * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d69abfa3980ce712caae" * ] * } @@ -5062,13 +5078,13 @@ export interface operations { /** * @example { * "accountIds": [ - * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3581db05e2a66fa80b", + * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d69abfa3980ce712caae" * ], * "usernames": [ - * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3581db05e2a66fa80b", + * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d3a01db05e2a66fa80bd", * "qm:a713c8ea-1075-4e30-9d96-891a7d181739:5ad6d69abfa3980ce712caae" * ] * } diff --git a/src/generated/openapi-software.ts b/src/generated/openapi-software.ts index 724244e..06bd3ec 100644 --- a/src/generated/openapi-software.ts +++ b/src/generated/openapi-software.ts @@ -3,14 +3,11 @@ * Do not make direct changes to the file. */ + /** OneOf type helpers */ type Without = { [P in Exclude]?: never }; -type XOR = T | U extends object ? (Without & U) | (Without & T) : T | U; -type OneOf = T extends [infer Only] - ? Only - : T extends [infer A, infer B, ...infer Rest] - ? OneOf<[XOR, ...Rest]> - : never; +type XOR = (T | U) extends object ? (Without & U) | (Without & T) : T | U; +type OneOf = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR, ...Rest]> : never; export interface paths { "/rest/agile/1.0/backlog/issue": { @@ -335,7 +332,7 @@ export interface paths { * * Notes: * - * * Sprints that are in a closed state cannot be updated. + * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. @@ -348,7 +345,7 @@ export interface paths { * * Notes: * - * * Sprints that are in a closed state cannot be updated. + * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. @@ -428,14 +425,14 @@ export interface paths { "/rest/devinfo/0.10/bulkByProperties": { /** * Delete development information by properties - * @description Deletes development information entities which have all the provided properties. Entities will be deleted that match ALL of the properties (i.e. treated as an AND). For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Special property `_updateSequenceId` can be used to delete all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to delete by. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. + * @description Deletes development information entities which have all the provided properties. Repositories which have properties that match ALL of the properties (i.e. treated as an AND), and all their related development information (such as commits, branches and pull requests), will be deleted. For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Optional param `_updateSequenceId` is no longer supported. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. */ delete: operations["deleteByProperties"]; }; "/rest/devinfo/0.10/existsByProperties": { /** * Check if data exists for the supplied properties - * @description Checks if development information which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one entity or repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. + * @description Checks if repositories which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. */ get: operations["existsByProperties"]; }; @@ -1025,173 +1022,424 @@ export interface paths { }; }; }; -} - -export type webhooks = Record; - -export interface components { - schemas: { - StringList: Record; - IssueAssignRequestBean: { - issues?: string[]; + "/rest/operations/1.0/linkedWorkspaces/bulk": { + /** + * Submit Operations Workspace Ids + * @description Insert Operations Workspace IDs to establish a relationship between them and the Jira site the app is installed in. If a relationship between the Workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + post: operations["submitOperationsWorkspaces"]; + /** + * Delete Operations Workpaces by Id + * @description Bulk delete all Operations Workspaces that match the given request. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + * + * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 + */ + delete: operations["deleteWorkspaces"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - EpicRankRequestBean: { - rankBeforeEpic?: string; - rankAfterEpic?: string; - /** Format: int64 */ - rankCustomFieldId?: number; + }; + "/rest/operations/1.0/linkedWorkspaces": { + /** + * Get all Operations Workspace IDs or a specific Operations Workspace by ID + * @description Retrieve the either all Operations Workspace IDs associated with the Jira site or a specific Operations Workspace ID for the given ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * e.g. GET /workspace?workspaceId=111-222-333 + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + get: operations["getWorkspaces"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - ColorBean: { - /** @enum {string} */ - key?: - | "color_1" - | "color_2" - | "color_3" - | "color_4" - | "color_5" - | "color_6" - | "color_7" - | "color_8" - | "color_9" - | "color_10" - | "color_11" - | "color_12" - | "color_13" - | "color_14"; + }; + "/rest/operations/1.0/bulk": { + /** + * Submit Incident or Review data + * @description Update / insert Incident or Review data. + * + * Incidents and reviews are identified by their ID, and existing Incident and Review data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. + * + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getIncidentById or getReviewById operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple Incidents and Reviews being submitted in one request, each is validated individually prior to submission. Details of which entities failed submission (if any) are available in the response object. + * + * A maximum of 1000 incidents can be submitted in one request. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + post: operations["submitEntity"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - EpicUpdateBean: { - name?: string; - summary?: string; - color?: { - /** @enum {string} */ - key?: - | "color_1" - | "color_2" - | "color_3" - | "color_4" - | "color_5" - | "color_6" - | "color_7" - | "color_8" - | "color_9" - | "color_10" - | "color_11" - | "color_12" - | "color_13" - | "color_14"; + }; + "/rest/operations/1.0/bulkByProperties": { + /** + * Delete Incidents or Review by Property + * @description Bulk delete all Entties that match the given request. + * + * One or more query params must be supplied to specify Properties to delete by. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). + * See the documentation for the submitEntity operation for more details. + * + * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * + * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + delete: operations["deleteEntityByProperty"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; }; - done?: boolean; }; - ReportBean: Record; - ReportsResponseBean: { - reports?: Record[]; + }; + "/rest/operations/1.0/incidents/{incidentId}": { + /** + * Get a Incident by ID + * @description Retrieve the currently stored Incident data for the given ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + get: operations["getIncidentById"]; + /** + * Delete a Incident by ID + * @description Delete the Incident data currently stored for the given ID. + * + * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + delete: operations["deleteIncidentById"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - SprintCreateBean: { - name?: string; - startDate?: string; - endDate?: string; - /** Format: int64 */ - originBoardId?: number; - goal?: string; + }; + "/rest/operations/1.0/post-incident-reviews/{reviewId}": { + /** + * Get a Review by ID + * @description Retrieve the currently stored Review data for the given ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + get: operations["getReviewById"]; + /** + * Delete a Review by ID + * @description Delete the Review data currently stored for the given ID. + * + * Deletion is performed asynchronously. The getReviewById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + delete: operations["deleteReviewById"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - SprintBean: { - /** Format: int64 */ - id?: number; - /** Format: uri */ - self?: string; - state?: string; - name?: string; - startDate?: string; - endDate?: string; - completeDate?: string; - createdDate?: string; - /** Format: int64 */ - originBoardId?: number; - goal?: string; + }; + "/rest/devopscomponents/1.0/bulk": { + /** + * Submit DevOps Components + * @description Update / insert DevOps Component data. + * + * Components are identified by their ID, and existing Component data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. + * + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getComponentById operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple Components being submitted in one request, each is validated individually prior to submission. Details of which Components failed submission (if any) are available in the response object. + * + * A maximum of 1000 components can be submitted in one request. + * + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + post: operations["submitComponents"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the DevOps Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - IssueRankRequestBean: { - issues?: string[]; - rankBeforeIssue?: string; - rankAfterIssue?: string; - /** Format: int64 */ - rankCustomFieldId?: number; + }; + "/rest/devopscomponents/1.0/bulkByProperties": { + /** + * Delete DevOps Components by Property + * @description Bulk delete all Components that match the given request. + * + * One or more query params must be supplied to specify Properties to delete by. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). + * See the documentation for the submitComponents operation for more details. + * + * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * + * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + delete: operations["deleteComponentsByProperty"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - SprintSwapBean: { - /** Format: int64 */ - sprintToSwapWith?: number; + }; + "/rest/devopscomponents/1.0/{componentId}": { + /** + * Get a Component by ID + * @description Retrieve the currently stored Component data for the given ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + get: operations["getComponentById"]; + /** + * Delete a Component by ID + * @description Delete the Component data currently stored for the given ID. + * + * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + delete: operations["deleteComponentById"]; + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; }; - PageBeanQuickFilterBean: { - /** Format: int32 */ - maxResults?: number; - /** Format: int64 */ - startAt?: number; - /** Format: int64 */ - total?: number; - isLast?: boolean; - values?: { - /** Format: int64 */ - id?: number; - /** Format: int64 */ - boardId?: number; - name?: string; - jql?: string; - description?: string; - /** Format: int32 */ - position?: number; - }[]; - }; - QuickFilterBean: { - /** Format: int64 */ - id?: number; - /** Format: int64 */ - boardId?: number; - name?: string; - jql?: string; - description?: string; - /** Format: int32 */ - position?: number; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + AvatarUrlsBean: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; }; /** @description Details about a board. */ Board: { + admins?: { + groups?: { + name?: string; + /** Format: uri */ + self?: string; + }[]; + users?: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. + */ + key?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. + */ + name?: string; + /** + * Format: uri + * @description The URL of the user. + */ + self?: string; + }[]; + }; + /** @description Whether the board can be edited. */ + canEdit?: boolean; + /** @description Whether the board is selected as a favorite. */ + favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; + /** @description Whether the board is private. */ + isPrivate?: boolean; + /** @description The container that the board is located in. */ + location?: { + /** Format: uri */ + avatarURI?: string; + displayName?: string; + name?: string; + /** Format: int64 */ + projectId?: number; + projectKey?: string; + projectName?: string; + projectTypeKey?: string; + userAccountId?: string; + /** Format: int64 */ + userId?: number; + }; + /** @description The name of the board. */ + name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; - /** @description The name of the board. */ - name?: string; /** @description The type the board. */ type?: string; - admins?: { - users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ + }; + /** @description The users and groups who own the board. */ + BoardAdminsBean: { + groups?: { name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; + /** Format: uri */ + self?: string; + }[]; + users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. @@ -1207,335 +1455,115 @@ export interface components { * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; - /** - * Format: uri - * @description The URL of the user's 16x16 pixel avatar. - */ - "16x16"?: string; }; - }[]; - groups?: { - name?: string; - /** Format: uri */ - self?: string; - }[]; - }; - /** @description The container that the board is located in. */ - location?: { - /** Format: int64 */ - projectId?: number; - /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; - projectKey?: string; - projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; - name?: string; - }; - /** @description Whether the board can be edited. */ - canEdit?: boolean; - /** @description Whether the board is private. */ - isPrivate?: boolean; - /** @description Whether the board is selected as a favorite. */ - favourite?: boolean; - }; - /** @description The users and groups who own the board. */ - BoardAdminsBean: { - users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. */ - "32x32"?: string; + key?: string; /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. */ - "48x48"?: string; + name?: string; /** * Format: uri - * @description The URL of the user's 16x16 pixel avatar. + * @description The URL of the user. */ - "16x16"?: string; + self?: string; + }[]; + }; + BoardConfigBean: { + columnConfig?: { + columns?: { + /** Format: int32 */ + max?: number; + /** Format: int32 */ + min?: number; + name?: string; + statuses?: { + id?: string; + /** Format: uri */ + self?: string; + }[]; + }[]; + constraintType?: string; + }; + estimation?: { + field?: { + displayName?: string; + fieldId?: string; }; - }[]; - groups?: { - name?: string; + type?: string; + }; + filter?: { + id?: string; /** Format: uri */ self?: string; - }[]; - }; - /** @description The container that the board is located in. */ - BoardLocationBean: { - /** Format: int64 */ - projectId?: number; + }; /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; - projectKey?: string; - projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; - name?: string; - }; - GroupBean: { + id?: number; + location?: { + projectKeyOrId?: string; + /** @enum {string} */ + type?: "project" | "user"; + }; name?: string; + ranking?: { + /** Format: int64 */ + rankCustomFieldId?: number; + }; /** Format: uri */ self?: string; + subQuery?: { + query?: string; + }; + type?: string; }; - PageBeanBoard: { - /** Format: int32 */ - maxResults?: number; - /** Format: int64 */ - startAt?: number; + BoardCreateBean: { /** Format: int64 */ - total?: number; - isLast?: boolean; - values?: { - /** - * Format: int64 - * @description The ID of the board. - */ - id?: number; - /** - * Format: uri - * @description The URL of the board. - */ - self?: string; - /** @description The name of the board. */ - name?: string; - /** @description The type the board. */ - type?: string; - admins?: { - users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. - */ - "48x48"?: string; - /** - * Format: uri - * @description The URL of the user's 16x16 pixel avatar. - */ - "16x16"?: string; - }; - }[]; - groups?: { - name?: string; - /** Format: uri */ - self?: string; - }[]; - }; - /** @description The container that the board is located in. */ - location?: { - /** Format: int64 */ - projectId?: number; - /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; - projectKey?: string; - projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; - name?: string; - }; - /** @description Whether the board can be edited. */ - canEdit?: boolean; - /** @description Whether the board is private. */ - isPrivate?: boolean; - /** @description Whether the board is selected as a favorite. */ - favourite?: boolean; - }[]; - }; - UserBean: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. - */ - "48x48"?: string; - /** - * Format: uri - * @description The URL of the user's 16x16 pixel avatar. - */ - "16x16"?: string; + filterId?: number; + location?: { + projectKeyOrId?: string; + /** @enum {string} */ + type?: "project" | "user"; }; - }; - UserBeanAvatarUrls: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. - */ - "48x48"?: string; - /** - * Format: uri - * @description The URL of the user's 16x16 pixel avatar. - */ - "16x16"?: string; + name?: string; + /** @enum {string} */ + type?: "kanban" | "scrum" | "agility"; }; BoardFilterBean: { /** Format: int64 */ id?: number; + name?: string; /** Format: uri */ self?: string; - name?: string; }; - PageBeanBoardFilterBean: { - /** Format: int32 */ - maxResults?: number; + /** @description The container that the board is located in. */ + BoardLocationBean: { + /** Format: uri */ + avatarURI?: string; + displayName?: string; + name?: string; /** Format: int64 */ - startAt?: number; + projectId?: number; + projectKey?: string; + projectName?: string; + projectTypeKey?: string; + userAccountId?: string; /** Format: int64 */ - total?: number; - isLast?: boolean; - values?: { - /** Format: int64 */ - id?: number; - /** Format: uri */ - self?: string; - name?: string; - }[]; - }; - AvatarUrlsBean: { - /** - * Format: uri - * @description The URL of the item's 16x16 pixel avatar. - */ - "16x16"?: string; - /** - * Format: uri - * @description The URL of the item's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the item's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the item's 48x48 pixel avatar. - */ - "48x48"?: string; + userId?: number; }; /** @description A change item. */ ChangeDetails: { /** @description The name of the field changed. */ field?: string; - /** @description The type of the field changed. */ - fieldtype?: string; /** @description The ID of the field changed. */ fieldId?: string; + /** @description The type of the field changed. */ + fieldtype?: string; /** @description The details of the original value. */ from?: string; /** @description The details of the original value as a string. */ @@ -1545,22 +1573,16 @@ export interface components { /** @description The details of the new value as a string. */ toString?: string; }; - /** @description A changelog. */ + /** @description A log of changes made to issue fields. Changelogs related to workflow associations are currently being deprecated. */ Changelog: { - /** @description The ID of the changelog. */ - id?: string; /** @description The user who made the change. */ author?: { - /** @description The URL of the user. */ - self?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - name?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - key?: string; /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; - /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ - emailAddress?: string; + /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ + accountType?: string; + /** @description Whether the user is active. */ + active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** @@ -1586,118 +1608,270 @@ export interface components { }; /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; + /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ + emailAddress?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + key?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + name?: string; + /** @description The URL of the user. */ + self?: string; /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ timeZone?: string; - /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ - accountType?: string; }; /** * Format: date-time * @description The date on which the change took place. */ created?: string; - /** @description The list of items changed. */ - items?: readonly { - /** @description The name of the field changed. */ - field?: string; - /** @description The type of the field changed. */ - fieldtype?: string; - /** @description The ID of the field changed. */ - fieldId?: string; - /** @description The details of the original value. */ - from?: string; - /** @description The details of the original value as a string. */ - fromString?: string; - /** @description The details of the new value. */ - to?: string; - /** @description The details of the new value as a string. */ - toString?: string; - }[]; /** @description The history metadata associated with the changed. */ historyMetadata?: { - /** @description The type of the history record. */ - type?: string; - /** @description The description of the history record. */ - description?: string; - /** @description The description key of the history record. */ - descriptionKey?: string; /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; - /** @description The description of the email address associated the history record. */ - emailDescription?: string; - /** @description The description key of the email address associated the history record. */ - emailDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Details of the system that generated the history record. */ - generator?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description Details of the cause that triggered the creation the history record. */ + cause?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Details of the cause that triggered the creation the history record. */ - cause?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description The description of the history record. */ + description?: string; + /** @description The description key of the history record. */ + descriptionKey?: string; + /** @description The description of the email address associated the history record. */ + emailDescription?: string; + /** @description The description key of the email address associated the history record. */ + emailDescriptionKey?: string; + /** @description Additional arbitrary information about the history record. */ + extraData?: { + [key: string]: string; + }; + /** @description Details of the system that generated the history record. */ + generator?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Additional arbitrary information about the history record. */ - extraData?: { - [key: string]: string; - }; + /** @description The type of the history record. */ + type?: string; [key: string]: unknown; }; + /** @description The ID of the changelog. */ + id?: string; + /** @description The list of items changed. */ + items?: readonly { + /** @description The name of the field changed. */ + field?: string; + /** @description The ID of the field changed. */ + fieldId?: string; + /** @description The type of the field changed. */ + fieldtype?: string; + /** @description The details of the original value. */ + from?: string; + /** @description The details of the original value as a string. */ + fromString?: string; + /** @description The details of the new value. */ + to?: string; + /** @description The details of the new value as a string. */ + toString?: string; + }[]; + }; + ColorBean: { + /** @enum {string} */ + key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; + }; + ColumnBean: { + /** Format: int32 */ + max?: number; + /** Format: int32 */ + min?: number; + name?: string; + statuses?: { + id?: string; + /** Format: uri */ + self?: string; + }[]; + }; + ColumnConfigBean: { + columns?: { + /** Format: int32 */ + max?: number; + /** Format: int32 */ + min?: number; + name?: string; + statuses?: { + id?: string; + /** Format: uri */ + self?: string; + }[]; + }[]; + constraintType?: string; + }; + Entry: { + errors?: string[]; + /** Format: int64 */ + issueId?: number; + issueKey?: string; + /** Format: int32 */ + status?: number; + }; + EpicRankRequestBean: { + rankAfterEpic?: string; + rankBeforeEpic?: string; + /** Format: int64 */ + rankCustomFieldId?: number; + }; + EpicUpdateBean: { + color?: { + /** @enum {string} */ + key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; + }; + done?: boolean; + name?: string; + summary?: string; + }; + EstimationConfigBean: { + field?: { + displayName?: string; + fieldId?: string; + }; + type?: string; + }; + EstimationConfigurationBean: { + localisedDescription?: string; + localisedName?: string; + /** @enum {string} */ + value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; + }; + EstimationFieldBean: { + displayName?: string; + fieldId?: string; + }; + FeatureBean: { + /** @enum {string} */ + boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; + /** Format: int64 */ + boardId?: number; + featureId?: string; + /** @enum {string} */ + featureType?: "BASIC" | "ESTIMATION"; + imageUri?: string; + learnMoreArticleId?: string; + learnMoreLink?: string; + localisedDescription?: string; + localisedGroup?: string; + localisedName?: string; + permissibleEstimationTypes?: ({ + localisedDescription?: string; + localisedName?: string; + /** @enum {string} */ + value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; + })[]; + /** @enum {string} */ + state?: "ENABLED" | "DISABLED" | "COMING_SOON"; + toggleLocked?: boolean; + }; + FeatureResponseBean: { + features?: ({ + /** @enum {string} */ + boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; + /** Format: int64 */ + boardId?: number; + featureId?: string; + /** @enum {string} */ + featureType?: "BASIC" | "ESTIMATION"; + imageUri?: string; + learnMoreArticleId?: string; + learnMoreLink?: string; + localisedDescription?: string; + localisedGroup?: string; + localisedName?: string; + permissibleEstimationTypes?: ({ + localisedDescription?: string; + localisedName?: string; + /** @enum {string} */ + value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; + })[]; + /** @enum {string} */ + state?: "ENABLED" | "DISABLED" | "COMING_SOON"; + toggleLocked?: boolean; + })[]; + }; + FeatureToggleRequestBean: { + /** Format: int64 */ + boardId?: number; + enabling?: boolean; + feature?: string; + }; + FieldEditBean: { + value?: string; }; /** @description The metadata describing an issue field. */ FieldMetadata: { + /** @description The list of values allowed in the field. */ + allowedValues?: readonly unknown[]; + /** @description The URL that can be used to automatically complete the field. */ + autoCompleteUrl?: string; + /** @description The configuration properties. */ + configuration?: { + [key: string]: unknown; + }; + /** @description The default value of the field. */ + defaultValue?: unknown; + /** @description Whether the field has a default value. */ + hasDefaultValue?: boolean; + /** @description The key of the field. */ + key: string; + /** @description The name of the field. */ + name: string; + /** @description The list of operations that can be performed on the field. */ + operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** @@ -1705,155 +1879,356 @@ export interface components { * @description If the field is a custom field, the custom ID of the field. */ customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; - }; - /** @description The name of the field. */ - name: string; - /** @description The key of the field. */ - key: string; - /** @description The URL that can be used to automatically complete the field. */ - autoCompleteUrl?: string; - /** @description Whether the field has a default value. */ - hasDefaultValue?: boolean; - /** @description The list of operations that can be performed on the field. */ - operations: readonly string[]; - /** @description The list of values allowed in the field. */ - allowedValues?: readonly unknown[]; - /** @description The default value of the field. */ - defaultValue?: unknown; - /** @description The configuration properties. */ - configuration?: { - [key: string]: unknown; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; }; }; + GroupBean: { + name?: string; + /** Format: uri */ + self?: string; + }; /** @description Details of issue history metadata. */ HistoryMetadata: { - /** @description The type of the history record. */ - type?: string; - /** @description The description of the history record. */ - description?: string; - /** @description The description key of the history record. */ - descriptionKey?: string; /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; - /** @description The description of the email address associated the history record. */ - emailDescription?: string; - /** @description The description key of the email address associated the history record. */ - emailDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Details of the system that generated the history record. */ - generator?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description Details of the cause that triggered the creation the history record. */ + cause?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Details of the cause that triggered the creation the history record. */ - cause?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description The description of the history record. */ + description?: string; + /** @description The description key of the history record. */ + descriptionKey?: string; + /** @description The description of the email address associated the history record. */ + emailDescription?: string; + /** @description The description key of the email address associated the history record. */ + emailDescriptionKey?: string; + /** @description Additional arbitrary information about the history record. */ + extraData?: { + [key: string]: string; + }; + /** @description Details of the system that generated the history record. */ + generator?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; - /** @description Additional arbitrary information about the history record. */ - extraData?: { - [key: string]: string; - }; + /** @description The type of the history record. */ + type?: string; [key: string]: unknown; }; /** @description Details of user or system associated with a issue history metadata item. */ HistoryMetadataParticipant: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; IncludedFields: { - included?: string[]; actuallyIncluded?: string[]; excluded?: string[]; + included?: string[]; + }; + IssueAssignRequestBean: { + issues?: string[]; }; /** @description Details about an issue. */ IssueBean: { + /** @description Details of changelogs associated with the issue. */ + changelog?: { + /** @description The list of changelogs. */ + histories?: readonly { + /** @description The user who made the change. */ + author?: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ + accountType?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ + displayName?: string; + /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ + emailAddress?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + key?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + name?: string; + /** @description The URL of the user. */ + self?: string; + /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ + timeZone?: string; + }; + /** + * Format: date-time + * @description The date on which the change took place. + */ + created?: string; + /** @description The history metadata associated with the changed. */ + historyMetadata?: { + /** @description The activity described in the history record. */ + activityDescription?: string; + /** @description The key of the activity described in the history record. */ + activityDescriptionKey?: string; + /** @description Details of the user whose action created the history record. */ + actor?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description Details of the cause that triggered the creation the history record. */ + cause?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description The description of the history record. */ + description?: string; + /** @description The description key of the history record. */ + descriptionKey?: string; + /** @description The description of the email address associated the history record. */ + emailDescription?: string; + /** @description The description key of the email address associated the history record. */ + emailDescriptionKey?: string; + /** @description Additional arbitrary information about the history record. */ + extraData?: { + [key: string]: string; + }; + /** @description Details of the system that generated the history record. */ + generator?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description The type of the history record. */ + type?: string; + [key: string]: unknown; + }; + /** @description The ID of the changelog. */ + id?: string; + /** @description The list of items changed. */ + items?: readonly { + /** @description The name of the field changed. */ + field?: string; + /** @description The ID of the field changed. */ + fieldId?: string; + /** @description The type of the field changed. */ + fieldtype?: string; + /** @description The details of the original value. */ + from?: string; + /** @description The details of the original value as a string. */ + fromString?: string; + /** @description The details of the new value. */ + to?: string; + /** @description The details of the new value as a string. */ + toString?: string; + }[]; + }[]; + /** + * Format: int32 + * @description The maximum number of results that could be on the page. + */ + maxResults?: number; + /** + * Format: int32 + * @description The index of the first item returned on the page. + */ + startAt?: number; + /** + * Format: int32 + * @description The number of results on the page. + */ + total?: number; + }; + /** @description The metadata for the fields on the issue that can be amended. */ + editmeta?: { + fields?: { + [key: string]: { + /** @description The list of values allowed in the field. */ + allowedValues?: readonly unknown[]; + /** @description The URL that can be used to automatically complete the field. */ + autoCompleteUrl?: string; + /** @description The configuration properties. */ + configuration?: { + [key: string]: unknown; + }; + /** @description The default value of the field. */ + defaultValue?: unknown; + /** @description Whether the field has a default value. */ + hasDefaultValue?: boolean; + /** @description The key of the field. */ + key: string; + /** @description The name of the field. */ + name: string; + /** @description The list of operations that can be performed on the field. */ + operations: readonly string[]; + /** @description Whether the field is required. */ + required: boolean; + /** @description The data type of the field. */ + schema: { + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; + /** @description If the field is a custom field, the URI of the field. */ + custom?: string; + /** + * Format: int64 + * @description If the field is a custom field, the custom ID of the field. + */ + customId?: number; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; + }; + }; + }; + }; /** @description Expand options that include additional issue details in the response. */ expand?: string; + fields?: { + [key: string]: unknown; + }; + fieldsToInclude?: { + actuallyIncluded?: string[]; + excluded?: string[]; + included?: string[]; + }; /** @description The ID of the issue. */ id?: string; - /** - * Format: uri - * @description The URL of the issue details. - */ - self?: string; /** @description The key of the issue. */ key?: string; - /** @description The rendered value of each field present on the issue. */ - renderedFields?: { - [key: string]: unknown; + /** @description The ID and name of each field present on the issue. */ + names?: { + [key: string]: string; }; + /** @description The operations that can be performed on the issue. */ + operations?: components["schemas"]["Operations"]; /** @description Details of the issue properties identified in the request. */ properties?: { [key: string]: unknown; }; - /** @description The ID and name of each field present on the issue. */ - names?: { - [key: string]: string; + /** @description The rendered value of each field present on the issue. */ + renderedFields?: { + [key: string]: unknown; }; /** @description The schema describing each field present on the issue. */ schema?: { [key: string]: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** @@ -1861,192 +2236,270 @@ export interface components { * @description If the field is a custom field, the custom ID of the field. */ customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; }; }; + /** + * Format: uri + * @description The URL of the issue details. + */ + self?: string; /** @description The transitions that can be performed on the issue. */ - transitions?: readonly { - /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ - id?: string; - /** @description The name of the issue transition. */ - name?: string; - /** @description Details of the issue status after the transition. */ - to?: { - /** @description The URL of the status. */ - self?: string; - /** @description The description of the status. */ - description?: string; - /** @description The URL of the icon used to represent the status. */ - iconUrl?: string; - /** @description The name of the status. */ - name?: string; - /** @description The ID of the status. */ + transitions?: readonly ({ + /** @description Expand options that include additional transition details in the response. */ + expand?: string; + /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ + fields?: { + [key: string]: { + /** @description The list of values allowed in the field. */ + allowedValues?: readonly unknown[]; + /** @description The URL that can be used to automatically complete the field. */ + autoCompleteUrl?: string; + /** @description The configuration properties. */ + configuration?: { + [key: string]: unknown; + }; + /** @description The default value of the field. */ + defaultValue?: unknown; + /** @description Whether the field has a default value. */ + hasDefaultValue?: boolean; + /** @description The key of the field. */ + key: string; + /** @description The name of the field. */ + name: string; + /** @description The list of operations that can be performed on the field. */ + operations: readonly string[]; + /** @description Whether the field is required. */ + required: boolean; + /** @description The data type of the field. */ + schema: { + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; + /** @description If the field is a custom field, the URI of the field. */ + custom?: string; + /** + * Format: int64 + * @description If the field is a custom field, the custom ID of the field. + */ + customId?: number; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; + }; + }; + }; + /** @description Whether there is a screen associated with the issue transition. */ + hasScreen?: boolean; + /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ id?: string; - /** @description The category assigned to the status. */ - statusCategory?: { - /** @description The URL of the status category. */ - self?: string; - /** - * Format: int64 - * @description The ID of the status category. - */ - id?: number; - /** @description The key of the status category. */ - key?: string; - /** @description The name of the color used to represent the status category. */ - colorName?: string; - /** @description The name of the status category. */ + /** @description Whether the transition is available to be performed. */ + isAvailable?: boolean; + /** @description Whether the issue has to meet criteria before the issue transition is applied. */ + isConditional?: boolean; + /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ + isGlobal?: boolean; + /** @description Whether this is the initial issue transition for the workflow. */ + isInitial?: boolean; + looped?: boolean; + /** @description The name of the issue transition. */ + name?: string; + /** @description Details of the issue status after the transition. */ + to?: { + /** @description The description of the status. */ + description?: string; + /** @description The URL of the icon used to represent the status. */ + iconUrl?: string; + /** @description The ID of the status. */ + id?: string; + /** @description The name of the status. */ name?: string; - [key: string]: unknown; - }; - [key: string]: unknown; - }; - /** @description Whether there is a screen associated with the issue transition. */ - hasScreen?: boolean; - /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ - isGlobal?: boolean; - /** @description Whether this is the initial issue transition for the workflow. */ - isInitial?: boolean; - /** @description Whether the transition is available to be performed. */ - isAvailable?: boolean; - /** @description Whether the issue has to meet criteria before the issue transition is applied. */ - isConditional?: boolean; - /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ - fields?: { - [key: string]: { - /** @description Whether the field is required. */ - required: boolean; - /** @description The data type of the field. */ - schema: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; - /** @description If the field is a custom field, the URI of the field. */ - custom?: string; + /** @description The scope of the field. */ + scope?: { + /** @description The project the item has scope in. */ + project?: { + /** @description The URLs of the project's avatars. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The ID of the project. */ + id?: string; + /** @description The key of the project. */ + key?: string; + /** @description The name of the project. */ + name?: string; + /** @description The category the project belongs to. */ + projectCategory?: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ + id?: string; + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ + self?: string; + }; + /** + * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. + * @enum {string} + */ + projectTypeKey?: "software" | "service_desk" | "business"; + /** @description The URL of the project details. */ + self?: string; + /** @description Whether or not the project is simplified. */ + simplified?: boolean; + }; /** - * Format: int64 - * @description If the field is a custom field, the custom ID of the field. + * @description The type of scope. + * @enum {string} */ - customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; - }; - /** @description The name of the field. */ - name: string; - /** @description The key of the field. */ - key: string; - /** @description The URL that can be used to automatically complete the field. */ - autoCompleteUrl?: string; - /** @description Whether the field has a default value. */ - hasDefaultValue?: boolean; - /** @description The list of operations that can be performed on the field. */ - operations: readonly string[]; - /** @description The list of values allowed in the field. */ - allowedValues?: readonly unknown[]; - /** @description The default value of the field. */ - defaultValue?: unknown; - /** @description The configuration properties. */ - configuration?: { + type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; - }; - }; - /** @description Expand options that include additional transition details in the response. */ - expand?: string; - looped?: boolean; - [key: string]: unknown; - }[]; - /** @description The operations that can be performed on the issue. */ - operations?: components["schemas"]["Operations"]; - /** @description The metadata for the fields on the issue that can be amended. */ - editmeta?: { - fields?: { - [key: string]: { - /** @description Whether the field is required. */ - required: boolean; - /** @description The data type of the field. */ - schema: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; - /** @description If the field is a custom field, the URI of the field. */ - custom?: string; + /** @description The URL of the status. */ + self?: string; + /** @description The category assigned to the status. */ + statusCategory?: { + /** @description The name of the color used to represent the status category. */ + colorName?: string; /** * Format: int64 - * @description If the field is a custom field, the custom ID of the field. + * @description The ID of the status category. */ - customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; + id?: number; + /** @description The key of the status category. */ + key?: string; + /** @description The name of the status category. */ + name?: string; + /** @description The URL of the status category. */ + self?: string; + [key: string]: unknown; }; - /** @description The name of the field. */ - name: string; - /** @description The key of the field. */ - key: string; - /** @description The URL that can be used to automatically complete the field. */ - autoCompleteUrl?: string; - /** @description Whether the field has a default value. */ - hasDefaultValue?: boolean; - /** @description The list of operations that can be performed on the field. */ - operations: readonly string[]; - /** @description The list of values allowed in the field. */ - allowedValues?: readonly unknown[]; - /** @description The default value of the field. */ - defaultValue?: unknown; - /** @description The configuration properties. */ + [key: string]: unknown; + }; + [key: string]: unknown; + })[]; + /** @description The versions of each field on the issue. */ + versionedRepresentations?: { + [key: string]: { + [key: string]: unknown; + }; + }; + }; + IssueRankRequestBean: { + issues?: string[]; + rankAfterIssue?: string; + rankBeforeIssue?: string; + /** Format: int64 */ + rankCustomFieldId?: number; + }; + /** @description Details of an issue transition. */ + IssueTransition: { + /** @description Expand options that include additional transition details in the response. */ + expand?: string; + /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ + fields?: { + [key: string]: { + /** @description The list of values allowed in the field. */ + allowedValues?: readonly unknown[]; + /** @description The URL that can be used to automatically complete the field. */ + autoCompleteUrl?: string; + /** @description The configuration properties. */ + configuration?: { + [key: string]: unknown; + }; + /** @description The default value of the field. */ + defaultValue?: unknown; + /** @description Whether the field has a default value. */ + hasDefaultValue?: boolean; + /** @description The key of the field. */ + key: string; + /** @description The name of the field. */ + name: string; + /** @description The list of operations that can be performed on the field. */ + operations: readonly string[]; + /** @description Whether the field is required. */ + required: boolean; + /** @description The data type of the field. */ + schema: { + /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; + /** @description If the field is a custom field, the URI of the field. */ + custom?: string; + /** + * Format: int64 + * @description If the field is a custom field, the custom ID of the field. + */ + customId?: number; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; }; }; }; - /** @description Details of changelogs associated with the issue. */ - changelog?: { - /** - * Format: int32 - * @description The index of the first item returned on the page. - */ - startAt?: number; - /** - * Format: int32 - * @description The maximum number of results that could be on the page. - */ - maxResults?: number; - /** - * Format: int32 - * @description The number of results on the page. - */ - total?: number; - /** @description The list of changelogs. */ - histories?: readonly { - /** @description The ID of the changelog. */ - id?: string; - /** @description The user who made the change. */ - author?: { - /** @description The URL of the user. */ - self?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - name?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - key?: string; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ - emailAddress?: string; - /** @description The avatars of the user. */ + /** @description Whether there is a screen associated with the issue transition. */ + hasScreen?: boolean; + /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ + id?: string; + /** @description Whether the transition is available to be performed. */ + isAvailable?: boolean; + /** @description Whether the issue has to meet criteria before the issue transition is applied. */ + isConditional?: boolean; + /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ + isGlobal?: boolean; + /** @description Whether this is the initial issue transition for the workflow. */ + isInitial?: boolean; + looped?: boolean; + /** @description The name of the issue transition. */ + name?: string; + /** @description Details of the issue status after the transition. */ + to?: { + /** @description The description of the status. */ + description?: string; + /** @description The URL of the icon used to represent the status. */ + iconUrl?: string; + /** @description The ID of the status. */ + id?: string; + /** @description The name of the status. */ + name?: string; + /** @description The scope of the field. */ + scope?: { + /** @description The project the item has scope in. */ + project?: { + /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri @@ -2069,146 +2522,46 @@ export interface components { */ "48x48"?: string; }; - /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ - timeZone?: string; - /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ - accountType?: string; + /** @description The ID of the project. */ + id?: string; + /** @description The key of the project. */ + key?: string; + /** @description The name of the project. */ + name?: string; + /** @description The category the project belongs to. */ + projectCategory?: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ + id?: string; + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ + self?: string; + }; + /** + * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. + * @enum {string} + */ + projectTypeKey?: "software" | "service_desk" | "business"; + /** @description The URL of the project details. */ + self?: string; + /** @description Whether or not the project is simplified. */ + simplified?: boolean; }; /** - * Format: date-time - * @description The date on which the change took place. + * @description The type of scope. + * @enum {string} */ - created?: string; - /** @description The list of items changed. */ - items?: readonly { - /** @description The name of the field changed. */ - field?: string; - /** @description The type of the field changed. */ - fieldtype?: string; - /** @description The ID of the field changed. */ - fieldId?: string; - /** @description The details of the original value. */ - from?: string; - /** @description The details of the original value as a string. */ - fromString?: string; - /** @description The details of the new value. */ - to?: string; - /** @description The details of the new value as a string. */ - toString?: string; - }[]; - /** @description The history metadata associated with the changed. */ - historyMetadata?: { - /** @description The type of the history record. */ - type?: string; - /** @description The description of the history record. */ - description?: string; - /** @description The description key of the history record. */ - descriptionKey?: string; - /** @description The activity described in the history record. */ - activityDescription?: string; - /** @description The key of the activity described in the history record. */ - activityDescriptionKey?: string; - /** @description The description of the email address associated the history record. */ - emailDescription?: string; - /** @description The description key of the email address associated the history record. */ - emailDescriptionKey?: string; - /** @description Details of the user whose action created the history record. */ - actor?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Details of the system that generated the history record. */ - generator?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Details of the cause that triggered the creation the history record. */ - cause?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Additional arbitrary information about the history record. */ - extraData?: { - [key: string]: string; - }; - [key: string]: unknown; - }; - }[]; - }; - /** @description The versions of each field on the issue. */ - versionedRepresentations?: { - [key: string]: { + type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; - }; - fieldsToInclude?: { - included?: string[]; - actuallyIncluded?: string[]; - excluded?: string[]; - }; - fields?: { - [key: string]: unknown; - }; - }; - /** @description Details of an issue transition. */ - IssueTransition: { - /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ - id?: string; - /** @description The name of the issue transition. */ - name?: string; - /** @description Details of the issue status after the transition. */ - to?: { /** @description The URL of the status. */ self?: string; - /** @description The description of the status. */ - description?: string; - /** @description The URL of the icon used to represent the status. */ - iconUrl?: string; - /** @description The name of the status. */ - name?: string; - /** @description The ID of the status. */ - id?: string; /** @description The category assigned to the status. */ statusCategory?: { - /** @description The URL of the status category. */ - self?: string; + /** @description The name of the color used to represent the status category. */ + colorName?: string; /** * Format: int64 * @description The ID of the status category. @@ -2216,88 +2569,46 @@ export interface components { id?: number; /** @description The key of the status category. */ key?: string; - /** @description The name of the color used to represent the status category. */ - colorName?: string; /** @description The name of the status category. */ name?: string; + /** @description The URL of the status category. */ + self?: string; [key: string]: unknown; }; [key: string]: unknown; }; - /** @description Whether there is a screen associated with the issue transition. */ - hasScreen?: boolean; - /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ - isGlobal?: boolean; - /** @description Whether this is the initial issue transition for the workflow. */ - isInitial?: boolean; - /** @description Whether the transition is available to be performed. */ - isAvailable?: boolean; - /** @description Whether the issue has to meet criteria before the issue transition is applied. */ - isConditional?: boolean; - /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ + [key: string]: unknown; + }; + /** @description A list of editable field details. */ + IssueUpdateMetadata: { fields?: { [key: string]: { - /** @description Whether the field is required. */ - required: boolean; - /** @description The data type of the field. */ - schema: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; - /** @description If the field is a custom field, the URI of the field. */ - custom?: string; - /** - * Format: int64 - * @description If the field is a custom field, the custom ID of the field. - */ - customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; - }; - /** @description The name of the field. */ - name: string; - /** @description The key of the field. */ - key: string; - /** @description The URL that can be used to automatically complete the field. */ - autoCompleteUrl?: string; - /** @description Whether the field has a default value. */ - hasDefaultValue?: boolean; - /** @description The list of operations that can be performed on the field. */ - operations: readonly string[]; /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; - /** @description The default value of the field. */ - defaultValue?: unknown; + /** @description The URL that can be used to automatically complete the field. */ + autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; - }; - }; - /** @description Expand options that include additional transition details in the response. */ - expand?: string; - looped?: boolean; - [key: string]: unknown; - }; - /** @description A list of editable field details. */ - IssueUpdateMetadata: { - fields?: { - [key: string]: { + /** @description The default value of the field. */ + defaultValue?: unknown; + /** @description Whether the field has a default value. */ + hasDefaultValue?: boolean; + /** @description The key of the field. */ + key: string; + /** @description The name of the field. */ + name: string; + /** @description The list of operations that can be performed on the field. */ + operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** @@ -2305,40 +2616,22 @@ export interface components { * @description If the field is a custom field, the custom ID of the field. */ customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; - }; - /** @description The name of the field. */ - name: string; - /** @description The key of the field. */ - key: string; - /** @description The URL that can be used to automatically complete the field. */ - autoCompleteUrl?: string; - /** @description Whether the field has a default value. */ - hasDefaultValue?: boolean; - /** @description The list of operations that can be performed on the field. */ - operations: readonly string[]; - /** @description The list of values allowed in the field. */ - allowedValues?: readonly unknown[]; - /** @description The default value of the field. */ - defaultValue?: unknown; - /** @description The configuration properties. */ - configuration?: { - [key: string]: unknown; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; }; }; }; }; /** @description The schema of a field. */ JsonTypeBean: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** @@ -2346,39 +2639,46 @@ export interface components { * @description If the field is a custom field, the custom ID of the field. */ customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; - }; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; }; /** @description Details a link group, which defines issue operations. */ LinkGroup: { - id?: string; - styleClass?: string; + groups?: components["schemas"]["LinkGroup"][]; /** @description Details about the operations available in this version. */ header?: { - id?: string; - styleClass?: string; + href?: string; iconClass?: string; + id?: string; label?: string; + styleClass?: string; title?: string; - href?: string; /** Format: int32 */ weight?: number; }; - /** Format: int32 */ - weight?: number; + id?: string; links?: { - id?: string; - styleClass?: string; - iconClass?: string; - label?: string; - title?: string; - href?: string; - /** Format: int32 */ - weight?: number; - }[]; - groups?: components["schemas"]["LinkGroup"][]; + href?: string; + iconClass?: string; + id?: string; + label?: string; + styleClass?: string; + title?: string; + /** Format: int32 */ + weight?: number; + }[]; + styleClass?: string; + /** Format: int32 */ + weight?: number; + }; + LocationBean: { + projectKeyOrId?: string; + /** @enum {string} */ + type?: "project" | "user"; }; /** @description Details of the operations that can be performed on the issue. */ Operations: { @@ -2386,293 +2686,313 @@ export interface components { linkGroups?: readonly components["schemas"]["LinkGroup"][]; [key: string]: unknown; }; - /** @description A page of changelogs. */ - PageOfChangelogs: { - /** - * Format: int32 - * @description The index of the first item returned on the page. - */ - startAt?: number; - /** - * Format: int32 - * @description The maximum number of results that could be on the page. - */ + PageBeanBoard: { + isLast?: boolean; + /** Format: int32 */ maxResults?: number; - /** - * Format: int32 - * @description The number of results on the page. - */ - total?: number; - /** @description The list of changelogs. */ - histories?: readonly { - /** @description The ID of the changelog. */ - id?: string; - /** @description The user who made the change. */ - author?: { - /** @description The URL of the user. */ - self?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - name?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - key?: string; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ - emailAddress?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the item's 16x16 pixel avatar. - */ - "16x16"?: string; - /** - * Format: uri - * @description The URL of the item's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the item's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the item's 48x48 pixel avatar. - */ - "48x48"?: string; - }; - /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ - timeZone?: string; - /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ - accountType?: string; - }; - /** - * Format: date-time - * @description The date on which the change took place. - */ - created?: string; - /** @description The list of items changed. */ - items?: readonly { - /** @description The name of the field changed. */ - field?: string; - /** @description The type of the field changed. */ - fieldtype?: string; - /** @description The ID of the field changed. */ - fieldId?: string; - /** @description The details of the original value. */ - from?: string; - /** @description The details of the original value as a string. */ - fromString?: string; - /** @description The details of the new value. */ - to?: string; - /** @description The details of the new value as a string. */ - toString?: string; - }[]; - /** @description The history metadata associated with the changed. */ - historyMetadata?: { - /** @description The type of the history record. */ - type?: string; - /** @description The description of the history record. */ - description?: string; - /** @description The description key of the history record. */ - descriptionKey?: string; - /** @description The activity described in the history record. */ - activityDescription?: string; - /** @description The key of the activity described in the history record. */ - activityDescriptionKey?: string; - /** @description The description of the email address associated the history record. */ - emailDescription?: string; - /** @description The description key of the email address associated the history record. */ - emailDescriptionKey?: string; - /** @description Details of the user whose action created the history record. */ - actor?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Details of the system that generated the history record. */ - generator?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Details of the cause that triggered the creation the history record. */ - cause?: { - /** @description The ID of the user or system associated with a history record. */ - id?: string; - /** @description The display name of the user or system associated with a history record. */ - displayName?: string; - /** @description The key of the display name of the user or system associated with a history record. */ - displayNameKey?: string; - /** @description The type of the user or system associated with a history record. */ - type?: string; - /** @description The URL to an avatar for the user or system associated with a history record. */ - avatarUrl?: string; - /** @description The URL of the user or system associated with a history record. */ - url?: string; - [key: string]: unknown; - }; - /** @description Additional arbitrary information about the history record. */ - extraData?: { - [key: string]: string; - }; - [key: string]: unknown; - }; - }[]; - }; - /** @description The result of a JQL search. */ - SearchResults: { - /** @description Expand options that include additional search result details in the response. */ - expand?: string; - /** - * Format: int32 - * @description The index of the first item returned on the page. - */ + /** Format: int64 */ startAt?: number; - /** - * Format: int32 - * @description The maximum number of results that could be on the page. - */ - maxResults?: number; - /** - * Format: int32 - * @description The number of results on the page. - */ + /** Format: int64 */ total?: number; - /** @description The list of issues found by the search. */ - issues?: readonly components["schemas"]["IssueBean"][]; - /** @description Any warnings related to the JQL query. */ - warningMessages?: readonly string[]; - /** @description The ID and name of each field in the search results. */ - names?: { - [key: string]: string; - }; - /** @description The schema describing the field types in the search results. */ - schema?: { - [key: string]: { - /** @description The data type of the field. */ - type: string; - /** @description When the data type is an array, the name of the field items within the array. */ - items?: string; - /** @description If the field is a system field, the name of the field. */ - system?: string; - /** @description If the field is a custom field, the URI of the field. */ - custom?: string; + values?: { + admins?: { + groups?: { + name?: string; + /** Format: uri */ + self?: string; + }[]; + users?: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. + */ + key?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. + */ + name?: string; + /** + * Format: uri + * @description The URL of the user. + */ + self?: string; + }[]; + }; + /** @description Whether the board can be edited. */ + canEdit?: boolean; + /** @description Whether the board is selected as a favorite. */ + favourite?: boolean; /** * Format: int64 - * @description If the field is a custom field, the custom ID of the field. + * @description The ID of the board. */ - customId?: number; - /** @description If the field is a custom field, the configuration of the field. */ - configuration?: { - [key: string]: unknown; + id?: number; + /** @description Whether the board is private. */ + isPrivate?: boolean; + /** @description The container that the board is located in. */ + location?: { + /** Format: uri */ + avatarURI?: string; + displayName?: string; + name?: string; + /** Format: int64 */ + projectId?: number; + projectKey?: string; + projectName?: string; + projectTypeKey?: string; + userAccountId?: string; + /** Format: int64 */ + userId?: number; }; - }; - }; + /** @description The name of the board. */ + name?: string; + /** + * Format: uri + * @description The URL of the board. + */ + self?: string; + /** @description The type the board. */ + type?: string; + }[]; }; - /** @description Details about the operations available in this version. */ - SimpleLink: { - id?: string; - styleClass?: string; - iconClass?: string; - label?: string; - title?: string; - href?: string; + PageBeanBoardFilterBean: { + isLast?: boolean; /** Format: int32 */ - weight?: number; + maxResults?: number; + /** Format: int64 */ + startAt?: number; + /** Format: int64 */ + total?: number; + values?: { + /** Format: int64 */ + id?: number; + name?: string; + /** Format: uri */ + self?: string; + }[]; }; - /** @description A status category. */ - StatusCategory: { - /** @description The URL of the status category. */ - self?: string; - /** - * Format: int64 - * @description The ID of the status category. - */ - id?: number; - /** @description The key of the status category. */ - key?: string; - /** @description The name of the color used to represent the status category. */ - colorName?: string; - /** @description The name of the status category. */ - name?: string; - [key: string]: unknown; + PageBeanQuickFilterBean: { + isLast?: boolean; + /** Format: int32 */ + maxResults?: number; + /** Format: int64 */ + startAt?: number; + /** Format: int64 */ + total?: number; + values?: { + /** Format: int64 */ + boardId?: number; + description?: string; + /** Format: int64 */ + id?: number; + jql?: string; + name?: string; + /** Format: int32 */ + position?: number; + }[]; }; - /** @description A status. */ - StatusDetails: { - /** @description The URL of the status. */ - self?: string; - /** @description The description of the status. */ - description?: string; - /** @description The URL of the icon used to represent the status. */ - iconUrl?: string; - /** @description The name of the status. */ - name?: string; - /** @description The ID of the status. */ - id?: string; - /** @description The category assigned to the status. */ - statusCategory?: { - /** @description The URL of the status category. */ - self?: string; - /** - * Format: int64 - * @description The ID of the status category. - */ - id?: number; - /** @description The key of the status category. */ - key?: string; - /** @description The name of the color used to represent the status category. */ - colorName?: string; - /** @description The name of the status category. */ - name?: string; - [key: string]: unknown; - }; - [key: string]: unknown; + /** @description A page of changelogs. */ + PageOfChangelogs: { + /** @description The list of changelogs. */ + histories?: readonly { + /** @description The user who made the change. */ + author?: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ + accountType?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ + displayName?: string; + /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ + emailAddress?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + key?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + name?: string; + /** @description The URL of the user. */ + self?: string; + /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ + timeZone?: string; + }; + /** + * Format: date-time + * @description The date on which the change took place. + */ + created?: string; + /** @description The history metadata associated with the changed. */ + historyMetadata?: { + /** @description The activity described in the history record. */ + activityDescription?: string; + /** @description The key of the activity described in the history record. */ + activityDescriptionKey?: string; + /** @description Details of the user whose action created the history record. */ + actor?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description Details of the cause that triggered the creation the history record. */ + cause?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description The description of the history record. */ + description?: string; + /** @description The description key of the history record. */ + descriptionKey?: string; + /** @description The description of the email address associated the history record. */ + emailDescription?: string; + /** @description The description key of the email address associated the history record. */ + emailDescriptionKey?: string; + /** @description Additional arbitrary information about the history record. */ + extraData?: { + [key: string]: string; + }; + /** @description Details of the system that generated the history record. */ + generator?: { + /** @description The URL to an avatar for the user or system associated with a history record. */ + avatarUrl?: string; + /** @description The display name of the user or system associated with a history record. */ + displayName?: string; + /** @description The key of the display name of the user or system associated with a history record. */ + displayNameKey?: string; + /** @description The ID of the user or system associated with a history record. */ + id?: string; + /** @description The type of the user or system associated with a history record. */ + type?: string; + /** @description The URL of the user or system associated with a history record. */ + url?: string; + [key: string]: unknown; + }; + /** @description The type of the history record. */ + type?: string; + [key: string]: unknown; + }; + /** @description The ID of the changelog. */ + id?: string; + /** @description The list of items changed. */ + items?: readonly { + /** @description The name of the field changed. */ + field?: string; + /** @description The ID of the field changed. */ + fieldId?: string; + /** @description The type of the field changed. */ + fieldtype?: string; + /** @description The details of the original value. */ + from?: string; + /** @description The details of the original value as a string. */ + fromString?: string; + /** @description The details of the new value. */ + to?: string; + /** @description The details of the new value as a string. */ + toString?: string; + }[]; + }[]; + /** + * Format: int32 + * @description The maximum number of results that could be on the page. + */ + maxResults?: number; + /** + * Format: int32 + * @description The index of the first item returned on the page. + */ + startAt?: number; + /** + * Format: int32 + * @description The number of results on the page. + */ + total?: number; }; - /** - * @description User details permitted by the user's Atlassian Account privacy settings. However, be aware of these exceptions: - * - * * User record deleted from Atlassian: This occurs as the result of a right to be forgotten request. In this case, `displayName` provides an indication and other parameters have default values or are blank (for example, email is blank). - * * User record corrupted: This occurs as a results of events such as a server import and can only happen to deleted users. In this case, `accountId` returns *unknown* and all other parameters have fallback values. - * * User record unavailable: This usually occurs due to an internal service outage. In this case, all parameters have fallback values. - */ - UserDetails: { - /** @description The URL of the user. */ - self?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - name?: string; - /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ - key?: string; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ - emailAddress?: string; - /** @description The avatars of the user. */ + PartialSuccessBean: { + entries?: { + errors?: string[]; + /** Format: int64 */ + issueId?: number; + issueKey?: string; + /** Format: int32 */ + status?: number; + }[]; + }; + /** @description Details about a project. */ + ProjectDetails: { + /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri @@ -2695,239 +3015,449 @@ export interface components { */ "48x48"?: string; }; - /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ - timeZone?: string; - /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ - accountType?: string; + /** @description The ID of the project. */ + id?: string; + /** @description The key of the project. */ + key?: string; + /** @description The name of the project. */ + name?: string; + /** @description The category the project belongs to. */ + projectCategory?: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ + id?: string; + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ + self?: string; + }; + /** + * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. + * @enum {string} + */ + projectTypeKey?: "software" | "service_desk" | "business"; + /** @description The URL of the project details. */ + self?: string; + /** @description Whether or not the project is simplified. */ + simplified?: boolean; }; - Entry: { + QuickFilterBean: { /** Format: int64 */ - issueId?: number; - issueKey?: string; + boardId?: number; + description?: string; + /** Format: int64 */ + id?: number; + jql?: string; + name?: string; /** Format: int32 */ - status?: number; - errors?: string[]; + position?: number; }; - PartialSuccessBean: { - entries?: { - /** Format: int64 */ - issueId?: number; - issueKey?: string; - /** Format: int32 */ - status?: number; - errors?: string[]; - }[]; - }; - BoardConfigBean: { + RankingConfigBean: { /** Format: int64 */ - id?: number; - name?: string; - type?: string; + rankCustomFieldId?: number; + }; + RelationBean: { + id?: string; /** Format: uri */ self?: string; - location?: { - /** @enum {string} */ - type?: "project" | "user"; - projectKeyOrId?: string; - }; - filter?: { - id?: string; - /** Format: uri */ - self?: string; - }; - subQuery?: { - query?: string; - }; - columnConfig?: { - columns?: { - name?: string; - statuses?: { - id?: string; - /** Format: uri */ - self?: string; - }[]; - /** Format: int32 */ - min?: number; - /** Format: int32 */ - max?: number; - }[]; - constraintType?: string; - }; - estimation?: { - type?: string; - field?: { - fieldId?: string; - displayName?: string; - }; - }; - ranking?: { - /** Format: int64 */ - rankCustomFieldId?: number; - }; }; - ColumnBean: { - name?: string; - statuses?: { - id?: string; - /** Format: uri */ - self?: string; - }[]; - /** Format: int32 */ - min?: number; - /** Format: int32 */ - max?: number; + ReportBean: Record; + ReportsResponseBean: { + reports?: Record[]; }; - ColumnConfigBean: { - columns?: { + /** @description The projects the item is associated with. Indicated for items associated with [next-gen projects](https://confluence.atlassian.com/x/loMyO). */ + Scope: { + /** @description The project the item has scope in. */ + project?: { + /** @description The URLs of the project's avatars. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The ID of the project. */ + id?: string; + /** @description The key of the project. */ + key?: string; + /** @description The name of the project. */ name?: string; - statuses?: { + /** @description The category the project belongs to. */ + projectCategory?: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ id?: string; - /** Format: uri */ + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ self?: string; - }[]; - /** Format: int32 */ - min?: number; - /** Format: int32 */ - max?: number; - }[]; - constraintType?: string; - }; - EstimationConfigBean: { - type?: string; - field?: { - fieldId?: string; - displayName?: string; + }; + /** + * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. + * @enum {string} + */ + projectTypeKey?: "software" | "service_desk" | "business"; + /** @description The URL of the project details. */ + self?: string; + /** @description Whether or not the project is simplified. */ + simplified?: boolean; }; + /** + * @description The type of scope. + * @enum {string} + */ + type?: "PROJECT" | "TEMPLATE"; + [key: string]: unknown; }; - EstimationFieldBean: { - fieldId?: string; - displayName?: string; + /** @description The result of a JQL search. */ + SearchResults: { + /** @description Expand options that include additional search result details in the response. */ + expand?: string; + /** @description The list of issues found by the search. */ + issues?: readonly components["schemas"]["IssueBean"][]; + /** + * Format: int32 + * @description The maximum number of results that could be on the page. + */ + maxResults?: number; + /** @description The ID and name of each field in the search results. */ + names?: { + [key: string]: string; + }; + /** @description The schema describing the field types in the search results. */ + schema?: { + [key: string]: { + /** @description If the field is a custom field, the configuration of the field. */ + configuration?: { + [key: string]: unknown; + }; + /** @description If the field is a custom field, the URI of the field. */ + custom?: string; + /** + * Format: int64 + * @description If the field is a custom field, the custom ID of the field. + */ + customId?: number; + /** @description When the data type is an array, the name of the field items within the array. */ + items?: string; + /** @description If the field is a system field, the name of the field. */ + system?: string; + /** @description The data type of the field. */ + type: string; + }; + }; + /** + * Format: int32 + * @description The index of the first item returned on the page. + */ + startAt?: number; + /** + * Format: int32 + * @description The number of results on the page. + */ + total?: number; + /** @description Any warnings related to the JQL query. */ + warningMessages?: readonly string[]; }; - LocationBean: { - /** @enum {string} */ - type?: "project" | "user"; - projectKeyOrId?: string; + /** @description Details about the operations available in this version. */ + SimpleLink: { + href?: string; + iconClass?: string; + id?: string; + label?: string; + styleClass?: string; + title?: string; + /** Format: int32 */ + weight?: number; }; - RankingConfigBean: { + SprintBean: { + completeDate?: string; + createdDate?: string; + endDate?: string; + goal?: string; /** Format: int64 */ - rankCustomFieldId?: number; - }; - RelationBean: { - id?: string; + id?: number; + name?: string; + /** Format: int64 */ + originBoardId?: number; /** Format: uri */ self?: string; + startDate?: string; + state?: string; }; - SubqueryBean: { - query?: string; - }; - BoardCreateBean: { + SprintCreateBean: { + endDate?: string; + goal?: string; name?: string; - /** @enum {string} */ - type?: "kanban" | "scrum" | "agility"; - /** Format: int64 */ - filterId?: number; - location?: { - /** @enum {string} */ - type?: "project" | "user"; - projectKeyOrId?: string; - }; - }; - EstimationConfigurationBean: { - /** @enum {string} */ - value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; - localisedName?: string; - localisedDescription?: string; - }; - FeatureBean: { - /** @enum {string} */ - boardFeature?: - | "SIMPLE_ROADMAP" - | "BACKLOG" - | "SPRINTS" - | "DEVTOOLS" - | "REPORTS" - | "ESTIMATION" - | "PAGES" - | "CODE" - | "RELEASES" - | "DEPLOYMENTS" - | "ISSUE_NAVIGATOR" - | "ON_CALL_SCHEDULE" - | "BOARD"; /** Format: int64 */ - boardId?: number; - /** @enum {string} */ - state?: "ENABLED" | "DISABLED" | "COMING_SOON"; - localisedName?: string; - localisedDescription?: string; - learnMoreLink?: string; - imageUri?: string; - /** @enum {string} */ - featureType?: "BASIC" | "ESTIMATION"; - localisedGroup?: string; - permissibleEstimationTypes?: { - /** @enum {string} */ - value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; - localisedName?: string; - localisedDescription?: string; - }[]; - featureId?: string; - learnMoreArticleId?: string; - toggleLocked?: boolean; - }; - FeatureResponseBean: { - features?: { - /** @enum {string} */ - boardFeature?: - | "SIMPLE_ROADMAP" - | "BACKLOG" - | "SPRINTS" - | "DEVTOOLS" - | "REPORTS" - | "ESTIMATION" - | "PAGES" - | "CODE" - | "RELEASES" - | "DEPLOYMENTS" - | "ISSUE_NAVIGATOR" - | "ON_CALL_SCHEDULE" - | "BOARD"; - /** Format: int64 */ - boardId?: number; - /** @enum {string} */ - state?: "ENABLED" | "DISABLED" | "COMING_SOON"; - localisedName?: string; - localisedDescription?: string; - learnMoreLink?: string; - imageUri?: string; - /** @enum {string} */ - featureType?: "BASIC" | "ESTIMATION"; - localisedGroup?: string; - permissibleEstimationTypes?: { - /** @enum {string} */ - value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; - localisedName?: string; - localisedDescription?: string; - }[]; - featureId?: string; - learnMoreArticleId?: string; - toggleLocked?: boolean; - }[]; + originBoardId?: number; + startDate?: string; }; - FeatureToggleRequestBean: { + SprintSwapBean: { /** Format: int64 */ - boardId?: number; - feature?: string; - enabling?: boolean; - }; - FieldEditBean: { - value?: string; + sprintToSwapWith?: number; }; - }; + /** @description A status category. */ + StatusCategory: { + /** @description The name of the color used to represent the status category. */ + colorName?: string; + /** + * Format: int64 + * @description The ID of the status category. + */ + id?: number; + /** @description The key of the status category. */ + key?: string; + /** @description The name of the status category. */ + name?: string; + /** @description The URL of the status category. */ + self?: string; + [key: string]: unknown; + }; + /** @description A status. */ + StatusDetails: { + /** @description The description of the status. */ + description?: string; + /** @description The URL of the icon used to represent the status. */ + iconUrl?: string; + /** @description The ID of the status. */ + id?: string; + /** @description The name of the status. */ + name?: string; + /** @description The scope of the field. */ + scope?: { + /** @description The project the item has scope in. */ + project?: { + /** @description The URLs of the project's avatars. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The ID of the project. */ + id?: string; + /** @description The key of the project. */ + key?: string; + /** @description The name of the project. */ + name?: string; + /** @description The category the project belongs to. */ + projectCategory?: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ + id?: string; + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ + self?: string; + }; + /** + * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. + * @enum {string} + */ + projectTypeKey?: "software" | "service_desk" | "business"; + /** @description The URL of the project details. */ + self?: string; + /** @description Whether or not the project is simplified. */ + simplified?: boolean; + }; + /** + * @description The type of scope. + * @enum {string} + */ + type?: "PROJECT" | "TEMPLATE"; + [key: string]: unknown; + }; + /** @description The URL of the status. */ + self?: string; + /** @description The category assigned to the status. */ + statusCategory?: { + /** @description The name of the color used to represent the status category. */ + colorName?: string; + /** + * Format: int64 + * @description The ID of the status category. + */ + id?: number; + /** @description The key of the status category. */ + key?: string; + /** @description The name of the status category. */ + name?: string; + /** @description The URL of the status category. */ + self?: string; + [key: string]: unknown; + }; + [key: string]: unknown; + }; + StringList: Record; + SubqueryBean: { + query?: string; + }; + /** @description A project category. */ + UpdatedProjectCategory: { + /** @description The name of the project category. */ + description?: string; + /** @description The ID of the project category. */ + id?: string; + /** @description The description of the project category. */ + name?: string; + /** @description The URL of the project category. */ + self?: string; + }; + UserBean: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. + */ + key?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. + */ + name?: string; + /** + * Format: uri + * @description The URL of the user. + */ + self?: string; + }; + UserBeanAvatarUrls: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** + * @description User details permitted by the user's Atlassian Account privacy settings. However, be aware of these exceptions: + * + * * User record deleted from Atlassian: This occurs as the result of a right to be forgotten request. In this case, `displayName` provides an indication and other parameters have default values or are blank (for example, email is blank). + * * User record corrupted: This occurs as a results of events such as a server import and can only happen to deleted users. In this case, `accountId` returns *unknown* and all other parameters have fallback values. + * * User record unavailable: This usually occurs due to an internal service outage. In this case, all parameters have fallback values. + */ + UserDetails: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ + accountType?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the item's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the item's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the item's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the item's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ + displayName?: string; + /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ + emailAddress?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + key?: string; + /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ + name?: string; + /** @description The URL of the user. */ + self?: string; + /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ + timeZone?: string; + }; + }; responses: never; parameters: never; requestBodies: never; @@ -2940,6 +3470,7 @@ export type $defs = Record; export type external = Record; export interface operations { + /** * Move issues to backlog * @description Move issues to the backlog. @@ -2951,8 +3482,8 @@ export interface operations { /** * @example { * "issues": [ - * "PR-1",moveIssuesToBacklog * "10001", + * "PR-1", * "PR-3" * ] * } @@ -3000,19 +3531,19 @@ export interface operations { content: { /** * @example { - * "rankBeforeIssue": "PR-4", - * "rankCustomFieldId": 10521, * "issues": [ * "PR-1", * "10001", * "PR-3" - * ] + * ], + * "rankBeforeIssue": "PR-4", + * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; - rankBeforeIssue?: string; rankAfterIssue?: string; + rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; @@ -3078,6 +3609,8 @@ export interface operations { orderBy?: "name" | "-name" | "+name"; /** @description List of fields to expand for each board. Valid values: admins, permissions. */ expand?: string; + /** @description Filters results to boards that are relevant to a project types. Support Jira Software, Jira Service Management. Valid values: software, service\_desk. By default software. */ + projectTypeLocation?: string[]; /** @description Filters results to boards that are relevant to a filter. Not supported for next-gen boards. */ filterId?: number; }; @@ -3087,103 +3620,103 @@ export interface operations { 200: { content: { "application/json": { + isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; - isLast?: boolean; values?: { - /** - * Format: int64 - * @description The ID of the board. - */ - id?: number; - /** - * Format: uri - * @description The URL of the board. - */ - self?: string; - /** @description The name of the board. */ - name?: string; - /** @description The type the board. */ - type?: string; - admins?: { - users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + admins?: { + groups?: { + name?: string; + /** Format: uri */ + self?: string; + }[]; + users?: { + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. + */ + key?: string; + /** + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. + */ + name?: string; + /** + * Format: uri + * @description The URL of the user. + */ + self?: string; + }[]; + }; + /** @description Whether the board can be edited. */ + canEdit?: boolean; + /** @description Whether the board is selected as a favorite. */ + favourite?: boolean; + /** + * Format: int64 + * @description The ID of the board. + */ + id?: number; + /** @description Whether the board is private. */ + isPrivate?: boolean; + /** @description The container that the board is located in. */ + location?: { + /** Format: uri */ + avatarURI?: string; displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; - /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. - */ - "32x32"?: string; - /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. - */ - "48x48"?: string; - /** - * Format: uri - * @description The URL of the user's 16x16 pixel avatar. - */ - "16x16"?: string; - }; - }[]; - groups?: { name?: string; - /** Format: uri */ - self?: string; - }[]; - }; - /** @description The container that the board is located in. */ - location?: { - /** Format: int64 */ - projectId?: number; - /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; - projectKey?: string; - projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; + /** Format: int64 */ + projectId?: number; + projectKey?: string; + projectName?: string; + projectTypeKey?: string; + userAccountId?: string; + /** Format: int64 */ + userId?: number; + }; + /** @description The name of the board. */ name?: string; - }; - /** @description Whether the board can be edited. */ - canEdit?: boolean; - /** @description Whether the board is private. */ - isPrivate?: boolean; - /** @description Whether the board is selected as a favorite. */ - favourite?: boolean; - }[]; + /** + * Format: uri + * @description The URL of the board. + */ + self?: string; + /** @description The type the board. */ + type?: string; + }[]; }; }; }; @@ -3222,25 +3755,25 @@ export interface operations { /** * @example { * "filterId": 10040, - * "name": "scrum board", * "location": { * "projectKeyOrId": "10000", * "type": "project" * }, + * "name": "scrum board", * "type": "scrum" * } */ "application/json": { - name?: string; - /** @enum {string} */ - type?: "kanban" | "scrum" | "agility"; /** Format: int64 */ filterId?: number; location?: { + projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; - projectKeyOrId?: string; }; + name?: string; + /** @enum {string} */ + type?: "kanban" | "scrum" | "agility"; }; }; }; @@ -3249,94 +3782,94 @@ export interface operations { 201: { content: { "application/json": { - /** - * Format: int64 - * @description The ID of the board. - */ - id?: number; - /** - * Format: uri - * @description The URL of the board. - */ - self?: string; - /** @description The name of the board. */ - name?: string; - /** @description The type the board. */ - type?: string; admins?: { + groups?: { + name?: string; + /** Format: uri */ + self?: string; + }[]; users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. */ - "32x32"?: string; + key?: string; /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. */ - "48x48"?: string; + name?: string; /** * Format: uri - * @description The URL of the user's 16x16 pixel avatar. + * @description The URL of the user. */ - "16x16"?: string; - }; - }[]; - groups?: { - name?: string; - /** Format: uri */ - self?: string; - }[]; + self?: string; + }[]; }; + /** @description Whether the board can be edited. */ + canEdit?: boolean; + /** @description Whether the board is selected as a favorite. */ + favourite?: boolean; + /** + * Format: int64 + * @description The ID of the board. + */ + id?: number; + /** @description Whether the board is private. */ + isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { + /** Format: uri */ + avatarURI?: string; + displayName?: string; + name?: string; /** Format: int64 */ projectId?: number; - /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; projectKey?: string; + projectName?: string; projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; - name?: string; + userAccountId?: string; + /** Format: int64 */ + userId?: number; }; - /** @description Whether the board can be edited. */ - canEdit?: boolean; - /** @description Whether the board is private. */ - isPrivate?: boolean; - /** @description Whether the board is selected as a favorite. */ - favourite?: boolean; + /** @description The name of the board. */ + name?: string; + /** + * Format: uri + * @description The URL of the board. + */ + self?: string; + /** @description The type the board. */ + type?: string; }; }; }; @@ -3376,20 +3909,20 @@ export interface operations { 200: { content: { "application/json": { + isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; - isLast?: boolean; values?: { - /** Format: int64 */ - id?: number; - /** Format: uri */ - self?: string; - name?: string; - }[]; + /** Format: int64 */ + id?: number; + name?: string; + /** Format: uri */ + self?: string; + }[]; }; }; }; @@ -3419,94 +3952,94 @@ export interface operations { 200: { content: { "application/json": { - /** - * Format: int64 - * @description The ID of the board. - */ - id?: number; - /** - * Format: uri - * @description The URL of the board. - */ - self?: string; - /** @description The name of the board. */ - name?: string; - /** @description The type the board. */ - type?: string; admins?: { + groups?: { + name?: string; + /** Format: uri */ + self?: string; + }[]; users?: { - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The key of the user. - */ - key?: string; - /** - * Format: uri - * @description The URL of the user. - */ - self?: string; - /** - * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. - * The username of the user. - */ - name?: string; - /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ - displayName?: string; - /** @description Whether the user is active. */ - active?: boolean; - /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ - accountId?: string; - /** @description The avatars of the user. */ - avatarUrls?: { - /** - * Format: uri - * @description The URL of the user's 24x24 pixel avatar. - */ - "24x24"?: string; + /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ + accountId?: string; + /** @description Whether the user is active. */ + active?: boolean; + /** @description The avatars of the user. */ + avatarUrls?: { + /** + * Format: uri + * @description The URL of the user's 16x16 pixel avatar. + */ + "16x16"?: string; + /** + * Format: uri + * @description The URL of the user's 24x24 pixel avatar. + */ + "24x24"?: string; + /** + * Format: uri + * @description The URL of the user's 32x32 pixel avatar. + */ + "32x32"?: string; + /** + * Format: uri + * @description The URL of the user's 48x48 pixel avatar. + */ + "48x48"?: string; + }; + /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ + displayName?: string; /** - * Format: uri - * @description The URL of the user's 32x32 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The key of the user. */ - "32x32"?: string; + key?: string; /** - * Format: uri - * @description The URL of the user's 48x48 pixel avatar. + * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. + * The username of the user. */ - "48x48"?: string; + name?: string; /** * Format: uri - * @description The URL of the user's 16x16 pixel avatar. + * @description The URL of the user. */ - "16x16"?: string; - }; - }[]; - groups?: { - name?: string; - /** Format: uri */ - self?: string; - }[]; + self?: string; + }[]; }; + /** @description Whether the board can be edited. */ + canEdit?: boolean; + /** @description Whether the board is selected as a favorite. */ + favourite?: boolean; + /** + * Format: int64 + * @description The ID of the board. + */ + id?: number; + /** @description Whether the board is private. */ + isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { + /** Format: uri */ + avatarURI?: string; + displayName?: string; + name?: string; /** Format: int64 */ projectId?: number; - /** Format: int64 */ - userId?: number; - userAccountId?: string; - displayName?: string; - projectName?: string; projectKey?: string; + projectName?: string; projectTypeKey?: string; - /** Format: uri */ - avatarURI?: string; - name?: string; + userAccountId?: string; + /** Format: int64 */ + userId?: number; }; - /** @description Whether the board can be edited. */ - canEdit?: boolean; - /** @description Whether the board is private. */ - isPrivate?: boolean; - /** @description Whether the board is selected as a favorite. */ - favourite?: boolean; + /** @description The name of the board. */ + name?: string; + /** + * Format: uri + * @description The URL of the board. + */ + self?: string; + /** @description The type the board. */ + type?: string; }; }; }; @@ -3632,51 +4165,51 @@ export interface operations { 200: { content: { "application/json": { - /** Format: int64 */ - id?: number; - name?: string; - type?: string; - /** Format: uri */ - self?: string; - location?: { - /** @enum {string} */ - type?: "project" | "user"; - projectKeyOrId?: string; - }; - filter?: { - id?: string; - /** Format: uri */ - self?: string; - }; - subQuery?: { - query?: string; - }; columnConfig?: { columns?: { - name?: string; - statuses?: { - id?: string; - /** Format: uri */ - self?: string; + /** Format: int32 */ + max?: number; + /** Format: int32 */ + min?: number; + name?: string; + statuses?: { + id?: string; + /** Format: uri */ + self?: string; + }[]; }[]; - /** Format: int32 */ - min?: number; - /** Format: int32 */ - max?: number; - }[]; constraintType?: string; }; estimation?: { - type?: string; field?: { - fieldId?: string; displayName?: string; + fieldId?: string; }; + type?: string; + }; + filter?: { + id?: string; + /** Format: uri */ + self?: string; + }; + /** Format: int64 */ + id?: number; + location?: { + projectKeyOrId?: string; + /** @enum {string} */ + type?: "project" | "user"; }; + name?: string; ranking?: { /** Format: int64 */ rankCustomFieldId?: number; }; + /** Format: uri */ + self?: string; + subQuery?: { + query?: string; + }; + type?: string; }; }; }; @@ -3855,43 +4388,30 @@ export interface operations { 200: { content: { "application/json": { - features?: { - /** @enum {string} */ - boardFeature?: - | "SIMPLE_ROADMAP" - | "BACKLOG" - | "SPRINTS" - | "DEVTOOLS" - | "REPORTS" - | "ESTIMATION" - | "PAGES" - | "CODE" - | "RELEASES" - | "DEPLOYMENTS" - | "ISSUE_NAVIGATOR" - | "ON_CALL_SCHEDULE" - | "BOARD"; - /** Format: int64 */ - boardId?: number; - /** @enum {string} */ - state?: "ENABLED" | "DISABLED" | "COMING_SOON"; - localisedName?: string; - localisedDescription?: string; - learnMoreLink?: string; - imageUri?: string; - /** @enum {string} */ - featureType?: "BASIC" | "ESTIMATION"; - localisedGroup?: string; - permissibleEstimationTypes?: { + features?: ({ /** @enum {string} */ - value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; - localisedName?: string; + boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; + /** Format: int64 */ + boardId?: number; + featureId?: string; + /** @enum {string} */ + featureType?: "BASIC" | "ESTIMATION"; + imageUri?: string; + learnMoreArticleId?: string; + learnMoreLink?: string; localisedDescription?: string; - }[]; - featureId?: string; - learnMoreArticleId?: string; - toggleLocked?: boolean; - }[]; + localisedGroup?: string; + localisedName?: string; + permissibleEstimationTypes?: ({ + localisedDescription?: string; + localisedName?: string; + /** @enum {string} */ + value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; + })[]; + /** @enum {string} */ + state?: "ENABLED" | "DISABLED" | "COMING_SOON"; + toggleLocked?: boolean; + })[]; }; }; }; @@ -3909,8 +4429,8 @@ export interface operations { "application/json": { /** Format: int64 */ boardId?: number; - feature?: string; enabling?: boolean; + feature?: string; }; }; }; @@ -3919,43 +4439,30 @@ export interface operations { 200: { content: { "application/json": { - features?: { - /** @enum {string} */ - boardFeature?: - | "SIMPLE_ROADMAP" - | "BACKLOG" - | "SPRINTS" - | "DEVTOOLS" - | "REPORTS" - | "ESTIMATION" - | "PAGES" - | "CODE" - | "RELEASES" - | "DEPLOYMENTS" - | "ISSUE_NAVIGATOR" - | "ON_CALL_SCHEDULE" - | "BOARD"; - /** Format: int64 */ - boardId?: number; - /** @enum {string} */ - state?: "ENABLED" | "DISABLED" | "COMING_SOON"; - localisedName?: string; - localisedDescription?: string; - learnMoreLink?: string; - imageUri?: string; - /** @enum {string} */ - featureType?: "BASIC" | "ESTIMATION"; - localisedGroup?: string; - permissibleEstimationTypes?: { + features?: ({ /** @enum {string} */ - value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; - localisedName?: string; + boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; + /** Format: int64 */ + boardId?: number; + featureId?: string; + /** @enum {string} */ + featureType?: "BASIC" | "ESTIMATION"; + imageUri?: string; + learnMoreArticleId?: string; + learnMoreLink?: string; localisedDescription?: string; - }[]; - featureId?: string; - learnMoreArticleId?: string; - toggleLocked?: boolean; - }[]; + localisedGroup?: string; + localisedName?: string; + permissibleEstimationTypes?: ({ + localisedDescription?: string; + localisedName?: string; + /** @enum {string} */ + value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; + })[]; + /** @enum {string} */ + state?: "ENABLED" | "DISABLED" | "COMING_SOON"; + toggleLocked?: boolean; + })[]; }; }; }; @@ -4029,19 +4536,19 @@ export interface operations { content: { /** * @example { - * "rankBeforeIssue": "PR-4", - * "rankCustomFieldId": 10521, * "issues": [ * "PR-1", * "10001", * "PR-3" - * ] + * ], + * "rankBeforeIssue": "PR-4", + * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; - rankBeforeIssue?: string; rankAfterIssue?: string; + rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; @@ -4057,13 +4564,13 @@ export interface operations { content: { "application/json": { entries?: { - /** Format: int64 */ - issueId?: number; - issueKey?: string; - /** Format: int32 */ - status?: number; - errors?: string[]; - }[]; + errors?: string[]; + /** Format: int64 */ + issueId?: number; + issueKey?: string; + /** Format: int32 */ + status?: number; + }[]; }; }; }; @@ -4248,14 +4755,24 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ + requestBody: { + content: { + "application/json": unknown; + }; + }; responses: { /** @description Returned if the board property is successfully updated. */ 200: { - content: never; + content: { + "application/json": unknown; + }; }; /** @description Returned if the board property is successfully created. */ 201: { - content: never; + content: { + "application/json": unknown; + }; }; /** @description Returned if the boardId is invalid (negative or not a number). */ 400: { @@ -4325,24 +4842,24 @@ export interface operations { 200: { content: { "application/json": { + isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; - isLast?: boolean; values?: { - /** Format: int64 */ - id?: number; - /** Format: int64 */ - boardId?: number; - name?: string; - jql?: string; - description?: string; - /** Format: int32 */ - position?: number; - }[]; + /** Format: int64 */ + boardId?: number; + description?: string; + /** Format: int64 */ + id?: number; + jql?: string; + name?: string; + /** Format: int32 */ + position?: number; + }[]; }; }; }; @@ -4381,13 +4898,13 @@ export interface operations { 200: { content: { "application/json": { - /** Format: int64 */ - id?: number; /** Format: int64 */ boardId?: number; - name?: string; - jql?: string; description?: string; + /** Format: int64 */ + id?: number; + jql?: string; + name?: string; /** Format: int32 */ position?: number; }; @@ -4620,8 +5137,8 @@ export interface operations { /** * @example { * "issues": [ - * "PR-1", * "10001", + * "PR-1", * "PR-3" * ] * } @@ -4701,36 +5218,22 @@ export interface operations { content: { /** * @example { - * "summary": "epic 2 summary", * "color": { * "key": "color_6" * }, + * "done": true, * "name": "epic 2", - * "done": true + * "summary": "epic 2 summary" * } */ "application/json": { - name?: string; - summary?: string; color?: { /** @enum {string} */ - key?: - | "color_1" - | "color_2" - | "color_3" - | "color_4" - | "color_5" - | "color_6" - | "color_7" - | "color_8" - | "color_9" - | "color_10" - | "color_11" - | "color_12" - | "color_13" - | "color_14"; + key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; }; done?: boolean; + name?: string; + summary?: string; }; }; }; @@ -4828,8 +5331,8 @@ export interface operations { /** * @example { * "issues": [ - * "PR-1", * "10001", + * "PR-1", * "PR-3" * ] * } @@ -4887,8 +5390,8 @@ export interface operations { * } */ "application/json": { - rankBeforeEpic?: string; rankAfterEpic?: string; + rankBeforeEpic?: string; /** Format: int64 */ rankCustomFieldId?: number; }; @@ -4931,19 +5434,19 @@ export interface operations { content: { /** * @example { - * "rankBeforeIssue": "PR-4", - * "rankCustomFieldId": 10521, * "issues": [ * "PR-1", * "10001", * "PR-3" - * ] + * ], + * "rankBeforeIssue": "PR-4", + * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; - rankBeforeIssue?: string; rankAfterIssue?: string; + rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; @@ -5153,20 +5656,20 @@ export interface operations { content: { /** * @example { - * "originBoardId": 5, - * "goal": "sprint 1 goal", * "endDate": "2015-04-20T01:22:00.000+10:00", + * "goal": "sprint 1 goal", * "name": "sprint 1", + * "originBoardId": 5, * "startDate": "2015-04-11T15:22:00.000+10:00" * } */ "application/json": { - name?: string; - startDate?: string; endDate?: string; + goal?: string; + name?: string; /** Format: int64 */ originBoardId?: number; - goal?: string; + startDate?: string; }; }; }; @@ -5233,7 +5736,7 @@ export interface operations { * * Notes: * - * * Sprints that are in a closed state cannot be updated. + * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. @@ -5250,28 +5753,28 @@ export interface operations { content: { /** * @example { - * "goal": "sprint 1 goal", + * "completeDate": "2015-04-20T11:11:28.008+10:00", * "endDate": "2015-04-16T14:01:00.000+10:00", + * "goal": "sprint 1 goal", * "name": "sprint 1", - * "state": "closed", * "startDate": "2015-04-11T15:36:00.000+10:00", - * "completeDate": "2015-04-20T11:11:28.008+10:00" + * "state": "closed" * } */ "application/json": { + completeDate?: string; + createdDate?: string; + endDate?: string; + goal?: string; /** Format: int64 */ id?: number; - /** Format: uri */ - self?: string; - state?: string; name?: string; - startDate?: string; - endDate?: string; - completeDate?: string; - createdDate?: string; /** Format: int64 */ originBoardId?: number; - goal?: string; + /** Format: uri */ + self?: string; + startDate?: string; + state?: string; }; }; }; @@ -5306,7 +5809,7 @@ export interface operations { * * Notes: * - * * Sprints that are in a closed state cannot be updated. + * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. @@ -5327,19 +5830,19 @@ export interface operations { * } */ "application/json": { + completeDate?: string; + createdDate?: string; + endDate?: string; + goal?: string; /** Format: int64 */ id?: number; - /** Format: uri */ - self?: string; - state?: string; name?: string; - startDate?: string; - endDate?: string; - completeDate?: string; - createdDate?: string; /** Format: int64 */ originBoardId?: number; - goal?: string; + /** Format: uri */ + self?: string; + startDate?: string; + state?: string; }; }; }; @@ -5462,19 +5965,19 @@ export interface operations { content: { /** * @example { - * "rankBeforeIssue": "PR-4", - * "rankCustomFieldId": 10521, * "issues": [ * "PR-1", * "10001", * "PR-3" - * ] + * ], + * "rankBeforeIssue": "PR-4", + * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; - rankBeforeIssue?: string; rankAfterIssue?: string; + rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; @@ -5592,14 +6095,24 @@ export interface operations { propertyKey: string; }; }; + /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ + requestBody: { + content: { + "application/json": unknown; + }; + }; responses: { /** @description Returned if the sprint property is successfully updated. */ 200: { - content: never; + content: { + "application/json": unknown; + }; }; /** @description Returned if the sprint property is successfully created. */ 201: { - content: never; + content: { + "application/json": unknown; + }; }; /** @description Returned if the sprintId is invalid (negative or not a number). */ 400: { @@ -5714,1387 +6227,3696 @@ export interface operations { content: { "application/json": { /** @description List of repositories containing development information. Must not contain duplicates. Maximum number of entities across all repositories is 1000. */ - repositories: { - /** - * @description The name of this repository. Max length is 255 characters. - * @example atlassian-connect-jira-example - */ - name: string; - /** - * @description Description of this repository. Max length is 1024 characters. - * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. - */ - description?: string; - /** - * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. - * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 - */ - forkOf?: string; - /** - * Format: url - * @description The URL of this repository. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example - */ - url: string; - /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ - commits?: { - /** - * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - id: string; + repositories: ({ /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] + * @description The name of this repository. Max length is 255 characters. + * @example atlassian-connect-jira-example */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** @description Deprecated. Use the id field instead. */ - hash?: string; - /** - * @description The set of flags for this commit - * @example [MERGE_COMMIT] - */ - flags?: "MERGE_COMMIT"[]; - /** - * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. - * @example README.md edited online with Bitbucket - */ - message: string; + name: string; /** - * Author - * @description Describes the author of a particular entity + * @description Description of this repository. Max length is 1024 characters. + * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. */ - author: { - /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com - */ - email?: string; - /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe - */ - username?: string; - /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe - */ - url?: string; - /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 - */ - avatar?: string; - }; + description?: string; /** - * Format: int32 - * @description The total number of files added, removed, or modified by this commit - * @example 1 + * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. + * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 */ - fileCount: number; + forkOf?: string; /** * Format: url - * @description The URL of this commit. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 + * @description The URL of this repository. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example */ url: string; - /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ - files?: { - /** - * @description The path of the file. Max length is 1024 characters. - * @example /home/user/src/atlassian-connect-jira-example/README.md - */ - path: string; - /** - * Format: url - * @description The URL of this file. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md - */ - url: string; - /** - * @description The operation performed on this file - * @example MODIFIED - * @enum {string} - */ - changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; - /** - * Format: int32 - * @description Number of lines added to the file - * @example 0 - */ - linesAdded: number; - /** - * Format: int32 - * @description Number of lines removed from the file - * @example 1 - */ - linesRemoved: number; - }[]; - /** - * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 - */ - authorTimestamp: string; - /** - * @description Shortened identifier for this commit, used for display. Max length is 255 characters. - * @example a7727ee - */ - displayId: string; - }[]; - /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ - branches?: { - /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** - * @description The name of the branch. Max length is 512 characters. - * @example master - */ - name: string; - /** - * Commit - * @description Represents a commit in the version control system. - */ - lastCommit: { - /** - * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** @description Deprecated. Use the id field instead. */ - hash?: string; - /** - * @description The set of flags for this commit - * @example [MERGE_COMMIT] - */ - flags?: "MERGE_COMMIT"[]; - /** - * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. - * @example README.md edited online with Bitbucket - */ - message: string; - /** - * Author - * @description Describes the author of a particular entity - */ - author: { + /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ + commits?: ({ /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe + * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example a7727ee6350c33cdf90826dc21abaa26a5704370 */ - name?: string; + id: string; /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] */ - email?: string; + issueKeys: string[]; /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 */ - username?: string; + updateSequenceId: number; + /** @description Deprecated. Use the id field instead. */ + hash?: string; /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe + * @description The set of flags for this commit + * @example [MERGE_COMMIT] */ - url?: string; + flags?: "MERGE_COMMIT"[]; /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 + * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. + * @example README.md edited online with Bitbucket */ - avatar?: string; - }; - /** - * Format: int32 - * @description The total number of files added, removed, or modified by this commit - * @example 1 - */ - fileCount: number; - /** - * Format: url - * @description The URL of this commit. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - url: string; - /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ - files?: { + message: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; /** - * @description The path of the file. Max length is 1024 characters. - * @example /home/user/src/atlassian-connect-jira-example/README.md + * Format: int32 + * @description The total number of files added, removed, or modified by this commit + * @example 1 */ - path: string; + fileCount: number; /** * Format: url - * @description The URL of this file. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md + * @description The URL of this commit. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 */ url: string; + /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ + files?: ({ + /** + * @description The path of the file. Max length is 1024 characters. + * @example /home/user/src/atlassian-connect-jira-example/README.md + */ + path: string; + /** + * Format: url + * @description The URL of this file. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md + */ + url: string; + /** + * @description The operation performed on this file + * @example MODIFIED + * @enum {string} + */ + changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; + /** + * Format: int32 + * @description Number of lines added to the file + * @example 0 + */ + linesAdded: number; + /** + * Format: int32 + * @description Number of lines removed from the file + * @example 1 + */ + linesRemoved: number; + })[]; /** - * @description The operation performed on this file - * @example MODIFIED - * @enum {string} + * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 */ - changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; + authorTimestamp: string; /** - * Format: int32 - * @description Number of lines added to the file - * @example 0 + * @description Shortened identifier for this commit, used for display. Max length is 255 characters. + * @example a7727ee */ - linesAdded: number; + displayId: string; + })[]; + /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ + branches?: ({ /** - * Format: int32 - * @description Number of lines removed from the file - * @example 1 + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ - linesRemoved: number; - }[]; - /** - * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 - */ - authorTimestamp: string; - /** - * @description Shortened identifier for this commit, used for display. Max length is 255 characters. - * @example a7727ee - */ - displayId: string; - }; - /** - * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new - */ - createPullRequestUrl?: string; - /** - * @description The URL of the branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master - */ - url: string; - }[]; - /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ - pullRequests?: { - /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** - * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, DRAFT, UNKNOWN - * @example OPEN - * @enum {string} - */ - status: "OPEN" | "MERGED" | "DECLINED" | "DRAFT" | "UNKNOWN"; - /** - * @description Title of the pull request. Max length is 1024 characters. - * @example Pull request 2, fixing all the issues caused by pull request #1 - */ - title: string; - /** - * Author - * @description Describes the author of a particular entity - */ - author: { - /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** + * @description The name of the branch. Max length is 512 characters. + * @example master + */ + name: string; + /** + * Commit + * @description Represents a commit in the version control system. + */ + lastCommit: { + /** + * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** @description Deprecated. Use the id field instead. */ + hash?: string; + /** + * @description The set of flags for this commit + * @example [MERGE_COMMIT] + */ + flags?: "MERGE_COMMIT"[]; + /** + * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. + * @example README.md edited online with Bitbucket + */ + message: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; + /** + * Format: int32 + * @description The total number of files added, removed, or modified by this commit + * @example 1 + */ + fileCount: number; + /** + * Format: url + * @description The URL of this commit. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + url: string; + /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ + files?: ({ + /** + * @description The path of the file. Max length is 1024 characters. + * @example /home/user/src/atlassian-connect-jira-example/README.md + */ + path: string; + /** + * Format: url + * @description The URL of this file. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md + */ + url: string; + /** + * @description The operation performed on this file + * @example MODIFIED + * @enum {string} + */ + changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; + /** + * Format: int32 + * @description Number of lines added to the file + * @example 0 + */ + linesAdded: number; + /** + * Format: int32 + * @description Number of lines removed from the file + * @example 1 + */ + linesRemoved: number; + })[]; + /** + * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 + */ + authorTimestamp: string; + /** + * @description Shortened identifier for this commit, used for display. Max length is 255 characters. + * @example a7727ee + */ + displayId: string; + }; + /** + * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new + */ + createPullRequestUrl?: string; + /** + * @description The URL of the branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master + */ + url: string; + })[]; + /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ + pullRequests?: ({ + /** + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** + * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, UNKNOWN + * @example OPEN + * @enum {string} + */ + status: "OPEN" | "MERGED" | "DECLINED" | "UNKNOWN"; + /** + * @description Title of the pull request. Max length is 1024 characters. + * @example Pull request 2, fixing all the issues caused by pull request #1 + */ + title: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; + /** + * Format: int32 + * @description The number of comments on the pull request + * @example 42 + */ + commentCount: number; + /** + * @description The name of the source branch of this PR. Max length is 255 characters. + * @example ISSUE-1-feature-branch + */ + sourceBranch: string; + /** + * Format: url + * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch + */ + sourceBranchUrl?: string; + /** + * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 + */ + lastUpdate: string; + /** + * @description The name of destination branch of this PR. Max length is 255 characters. + * @example master + */ + destinationBranch?: string; + /** + * Format: url + * @description The url of the destination branch of this PR. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master + */ + destinationBranchUrl?: string; + /** @description The list of reviewers of this pull request */ + reviewers?: ({ + /** + * @description Deprecated. The name of this reviewer. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The approval status of this reviewer, default is UNAPPROVED. + * @example APPROVED + * @enum {string} + */ + approvalStatus?: "APPROVED" | "UNAPPROVED"; + /** + * Format: url + * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * Format: url + * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + /** + * @description The email address of this reviewer. Max length is 254 characters. + * @example jane_doe@example.com + */ + email?: string; + /** + * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. + * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 + */ + accountId?: string; + })[]; + /** + * Format: url + * @description The URL of this pull request. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 + */ + url: string; + /** + * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. + * @example Pull request 2 + */ + displayId: string; + })[]; + /** + * Format: url + * @description The URL of the avatar for this repository. Max length is 2000 characters. + * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 + */ + avatar?: string; + /** + * @description Description of the avatar for this repository. Max length is 1024 characters. + * @example Avatar description + */ + avatarDescription?: string; + /** + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + })[]; + /** @description Flag to prevent automatic issue transitions and smart commits being fired, default is false. */ + preventTransitions?: boolean; + /** + * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during normal operation (e.g. a user pushing a branch). "BACKFILL" - Data received while backfilling existing data (e.g. indexing a newly connected account). Default is "NORMAL". Please note that "BACKFILL" operations have a much higher rate-limiting threshold but are also processed slower in comparison to "NORMAL" operations. + * @example NORMAL + * @enum {string} + */ + operationType?: "NORMAL" | "BACKFILL"; + /** @description Arbitrary properties to tag the submitted repositories with. These properties can be used for delete operations to e.g. clean up all development information associated with an account in the event that the account is removed from the provider system. Note that these properties will never be returned with repository or entity data. They are not intended for use as metadata to associate with a repository. Maximum length of each key or value is 255 characters. Maximum allowed number of properties key/value pairs is 5. Properties keys cannot start with '_' character. Properties keys cannot contain ':' character. */ + properties?: { + [key: string]: string; + }; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is not considered private information. Hence, it may not contain personally identifiable information. + */ + providerMetadata?: { + /** + * @description An optional name of the source of the development information data. + * @example Bitbucket Server 6.7.2 + */ + product?: string; + }; + }; + }; + }; + responses: { + /** @description Submission accepted. Each submitted repository and entity that is of a valid format will be eventually available in Jira. */ + 202: { + content: { + "application/json": { + /** @description The IDs of devinfo entities that have been accepted for submission grouped by their repository IDs. Note that a devinfo entity that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. */ + acceptedDevinfoEntities?: { + [key: string]: { + /** @description Commits IDs */ + commits?: string[]; + /** @description Branch IDs */ + branches?: string[]; + /** @description Pull request IDs */ + pullRequests?: string[]; + }; + }; + /** @description IDs of devinfo entities that have not been accepted for submission and caused error descriptions, usually due to a problem with the request data. The entities (if present) will be grouped by their repository id and type. Entity IDs are listed with errors associated with that devinfo entity that have prevented it being submitted. */ + failedDevinfoEntities?: { + [key: string]: { + /** @description Repository errors */ + errorMessages?: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + /** @description Commits errors */ + commits?: { + /** @description Entity id */ + id: string; + /** @description Error message */ + errorMessages?: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }[]; + /** @description Branches errors */ + branches?: { + /** @description Entity id */ + id: string; + /** @description Error message */ + errorMessages?: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }[]; + /** @description Pull requests errors */ + pullRequests?: { + /** @description Entity id */ + id: string; + /** @description Error message */ + errorMessages?: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }[]; + }; + }; + /** @description Issue keys that are not known on this Jira instance (if any). These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. If a devinfo entity has been associated with issue keys other than those in this array it will still be stored against those valid keys. */ + unknownIssueKeys?: string[]; + }; + }; + }; + /** @description Request has incorrect format. It will fail in the following cases: If no repositories or development information entities were provided, or more than 5 properties were submitted, or there are one or more properties with leading underscore '_' symbol in their keys. */ + 400: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'WRITE' scope */ + 403: { + content: never; + }; + /** @description Data is too large. Submit fewer devinfo entities in each payload. */ + 413: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description API rate limit has been exceeded. */ + 429: { + headers: { + /** @description The number of remaining possible requests in current rate limit window. */ + "X-RateLimit-Remaining"?: number; + /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ + "X-RateLimit-Reset"?: string; + /** @description The maximum possible requests in a window of one minute. */ + "X-RateLimit-Limit"?: number; + /** @description The number of seconds to wait before making a follow-up request. */ + "Retry-After"?: number; + }; + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Get repository + * @description For the specified repository ID, retrieves the repository and the most recent 400 development information entities. The result will be what is currently stored, ignoring any pending updates or deletes. + */ + getRepository: { + parameters: { + header: { + /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + Authorization: string; + }; + path: { + /** @description The ID of repository to fetch */ + repositoryId: string; + }; + }; + responses: { + /** @description The repository data currently stored for the given ID. */ + 200: { + content: { + "application/json": { + /** + * @description The name of this repository. Max length is 255 characters. + * @example atlassian-connect-jira-example + */ + name: string; + /** + * @description Description of this repository. Max length is 1024 characters. + * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. + */ + description?: string; + /** + * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. + * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 + */ + forkOf?: string; + /** + * Format: url + * @description The URL of this repository. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example + */ + url: string; + /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ + commits?: ({ + /** + * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** @description Deprecated. Use the id field instead. */ + hash?: string; + /** + * @description The set of flags for this commit + * @example [MERGE_COMMIT] + */ + flags?: "MERGE_COMMIT"[]; + /** + * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. + * @example README.md edited online with Bitbucket + */ + message: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; + /** + * Format: int32 + * @description The total number of files added, removed, or modified by this commit + * @example 1 + */ + fileCount: number; + /** + * Format: url + * @description The URL of this commit. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + url: string; + /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ + files?: ({ + /** + * @description The path of the file. Max length is 1024 characters. + * @example /home/user/src/atlassian-connect-jira-example/README.md + */ + path: string; + /** + * Format: url + * @description The URL of this file. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md + */ + url: string; + /** + * @description The operation performed on this file + * @example MODIFIED + * @enum {string} + */ + changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; + /** + * Format: int32 + * @description Number of lines added to the file + * @example 0 + */ + linesAdded: number; + /** + * Format: int32 + * @description Number of lines removed from the file + * @example 1 + */ + linesRemoved: number; + })[]; + /** + * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 + */ + authorTimestamp: string; + /** + * @description Shortened identifier for this commit, used for display. Max length is 255 characters. + * @example a7727ee + */ + displayId: string; + })[]; + /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ + branches?: ({ + /** + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** + * @description The name of the branch. Max length is 512 characters. + * @example master + */ + name: string; + /** + * Commit + * @description Represents a commit in the version control system. + */ + lastCommit: { + /** + * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** @description Deprecated. Use the id field instead. */ + hash?: string; + /** + * @description The set of flags for this commit + * @example [MERGE_COMMIT] + */ + flags?: "MERGE_COMMIT"[]; + /** + * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. + * @example README.md edited online with Bitbucket + */ + message: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; + /** + * Format: int32 + * @description The total number of files added, removed, or modified by this commit + * @example 1 + */ + fileCount: number; + /** + * Format: url + * @description The URL of this commit. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 + */ + url: string; + /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ + files?: ({ + /** + * @description The path of the file. Max length is 1024 characters. + * @example /home/user/src/atlassian-connect-jira-example/README.md + */ + path: string; + /** + * Format: url + * @description The URL of this file. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md + */ + url: string; + /** + * @description The operation performed on this file + * @example MODIFIED + * @enum {string} + */ + changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; + /** + * Format: int32 + * @description Number of lines added to the file + * @example 0 + */ + linesAdded: number; + /** + * Format: int32 + * @description Number of lines removed from the file + * @example 1 + */ + linesRemoved: number; + })[]; + /** + * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 + */ + authorTimestamp: string; + /** + * @description Shortened identifier for this commit, used for display. Max length is 255 characters. + * @example a7727ee + */ + displayId: string; + }; + /** + * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new + */ + createPullRequestUrl?: string; + /** + * @description The URL of the branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master + */ + url: string; + })[]; + /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ + pullRequests?: ({ + /** + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + */ + id: string; + /** + * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. + * @example ["ISSUE-1","TEST-2"] + */ + issueKeys: string[]; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + /** + * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, UNKNOWN + * @example OPEN + * @enum {string} + */ + status: "OPEN" | "MERGED" | "DECLINED" | "UNKNOWN"; + /** + * @description Title of the pull request. Max length is 1024 characters. + * @example Pull request 2, fixing all the issues caused by pull request #1 + */ + title: string; + /** + * Author + * @description Describes the author of a particular entity + */ + author: { + /** + * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. + * @example jane_doe@atlassian.com + */ + email?: string; + /** + * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. + * @example jdoe + */ + username?: string; + /** + * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + }; + /** + * Format: int32 + * @description The number of comments on the pull request + * @example 42 + */ + commentCount: number; + /** + * @description The name of the source branch of this PR. Max length is 255 characters. + * @example ISSUE-1-feature-branch + */ + sourceBranch: string; + /** + * Format: url + * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch + */ + sourceBranchUrl?: string; + /** + * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. + * @example 2016-10-31T23:27:25+00:00 + */ + lastUpdate: string; + /** + * @description The name of destination branch of this PR. Max length is 255 characters. + * @example master + */ + destinationBranch?: string; + /** + * Format: url + * @description The url of the destination branch of this PR. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master + */ + destinationBranchUrl?: string; + /** @description The list of reviewers of this pull request */ + reviewers?: ({ + /** + * @description Deprecated. The name of this reviewer. Max length is 255 characters. + * @example Jane Doe + */ + name?: string; + /** + * @description The approval status of this reviewer, default is UNAPPROVED. + * @example APPROVED + * @enum {string} + */ + approvalStatus?: "APPROVED" | "UNAPPROVED"; + /** + * Format: url + * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe + */ + url?: string; + /** + * Format: url + * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. + * @example https://atlassian.com/account/jane_doe/avatar/32 + */ + avatar?: string; + /** + * @description The email address of this reviewer. Max length is 254 characters. + * @example jane_doe@example.com + */ + email?: string; + /** + * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. + * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 + */ + accountId?: string; + })[]; + /** + * Format: url + * @description The URL of this pull request. Max length is 2000 characters. + * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 + */ + url: string; + /** + * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. + * @example Pull request 2 + */ + displayId: string; + })[]; + /** + * Format: url + * @description The URL of the avatar for this repository. Max length is 2000 characters. + * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 + */ + avatar?: string; + /** + * @description Description of the avatar for this repository. Max length is 1024 characters. + * @example Avatar description + */ + avatarDescription?: string; + /** + * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. + * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * @example 1523494301248 + */ + updateSequenceId: number; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ + 403: { + content: never; + }; + /** @description No data found for the given repository ID. */ + 404: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Delete repository + * @description Deletes the repository data stored by the given ID and all related development information entities. Deletion is performed asynchronously. + */ + deleteRepository: { + parameters: { + query?: { + /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ + _updateSequenceId?: number; + }; + header: { + /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + Authorization: string; + }; + path: { + /** @description The ID of repository to delete */ + repositoryId: string; + }; + }; + responses: { + /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ + 202: { + content: never; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Delete development information by properties + * @description Deletes development information entities which have all the provided properties. Repositories which have properties that match ALL of the properties (i.e. treated as an AND), and all their related development information (such as commits, branches and pull requests), will be deleted. For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Optional param `_updateSequenceId` is no longer supported. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. + */ + deleteByProperties: { + parameters: { + query?: { + /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ + _updateSequenceId?: number; + }; + header: { + /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + Authorization: string; + }; + }; + responses: { + /** @description Delete accepted. Data will eventually be removed from Jira. */ + 202: { + content: never; + }; + /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. Deleting data for many property values, for the same property key, requires multiple requests to this resource. */ + 400: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Check if data exists for the supplied properties + * @description Checks if repositories which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. + */ + existsByProperties: { + parameters: { + query?: { + /** @description An optional property. Filters out entities and repositories which have updateSequenceId greater than specified. */ + _updateSequenceId?: number; + }; + header: { + /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + Authorization: string; + }; + }; + responses: { + /** @description Returns whether data exists for the specified properties. */ + 200: { + content: { + "application/json": { + /** @description Whether there is data matching the query */ + hasDataMatchingProperties?: boolean; + }; + }; + }; + /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. */ + 400: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Delete development information entity + * @description Deletes particular development information entity. Deletion is performed asynchronously. + */ + deleteEntity: { + parameters: { + query?: { + /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ + _updateSequenceId?: number; + }; + header: { + /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + Authorization: string; + }; + path: { + repositoryId: string; + entityType: "commit" | "branch" | "pull_request"; + entityId: string; + }; + }; + responses: { + /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ + 202: { + content: never; + }; + /** @description Wrong entity type specified */ + 400: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description An unknown error has occurred. */ + 500: { + content: { + "application/json": { + /** @description List of errors occurred. */ + errorMessages: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + }; + }; + /** + * Submit Feature Flag data + * @description Update / insert Feature Flag data. + * + * Feature Flags are identified by their ID, and existing Feature Flag data for the same ID will be replaced if it exists and the updateSequenceId of existing data is less than the incoming data. + * + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getFeatureFlagById operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple Feature Flags being submitted in one request, each is validated individually prior to submission. Details of which Feature Flags failed submission (if any) are available in the response object. + * + * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + submitFeatureFlags: { + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; + }; + /** @description Feature Flag data to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Properties + * @description Properties assigned to Feature Flag data that can then be used for delete / query operations. + * + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. + * + * Note that these properties will never be returned with Feature Flag data. They are not intended for use as metadata to associate with a Feature Flag. Internally they are stored as a hash so that personal information etc. is never stored within Jira. + * + * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not contain ':' or start with '_'. + * + * @example { + * "accountId": "account-234", + * "projectId": "project-123" + * } + */ + properties?: { + [key: string]: string; + }; + /** + * @description A list of Feature Flags to submit to Jira. + * + * Each Feature Flag may be associated with 1 or more Jira issue keys, and will be associated with any properties included in this request. + */ + flags: ({ + /** + * @description The FeatureFlagData schema version used for this flag data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion?: "1.0"; + /** + * @description The identifier for the Feature Flag. Must be unique for a given Provider. + * + * @example 111-222-333 + */ + id: string; + /** + * @description The identifier that users would use to reference the Feature Flag in their source code etc. + * + * Will be made available via the UI for users to copy into their source code etc. + * + * @example my-awesome-feature + */ + key: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). + * + * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceId: number; + /** + * @description The human-readable name for the Feature Flag. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example Enable awesome feature + */ + displayName?: string; + /** @description The Jira issue keys to associate the Feature Flag information with. */ + issueKeys: string[]; + /** + * FeatureFlagSummary + * @description Summary information for a single Feature Flag. + * + * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. + * + * This is the summary information that will be presented to the user on e.g. the Jira issue screen. + */ + summary: { + /** + * Format: uri + * @description A URL users can use to link to a summary view of this flag, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). + * + * @example https://example.com/project/feature-123/summary + */ + url?: string; + /** + * FeatureFlagStatus + * @description Status information about a single Feature Flag. + */ + status: { + /** + * @description Whether the Feature Flag is enabled in the given environment (or in summary). + * + * Enabled may imply a partial rollout, which can be described using the 'rollout' field. + */ + enabled: boolean; + /** + * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. + * + * This value may be presented to the user in the UI. + * + * @example Disabled + */ + defaultValue?: string; + /** + * FeatureFlagRollout + * @description Information about the rollout of a Feature Flag in an environment (or in summary). + * + * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. + * + * This information may be presented to the user in the UI. + * + * @example { + * "percentage": 80 + * } + */ + rollout?: { + /** @description If the Feature Flag rollout is a simple percentage rollout */ + percentage?: number; + /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ + text?: string; + /** @description A count of the number of rules active for this Feature Flag in an environment. */ + rules?: number; + }; + }; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. + * + * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + }; + /** + * @description Detail information for this Feature Flag. + * + * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. + */ + details: ({ + /** + * Format: uri + * @description A URL users can use to link to this Feature Flag, in this environment. + * + * @example https://example.com/project/feature-123/production + */ + url: string; + /** + * Format: date-time + * @description The last-updated timestamp for this Feature Flag, in this environment. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * EnvironmentDetails + * @description Details of a single environment. + * + * At the simplest this must be the name of the environment. + * + * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. + * + * @example { + * "name": "prod-us-west", + * "type": "production" + * } + */ + environment: { + /** @description The name of the environment. */ + name: string; + /** + * @description The 'type' or 'category' of environment this environment belongs to. + * @enum {string} + */ + type?: "development" | "testing" | "staging" | "production"; + }; + /** + * FeatureFlagStatus + * @description Status information about a single Feature Flag. + */ + status: { + /** + * @description Whether the Feature Flag is enabled in the given environment (or in summary). + * + * Enabled may imply a partial rollout, which can be described using the 'rollout' field. + */ + enabled: boolean; + /** + * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. + * + * This value may be presented to the user in the UI. + * + * @example Disabled + */ + defaultValue?: string; + /** + * FeatureFlagRollout + * @description Information about the rollout of a Feature Flag in an environment (or in summary). + * + * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. + * + * This information may be presented to the user in the UI. + * + * @example { + * "percentage": 80 + * } + */ + rollout?: { + /** @description If the Feature Flag rollout is a simple percentage rollout */ + percentage?: number; + /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ + text?: string; + /** @description A count of the number of rules active for this Feature Flag in an environment. */ + rules?: number; + }; + }; + })[]; + })[]; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, + * and other internal uses. It is not considered private information. Hence, it may not contain personally + * identifiable information. + */ + providerMetadata?: { + /** + * @description An optional name of the source of the feature flags. + * @example Atlassian Release Platform 2.1.0 + */ + product?: string; + }; + }; + }; + }; + responses: { + /** + * @description Submission accepted. Each submitted Feature Flag that is of a valid format will be eventually available in Jira. + * + * Details of which Feature Flags were submitted and which failed submission (due to data format problems etc.) are available in the response object. + */ + 202: { + content: { + "application/json": { + /** + * @description The IDs of Feature Flags that have been accepted for submission. + * + * A Feature Flag may be rejected if it was only associated with unknown issue keys. + * + * Note that a Feature Flag that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + acceptedFeatureFlags?: string[]; + /** + * @description Details of Feature Flags that have not been accepted for submission, usually due to a problem with the request data. + * + * The object (if present) will be keyed by Feature Flag ID and include any errors associated with that Feature Flag that have prevented it being submitted. + */ + failedFeatureFlags?: { + [key: string]: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + /** + * @description Issue keys that are not known on this Jira instance (if any). + * + * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. + * + * If a Feature Flag has been associated with issue keys other than those in this array it will still be stored against those valid keys. + * If a Feature Flag was only associated with issue keys deemed to be invalid it won't be persisted. + */ + unknownIssueKeys?: string[]; + }; + }; + }; + /** + * @description Request has incorrect format. + * + * Note that in the case of an individual Feature Flag having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Feature Flag will be contained in the response object. + */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * or the app does not define the 'WRITE' scope. + */ + 403: { + content: never; + }; + /** @description Data is too large. Submit fewer Feature Flags in each payload. */ + 413: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Delete Feature Flags by Property + * @description Bulk delete all Feature Flags that match the given request. + * + * One or more query params must be supplied to specify Properties to delete by. Optional param `_updateSequenceId` is no longer supported. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). + * See the documentation for the submitFeatureFlags operation for more details. + * + * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * + * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + deleteFeatureFlagsByProperty: { + parameters: { + query?: { + /** + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `_updateSequenceId` to use to control deletion. + * + * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * + * If not provided, all stored data that matches the request will be deleted. + */ + _updateSequenceId?: number; + }; + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; + }; + responses: { + /** @description Delete accepted. Data will eventually be removed from Jira. */ + 202: { + content: never; + }; + /** @description Request has incorrect format (e.g. missing at least one Property param). */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * or the app does not define the 'DELETE' scope. + */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Get a Feature Flag by ID + * @description Retrieve the currently stored Feature Flag data for the given ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + getFeatureFlagById: { + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; + path: { + /** @description The ID of the Feature Flag to fetch. */ + featureFlagId: string; + }; + }; + responses: { + /** @description The Feature Flag data currently stored for the given ID. */ + 200: { + content: { + "application/json": { + /** + * @description The FeatureFlagData schema version used for this flag data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion?: "1.0"; + /** + * @description The identifier for the Feature Flag. Must be unique for a given Provider. + * + * @example 111-222-333 + */ + id: string; + /** + * @description The identifier that users would use to reference the Feature Flag in their source code etc. + * + * Will be made available via the UI for users to copy into their source code etc. + * + * @example my-awesome-feature + */ + key: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). + * + * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceId: number; + /** + * @description The human-readable name for the Feature Flag. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example Enable awesome feature + */ + displayName?: string; + /** @description The Jira issue keys to associate the Feature Flag information with. */ + issueKeys: string[]; + /** + * FeatureFlagSummary + * @description Summary information for a single Feature Flag. + * + * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. + * + * This is the summary information that will be presented to the user on e.g. the Jira issue screen. + */ + summary: { + /** + * Format: uri + * @description A URL users can use to link to a summary view of this flag, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). + * + * @example https://example.com/project/feature-123/summary + */ + url?: string; + /** + * FeatureFlagStatus + * @description Status information about a single Feature Flag. + */ + status: { + /** + * @description Whether the Feature Flag is enabled in the given environment (or in summary). + * + * Enabled may imply a partial rollout, which can be described using the 'rollout' field. + */ + enabled: boolean; + /** + * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. + * + * This value may be presented to the user in the UI. + * + * @example Disabled + */ + defaultValue?: string; + /** + * FeatureFlagRollout + * @description Information about the rollout of a Feature Flag in an environment (or in summary). + * + * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. + * + * This information may be presented to the user in the UI. + * + * @example { + * "percentage": 80 + * } + */ + rollout?: { + /** @description If the Feature Flag rollout is a simple percentage rollout */ + percentage?: number; + /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ + text?: string; + /** @description A count of the number of rules active for this Feature Flag in an environment. */ + rules?: number; + }; + }; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. + * + * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + }; + /** + * @description Detail information for this Feature Flag. + * + * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. + */ + details: ({ + /** + * Format: uri + * @description A URL users can use to link to this Feature Flag, in this environment. + * + * @example https://example.com/project/feature-123/production + */ + url: string; + /** + * Format: date-time + * @description The last-updated timestamp for this Feature Flag, in this environment. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * EnvironmentDetails + * @description Details of a single environment. + * + * At the simplest this must be the name of the environment. + * + * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. + * + * @example { + * "name": "prod-us-west", + * "type": "production" + * } + */ + environment: { + /** @description The name of the environment. */ + name: string; + /** + * @description The 'type' or 'category' of environment this environment belongs to. + * @enum {string} + */ + type?: "development" | "testing" | "staging" | "production"; + }; + /** + * FeatureFlagStatus + * @description Status information about a single Feature Flag. + */ + status: { + /** + * @description Whether the Feature Flag is enabled in the given environment (or in summary). + * + * Enabled may imply a partial rollout, which can be described using the 'rollout' field. + */ + enabled: boolean; + /** + * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. + * + * This value may be presented to the user in the UI. + * + * @example Disabled + */ + defaultValue?: string; + /** + * FeatureFlagRollout + * @description Information about the rollout of a Feature Flag in an environment (or in summary). + * + * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. + * + * This information may be presented to the user in the UI. + * + * @example { + * "percentage": 80 + * } + */ + rollout?: { + /** @description If the Feature Flag rollout is a simple percentage rollout */ + percentage?: number; + /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ + text?: string; + /** @description A count of the number of rules active for this Feature Flag in an environment. */ + rules?: number; + }; + }; + })[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * or the app does not define the 'READ' scope. + */ + 403: { + content: never; + }; + /** @description No data found for the given Feature Flag ID. */ + 404: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Delete a Feature Flag by ID + * @description Delete the Feature Flag data currently stored for the given ID. + * + * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + deleteFeatureFlagById: { + parameters: { + query?: { + /** + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `_updateSequenceId` to use to control deletion. + * + * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + */ + _updateSequenceId?: number; + }; + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; + path: { + /** @description The ID of the Feature Flag to delete. */ + featureFlagId: string; + }; + }; + responses: { + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + 202: { + content: never; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * or the app does not define the 'DELETE' scope. + */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Submit deployment data + * @description Update / insert deployment data. + * + * Deployments are identified by the combination of `pipelineId`, `environmentId` and `deploymentSequenceNumber`, and existing deployment data for the same deployment will be replaced if it exists and the `updateSequenceNumber` of existing data is less than the incoming data. + * + * Submissions are processed asynchronously. Submitted data will eventually be available in Jira. Most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The `getDeploymentByKey` operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple deployments being submitted in one request, each is validated individually prior to submission. Details of which deployments failed submission (if any) are available in the response object. + * + * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + submitDeployments: { + parameters: { + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + }; + /** @description Deployment data to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Properties + * @description Properties assigned to deployment data that can then be used for delete / query operations. + * + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. + * + * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. + * + * @example { + * "accountId": "account-234", + * "projectId": "project-123" + * } + */ + properties?: { + [key: string]: string; + }; + /** + * @description A list of deployments to submit to Jira. + * + * Each deployment may be associated with one or more Jira issue keys, and will be associated with any properties included in this request. + */ + deployments: ({ + /** + * Format: int64 + * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. + * + * @example 100 + */ + deploymentSequenceNumber: number; + /** + * Format: int64 + * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. + * + * @example 1 + */ + updateSequenceNumber: number; + /** + * @deprecated + * @description Deprecated. The Jira issue keys to associate the Deployment information with. + * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. + */ + issueKeys?: string[]; + /** + * @description The entities to associate the Deployment information with. + * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. + */ + associations?: (OneOf<[{ + /** + * @description Defines the asssociation type. + * + * @example issueIdOrKeys + * @enum {string} + */ + associationType: "issueKeys" | "issueIdOrKeys"; + /** + * @description The Jira issue keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + }, { + /** + * @description Defines the asssociation type. + * + * @example serviceIdOrKeys + * @enum {string} + */ + associationType: "serviceIdOrKeys"; + /** + * @description The service id or keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + }]>)[]; + /** + * @description The human-readable name for the deployment. Will be shown in the UI. + * + * @example Deployment number 16 of Data Depot + */ + displayName: string; + /** + * Format: uri + * @description A URL users can use to link to this deployment, in this environment. + * + * @example http://mydeployer.com/project1/1111-222-333/prod-east + */ + url: string; + /** + * @description A short description of the deployment + * + * @example The bits are being transferred + */ + description: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. + * + * @example Release 2018-01-20_08-47-bc2421a + */ + label?: string; + /** + * Format: int64 + * @description The duration of the deployment (in seconds). + * + * @example 47 + */ + duration?: number; + /** + * @description The state of the deployment + * + * @example in_progress + * @enum {string} + */ + state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; + /** + * Pipeline + * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) + * + * for getting software from version control right through to the production environment. + */ + pipeline: { + /** + * @description The identifier of this pipeline, must be unique for the provider. + * + * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c + */ + id: string; + /** + * @description The name of the pipeline to present to the user. + * + * @example Data Depot Deployment + */ + displayName: string; + /** + * Format: uri + * @description A URL users can use to link to this deployment pipeline. + * + * @example http://mydeployer.com/project1 + */ + url: string; + }; + /** + * Environment + * @description The environment that the deployment is present in. + */ + environment: { + /** + * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. + * + * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + */ + id: string; + /** + * @description The name of the environment to present to the user. + * + * @example US East + */ + displayName: string; + /** + * @description The type of the environment. + * + * @example production + * @enum {string} + */ + type: "unmapped" | "development" | "testing" | "staging" | "production"; + }; + /** + * Commands + * @description A list of commands to be actioned for this Deployment + */ + commands?: { + /** + * @description The command name. + * + * @example initiate_deployment_gating + */ + command?: string; + }[]; + /** + * @description The DeploymentData schema version used for this deployment data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion?: "1.0"; + })[]; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, + * and other internal uses. It is not considered private information. Hence, it may not contain personally + * identifiable information. + */ + providerMetadata?: { + /** + * @description An optional name of the source of the deployments data. + * @example Bamboo 6.10.2 + */ + product?: string; + }; + }; + }; + }; + responses: { + /** + * @description Submission accepted. Each submitted deployment that is of a valid format will eventually be available in Jira. + * + * Details of which deployments were submitted and which failed submission (due to data format problems etc.) are available in the response object. + */ + 202: { + content: { + "application/json": { + /** + * @description The keys of deployments that have been accepted for submission. A deployment key is a composite key that consists of `pipelineId`, `environmentId` and `deploymentSequenceNumber`. + * + * A deployment may be rejected if it was only associated with unknown issue keys. + * + * Note that a deployment that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. + */ + acceptedDeployments?: { + /** + * @description The identifier of a pipeline, must be unique for the provider. + * + * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c + */ + pipelineId: string; + /** + * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. + * + * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + */ + environmentId: string; + /** + * Format: int64 + * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. + * + * @example 100 + */ + deploymentSequenceNumber: number; + }[]; + /** + * @description Details of deployments that have not been accepted for submission, usually due to a problem with the request data. + * + * The object will contain the deployment key and any errors associated with that deployment that have prevented it being submitted. + */ + rejectedDeployments?: { + /** + * DeploymentKey + * @description Fields that uniquely reference a deployment. + */ + key: { + /** + * @description The identifier of a pipeline, must be unique for the provider. + * + * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c + */ + pipelineId: string; + /** + * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. + * + * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + */ + environmentId: string; + /** + * Format: int64 + * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. + * + * @example 100 + */ + deploymentSequenceNumber: number; + }; + /** @description The error messages for the rejected deployment */ + errors: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }[]; + /** + * @description Issue keys that are not known on this Jira instance (if any). + * + * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. + * + * If a deployment has been associated with issue keys other than those in this array it will still be stored against those valid keys. + * If a deployment was only associated with issue keys deemed to be invalid it won't be persisted. + */ + unknownIssueKeys?: string[]; + /** + * @description Associations (e.g. Issue Keys or Service IDs) that are not known on this Jira instance (if any). + * + * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. + * + * If a deployment has been associated with any other association other than those in this array it will still be stored against those valid associations. + * If a deployment was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. + */ + unknownAssociations?: (({ + /** + * @description Defines the asssociation type. + * + * @example issueIdOrKeys + * @enum {string} + */ + associationType: "issueKeys" | "issueIdOrKeys"; + /** + * @description The Jira issue keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + }) | { + /** + * @description Defines the asssociation type. + * + * @example serviceIdOrKeys + * @enum {string} + */ + associationType: "serviceIdOrKeys"; + /** + * @description The service id or keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + } | ({ + /** + * @description Defines the association type. Currently supported entities can be found in this field's value enums list. + * + * @enum {string} + */ + associationType: "commit" | "repository"; + /** + * @description The entity keys that represent the entities to be associated. + * The number of values counted across all associationTypes (issueKeys, issueIdOrKeys, serviceIdOrKeys, supported ATIs and entity associations) must not exceed a limit of 500. + */ + values: ({ + /** + * @description The hash for the Commit. + * + * @example b00152456cf4 + */ + commitHash: string; + /** + * @description The ID of the Repository that the Commit belongs to. + * + * @example de7fbebffabe + */ + repositoryId: string; + } | { + /** @example de7fbebffaba */ + repositoryId: string; + })[]; + }))[]; + }; + }; + }; + /** + * @description Request has incorrect format. + * + * Note that in the case of an individual deployment having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid deployment will be contained in the response object. + */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, + * or the app does not define the 'WRITE' scope. + */ + 403: { + content: never; + }; + /** @description Data is too large. Submit fewer deployments in each payload. */ + 413: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Delete deployments by Property + * @description Bulk delete all deployments that match the given request. + * + * One or more query params must be supplied to specify the Properties to delete by. Optional param `_updateSequenceNumber` is no longer supported. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (i.e. treated as AND). + * See the documentation for the `submitDeployments` operation for more details. + * + * Example operation: DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * + * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + deleteDeploymentsByProperty: { + parameters: { + query?: { + /** + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `updateSequenceNumber` to use to control deletion. + * + * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * + * If not provided, all stored data that matches the request will be deleted. + */ + _updateSequenceNumber?: number; + }; + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + }; + responses: { + /** @description Delete accepted. Data will eventually be removed from Jira. */ + 202: { + content: never; + }; + /** @description Request has incorrect format (e.g. missing at least one Property param). */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, + * or the app does not define the 'DELETE' scope for Connect apps. + */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Get a deployment by key + * @description Retrieve the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + getDeploymentByKey: { + parameters: { + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + path: { + /** @description The ID of the deployment's pipeline. */ + pipelineId: string; + /** @description The ID of the deployment's environment. */ + environmentId: string; + /** @description The deployment's deploymentSequenceNumber. */ + deploymentSequenceNumber: number; + }; + }; + responses: { + /** @description The deployment data currently stored for the given ID. */ + 200: { + content: { + "application/json": { + /** + * Format: int64 + * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. + * + * @example 100 + */ + deploymentSequenceNumber: number; + /** + * Format: int64 + * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. + * + * @example 1 + */ + updateSequenceNumber: number; + /** + * @deprecated + * @description Deprecated. The Jira issue keys to associate the Deployment information with. + * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. + */ + issueKeys?: string[]; + /** + * @description The entities to associate the Deployment information with. + * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. + */ + associations?: (OneOf<[{ /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com + * @description Defines the asssociation type. + * + * @example issueIdOrKeys + * @enum {string} */ - email?: string; + associationType: "issueKeys" | "issueIdOrKeys"; /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe + * @description The Jira issue keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ - username?: string; + values: string[]; + }, { /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe + * @description Defines the asssociation type. + * + * @example serviceIdOrKeys + * @enum {string} */ - url?: string; + associationType: "serviceIdOrKeys"; /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 + * @description The service id or keys to associate the Deployment information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ - avatar?: string; - }; + values: string[]; + }]>)[]; + /** + * @description The human-readable name for the deployment. Will be shown in the UI. + * + * @example Deployment number 16 of Data Depot + */ + displayName: string; + /** + * Format: uri + * @description A URL users can use to link to this deployment, in this environment. + * + * @example http://mydeployer.com/project1/1111-222-333/prod-east + */ + url: string; + /** + * @description A short description of the deployment + * + * @example The bits are being transferred + */ + description: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. + * + * @example Release 2018-01-20_08-47-bc2421a + */ + label?: string; + /** + * Format: int64 + * @description The duration of the deployment (in seconds). + * + * @example 47 + */ + duration?: number; + /** + * @description The state of the deployment + * + * @example in_progress + * @enum {string} + */ + state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; + /** + * Pipeline + * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) + * + * for getting software from version control right through to the production environment. + */ + pipeline: { /** - * Format: int32 - * @description The number of comments on the pull request - * @example 42 + * @description The identifier of this pipeline, must be unique for the provider. + * + * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ - commentCount: number; + id: string; /** - * @description The name of the source branch of this PR. Max length is 255 characters. - * @example ISSUE-1-feature-branch + * @description The name of the pipeline to present to the user. + * + * @example Data Depot Deployment */ - sourceBranch: string; + displayName: string; /** - * Format: url - * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch + * Format: uri + * @description A URL users can use to link to this deployment pipeline. + * + * @example http://mydeployer.com/project1 */ - sourceBranchUrl?: string; + url: string; + }; + /** + * Environment + * @description The environment that the deployment is present in. + */ + environment: { /** - * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 + * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. + * + * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ - lastUpdate: string; + id: string; /** - * @description The name of destination branch of this PR. Max length is 255 characters. - * @example master + * @description The name of the environment to present to the user. + * + * @example US East */ - destinationBranch?: string; + displayName: string; /** - * Format: url - * @description The url of the destination branch of this PR. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master + * @description The type of the environment. + * + * @example production + * @enum {string} */ - destinationBranchUrl?: string; - /** @description The list of reviewers of this pull request */ - reviewers?: { - /** - * @description Deprecated. The name of this reviewer. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The approval status of this reviewer, default is UNAPPROVED. - * @example APPROVED - * @enum {string} - */ - approvalStatus?: "APPROVED" | "NEEDSWORK" | "UNAPPROVED"; - /** - * Format: url - * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe - */ - url?: string; - /** - * Format: url - * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 - */ - avatar?: string; - /** - * @description The email address of this reviewer. Max length is 254 characters. - * @example jane_doe@example.com - */ - email?: string; + type: "unmapped" | "development" | "testing" | "staging" | "production"; + }; + /** + * Commands + * @description A list of commands to be actioned for this Deployment + */ + commands?: { /** - * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. - * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 + * @description The command name. + * + * @example initiate_deployment_gating */ - accountId?: string; + command?: string; }[]; - /** - * Format: url - * @description The URL of this pull request. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 - */ - url: string; - /** - * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. - * @example Pull request 2 - */ - displayId: string; - /** - * Format: int32 - * @description The number of tasks on the pull request - * @example 42 - */ - taskCount?: number; - }[]; - /** - * Format: url - * @description The URL of the avatar for this repository. Max length is 2000 characters. - * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 - */ - avatar?: string; - /** - * @description Description of the avatar for this repository. Max length is 1024 characters. - * @example Avatar description - */ - avatarDescription?: string; - /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 - */ - id: string; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - }[]; - /** @description Flag to prevent automatic issue transitions and smart commits being fired, default is false. */ - preventTransitions?: boolean; - /** - * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during normal operation (e.g. a user pushing a branch). "BACKFILL" - Data received while backfilling existing data (e.g. indexing a newly connected account). Default is "NORMAL". Please note that "BACKFILL" operations have a much higher rate-limiting threshold but are also processed slower in comparison to "NORMAL" operations. - * @example NORMAL - * @enum {string} - */ - operationType?: "NORMAL" | "BACKFILL"; - /** @description Arbitrary properties to tag the submitted repositories with. These properties can be used for delete operations to e.g. clean up all development information associated with an account in the event that the account is removed from the provider system. Note that these properties will never be returned with repository or entity data. They are not intended for use as metadata to associate with a repository. Maximum length of each key or value is 255 characters. Maximum allowed number of properties key/value pairs is 5. Properties keys cannot start with '_' character. Properties keys cannot contain ':' character. */ - properties?: { - [key: string]: string; - }; - /** - * ProviderMetadata - * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is not considered private information. Hence, it may not contain personally identifiable information. - */ - providerMetadata?: { /** - * @description An optional name of the source of the development information data. - * @example Bitbucket Server 6.7.2 + * @description The DeploymentData schema version used for this deployment data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} */ - product?: string; + schemaVersion?: "1.0"; }; }; }; - }; - responses: { - /** @description Submission accepted. Each submitted repository and entity that is of a valid format will be eventually available in Jira. */ - 202: { + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, + * + * or the app does not define the 'READ' scope. + */ + 403: { + content: never; + }; + /** @description No data found for the given deployment ID. */ + 404: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { content: { "application/json": { - /** @description The IDs of devinfo entities that have been accepted for submission grouped by their repository IDs. Note that a devinfo entity that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. */ - acceptedDevinfoEntities?: { - [key: string]: { - /** @description Commits IDs */ - commits?: string[]; - /** @description Branch IDs */ - branches?: string[]; - /** @description Pull request IDs */ - pullRequests?: string[]; - }; - }; - /** @description IDs of devinfo entities that have not been accepted for submission and caused error descriptions, usually due to a problem with the request data. The entities (if present) will be grouped by their repository id and type. Entity IDs are listed with errors associated with that devinfo entity that have prevented it being submitted. */ - failedDevinfoEntities?: { - [key: string]: { - /** @description Repository errors */ - errorMessages?: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - /** @description Commits errors */ - commits?: { - /** @description Entity id */ - id: string; - /** @description Error message */ - errorMessages?: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }[]; - /** @description Branches errors */ - branches?: { - /** @description Entity id */ - id: string; - /** @description Error message */ - errorMessages?: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }[]; - /** @description Pull requests errors */ - pullRequests?: { - /** @description Entity id */ - id: string; - /** @description Error message */ - errorMessages?: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }[]; - }; - }; - /** @description Issue keys that are not known on this Jira instance (if any). These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. If a devinfo entity has been associated with issue keys other than those in this array it will still be stored against those valid keys. */ - unknownIssueKeys?: string[]; - }; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; - /** @description Request has incorrect format. It will fail in the following cases: If no repositories or development information entities were provided, or more than 5 properties were submitted, or there are one or more properties with leading underscore '_' symbol in their keys. */ - 400: { - content: { - "application/json": { - /** @description List of errors occurred. */ - errorMessages: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; + }; + }; + /** + * Delete a deployment by key + * @description Delete the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. + * + * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. + */ + deleteDeploymentByKey: { + parameters: { + query?: { + /** + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `_updateSequenceNumber` to use to control deletion. + * + * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + */ + _updateSequenceNumber?: number; + }; + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + path: { + /** @description The ID of the deployment's pipeline. */ + pipelineId: string; + /** @description The ID of the deployment's environment. */ + environmentId: string; + /** @description The deployment's deploymentSequenceNumber. */ + deploymentSequenceNumber: number; + }; + }; + responses: { + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + 202: { + content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'WRITE' scope */ + /** + * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, + * or the app does not define the 'DELETE' scope. + */ 403: { content: never; }; - /** @description Data is too large. Submit fewer devinfo entities in each payload. */ - 413: { - content: { - "application/json": { - /** @description List of errors occurred. */ - errorMessages: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; - }; /** @description API rate limit has been exceeded. */ 429: { - headers: { - /** @description The number of remaining possible requests in current rate limit window. */ - "X-RateLimit-Remaining"?: number; - /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ - "X-RateLimit-Reset"?: string; - /** @description The maximum possible requests in a window of one minute. */ - "X-RateLimit-Limit"?: number; - /** @description The number of seconds to wait before making a follow-up request. */ - "Retry-After"?: number; - }; + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { content: never; }; /** @description An unknown error has occurred. */ - 500: { + default: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; }; }; /** - * Get repository - * @description For the specified repository ID, retrieves the repository and the most recent 400 development information entities. The result will be what is currently stored, ignoring any pending updates or deletes. + * Get deployment gating status by key + * @description Retrieve the Deployment gating status for the given `pipelineId + environmentId + deploymentSequenceNumber` combination. + * Only apps that define the `jiraDeploymentInfoProvider` module can access this resource. This resource requires the 'READ' scope. */ - getRepository: { + getDeploymentGatingStatusByKey: { parameters: { - header: { - /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ - Authorization: string; - }; path: { - /** @description The ID of repository to fetch */ - repositoryId: string; - }; - }; - responses: { - /** @description The repository data currently stored for the given ID. */ - 200: { - content: { - "application/json": { - /** - * @description The name of this repository. Max length is 255 characters. - * @example atlassian-connect-jira-example - */ - name: string; - /** - * @description Description of this repository. Max length is 1024 characters. - * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. - */ - description?: string; - /** - * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. - * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 - */ - forkOf?: string; - /** - * Format: url - * @description The URL of this repository. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example - */ - url: string; - /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ - commits?: { - /** - * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** @description Deprecated. Use the id field instead. */ - hash?: string; - /** - * @description The set of flags for this commit - * @example [MERGE_COMMIT] - */ - flags?: "MERGE_COMMIT"[]; - /** - * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. - * @example README.md edited online with Bitbucket - */ - message: string; - /** - * Author - * @description Describes the author of a particular entity - */ - author: { - /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com - */ - email?: string; - /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe - */ - username?: string; - /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe - */ - url?: string; - /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 - */ - avatar?: string; - }; - /** - * Format: int32 - * @description The total number of files added, removed, or modified by this commit - * @example 1 - */ - fileCount: number; - /** - * Format: url - * @description The URL of this commit. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - url: string; - /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ - files?: { - /** - * @description The path of the file. Max length is 1024 characters. - * @example /home/user/src/atlassian-connect-jira-example/README.md - */ - path: string; - /** - * Format: url - * @description The URL of this file. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md - */ - url: string; - /** - * @description The operation performed on this file - * @example MODIFIED - * @enum {string} - */ - changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; - /** - * Format: int32 - * @description Number of lines added to the file - * @example 0 - */ - linesAdded: number; - /** - * Format: int32 - * @description Number of lines removed from the file - * @example 1 - */ - linesRemoved: number; - }[]; - /** - * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 - */ - authorTimestamp: string; - /** - * @description Shortened identifier for this commit, used for display. Max length is 255 characters. - * @example a7727ee - */ - displayId: string; - }[]; - /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ - branches?: { - /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** - * @description The name of the branch. Max length is 512 characters. - * @example master - */ - name: string; - /** - * Commit - * @description Represents a commit in the version control system. - */ - lastCommit: { - /** - * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example a7727ee6350c33cdf90826dc21abaa26a5704370 - */ - id: string; - /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] - */ - issueKeys: string[]; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** @description Deprecated. Use the id field instead. */ - hash?: string; - /** - * @description The set of flags for this commit - * @example [MERGE_COMMIT] - */ - flags?: "MERGE_COMMIT"[]; - /** - * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. - * @example README.md edited online with Bitbucket - */ - message: string; - /** - * Author - * @description Describes the author of a particular entity - */ - author: { - /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com - */ - email?: string; - /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe - */ - username?: string; - /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe - */ - url?: string; - /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 - */ - avatar?: string; - }; - /** - * Format: int32 - * @description The total number of files added, removed, or modified by this commit - * @example 1 - */ - fileCount: number; + /** @description The ID of the Deployment's pipeline. */ + pipelineId: string; + /** @description The ID of the Deployment's environment. */ + environmentId: string; + /** @description The Deployment's deploymentSequenceNumber. */ + deploymentSequenceNumber: number; + }; + }; + responses: { + /** @description The current gating status for the given Deployment */ + 200: { + content: { + "application/json": { + /** + * Format: int64 + * @description This is the identifier for the Deployment. + * + * @example 100 + */ + deploymentSequenceNumber?: number; + /** + * @description The ID of the Deployment's pipeline. + * + * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c + */ + pipelineId?: string; + /** + * @description The ID of the Deployment's environment. + * + * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + */ + environmentId?: string; + /** + * Format: date-time + * @description Time the deployment gating status was updated. + * + * @example 2020-08-25T06:04:50.239Z + */ + updatedTimestamp?: string; + /** + * @description The gating status + * + * @example allowed + * @enum {string} + */ + gatingStatus?: "allowed" | "prevented" | "awaiting" | "invalid"; + details?: { /** - * Format: url - * @description The URL of this commit. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 + * @description The type of the gating status details. + * + * @example issue + * @enum {string} */ - url: string; - /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ - files?: { - /** - * @description The path of the file. Max length is 1024 characters. - * @example /home/user/src/atlassian-connect-jira-example/README.md - */ - path: string; - /** - * Format: url - * @description The URL of this file. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md - */ - url: string; - /** - * @description The operation performed on this file - * @example MODIFIED - * @enum {string} - */ - changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; - /** - * Format: int32 - * @description Number of lines added to the file - * @example 0 - */ - linesAdded: number; - /** - * Format: int32 - * @description Number of lines removed from the file - * @example 1 - */ - linesRemoved: number; - }[]; + type: "issue"; /** - * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 + * IssueKey + * @description An issue key that references an issue in Jira. + * + * @example ABC-123 */ - authorTimestamp: string; + issueKey: string; /** - * @description Shortened identifier for this commit, used for display. Max length is 255 characters. - * @example a7727ee + * Format: uri + * @description A full HTTPS link to the Jira issue for the change request gating this Deployment. This field is provided if the details type is issue. + * + * @example https://your-domain.atlassian.net/servicedesk/customer/portal/1/ZAINA-123 */ - displayId: string; - }; - /** - * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new - */ - createPullRequestUrl?: string; - /** - * @description The URL of the branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master - */ - url: string; + issueLink: string; + }[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, */ + 403: { + content: never; + }; + /** @description No data found for the given deployment ID. */ + 404: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; }[]; - /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ - pullRequests?: { + }; + }; + }; + }; + /** + * Submit build data + * @description Update / insert builds data. + * + * Builds are identified by the combination of `pipelineId` and `buildNumber`, and existing build data for the same + * build will be replaced if it exists and the `updateSequenceNumber` of the existing data is less than the + * incoming data. + * + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are + * available within a short period of time, but may take some time during peak load and/or maintenance times. + * The `getBuildByKey` operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple builds being submitted in one request, each is validated individually prior to + * submission. Details of which build failed submission (if any) are available in the response object. + * + * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + submitBuilds: { + parameters: { + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + }; + /** @description Builds data to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Properties + * @description Properties assigned to build data that can then be used for delete / query operations. + * + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from + * the Provider system. + * + * Note that these properties will never be returned with build data. They are not intended for use as + * metadata to associate with a build. Internally they are stored as a hash so that personal information etc. + * is never stored within Jira. + * + * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not + * contain ':' or start with '_'. + * + * @example { + * "accountId": "account-234", + * "projectId": "project-123" + * } + */ + properties?: { + [key: string]: string; + }; + /** + * @description A list of builds to submit to Jira. + * + * Each build may be associated with one or more Jira issue keys, and will be associated with any properties + * included in this request. + */ + builds: ({ /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 + * @description The schema version used for this data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} */ - id: string; + schemaVersion?: "1.0"; /** - * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. - * @example ["ISSUE-1","TEST-2"] + * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, + * plan key etc. - whatever logical unit you use to group a sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * + * @example my-build-plan */ - issueKeys: string[]; + pipelineId: string; /** * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 - */ - updateSequenceId: number; - /** - * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, DRAFT, UNKNOWN - * @example OPEN - * @enum {string} + * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. + * + * Used to identify the 'most recent' build in that sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * + * @example 16 */ - status: "OPEN" | "MERGED" | "DECLINED" | "DRAFT" | "UNKNOWN"; + buildNumber: number; /** - * @description Title of the pull request. Max length is 1024 characters. - * @example Pull request 2, fixing all the issues caused by pull request #1 + * Format: int64 + * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, + * in the case of out-of-order receipt of update requests. + * + * It must be a monotonically increasing number. For example, epoch time could be one way to generate the + * `updateSequenceNumber`. + * + * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently + * stored will be ignored. + * + * @example 1523494301448 */ - title: string; + updateSequenceNumber: number; /** - * Author - * @description Describes the author of a particular entity + * @description The human-readable name for the build. + * + * Will be shown in the UI. + * + * @example My Project build #16 */ - author: { - /** - * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com - */ - email?: string; - /** - * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. - * @example jdoe - */ - username?: string; - /** - * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe - */ - url?: string; - /** - * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 - */ - avatar?: string; - }; + displayName: string; /** - * Format: int32 - * @description The number of comments on the pull request - * @example 42 + * @description An optional description to attach to this build. + * + * This may be anything that makes sense in your system. + * + * @example My Project build #16: Failed */ - commentCount: number; + description?: string; + /** @description A human-readable string that to provide information about the build. */ + label?: string; /** - * @description The name of the source branch of this PR. Max length is 255 characters. - * @example ISSUE-1-feature-branch + * Format: URL + * @description The URL to this build in your system. */ - sourceBranch: string; + url: string; /** - * Format: url - * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch + * BuildState + * @description The state of a build. + * + * * `pending` - The build is queued, or some manual action is required. + * * `in_progress` - The build is currently running. + * * `successful` - The build completed successfully. + * * `failed` - The build failed. + * * `cancelled` - The build has been cancelled or stopped. + * * `unknown` - The build is in an unknown state. + * + * @example failed + * @enum {string} */ - sourceBranchUrl?: string; + state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; /** - * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. - * @example 2016-10-31T23:27:25+00:00 + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the build. + * + * @example 2018-01-20T23:27:25.000Z */ - lastUpdate: string; + lastUpdated: string; /** - * @description The name of destination branch of this PR. Max length is 255 characters. - * @example master + * @description The Jira issue keys to associate the build information with. + * + * You are free to associate issue keys in any way you like. However, we recommend that you use the name + * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has + * the advantage that it provides an intuitive association of builds to issue keys. */ - destinationBranch?: string; + issueKeys: string[]; /** - * Format: url - * @description The url of the destination branch of this PR. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master + * TestInfo + * @description Information about tests that were executed during a build. */ - destinationBranchUrl?: string; - /** @description The list of reviewers of this pull request */ - reviewers?: { - /** - * @description Deprecated. The name of this reviewer. Max length is 255 characters. - * @example Jane Doe - */ - name?: string; - /** - * @description The approval status of this reviewer, default is UNAPPROVED. - * @example APPROVED - * @enum {string} - */ - approvalStatus?: "APPROVED" | "NEEDSWORK" | "UNAPPROVED"; + testInfo?: { /** - * Format: url - * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe + * Format: int64 + * @description The total number of tests considered during a build. + * + * @example 150 */ - url?: string; + totalNumber: number; /** - * Format: url - * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. - * @example https://atlassian.com/account/jane_doe/avatar/32 + * Format: int64 + * @description The number of tests that passed during a build. + * + * @example 145 */ - avatar?: string; + numberPassed: number; /** - * @description The email address of this reviewer. Max length is 254 characters. - * @example jane_doe@example.com + * Format: int64 + * @description The number of tests that failed during a build. + * + * @example 5 */ - email?: string; + numberFailed: number; /** - * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. - * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 + * Format: int64 + * @description The number of tests that were skipped during a build. + * + * @default 0 + * @example 0 */ - accountId?: string; - }[]; - /** - * Format: url - * @description The URL of this pull request. Max length is 2000 characters. - * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 - */ - url: string; - /** - * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. - * @example Pull request 2 - */ - displayId: string; - /** - * Format: int32 - * @description The number of tasks on the pull request - * @example 42 - */ - taskCount?: number; - }[]; - /** - * Format: url - * @description The URL of the avatar for this repository. Max length is 2000 characters. - * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 - */ - avatar?: string; - /** - * @description Description of the avatar for this repository. Max length is 1024 characters. - * @example Avatar description - */ - avatarDescription?: string; - /** - * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. - * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 - */ - id: string; + numberSkipped?: number; + }; + /** @description Optional information that links a build to a commit, branch etc. */ + references?: { + /** + * BuildCommitReference + * @description Details about the commit the build was run against. + */ + commit?: { + /** + * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. + * + * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f + */ + id: string; + /** + * @description An identifier for the repository containing the commit. + * + * In most cases this should be the URL of the repository in the SCM provider. + * + * For cases where the build was executed against a local repository etc. this should be some identifier that is + * unique to that repository. + * + * @example https://bitbucket.org/atlassian/biij-vendor-api + */ + repositoryUri: string; + }; + /** + * BuildRefReference + * @description Details about the ref the build was run on. + */ + ref?: { + /** + * @description The name of the ref the build ran on + * + * @example feature/ISSUE-123-some-work + */ + name: string; + /** + * @description An identifer for the ref. + * + * In most cases this should be the URL of the tag/branch etc. in the SCM provider. + * + * For cases where the build was executed against a local repository etc. this should be something that uniquely + * identifies the ref. + * + * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work + */ + uri: string; + }; + }[]; + })[]; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, + * and other internal uses. It is not considered private information. Hence, it may not contain personally + * identifiable information. + */ + providerMetadata?: { /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * @example 1523494301248 + * @description An optional name of the source of the builds data. + * @example Bamboo 6.10.2 */ - updateSequenceId: number; - }; - }; - }; - /** @description Missing a JWT token, or token is invalid. */ - 401: { - content: never; - }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ - 403: { - content: never; - }; - /** @description No data found for the given repository ID. */ - 404: { - content: never; - }; - /** @description API rate limit has been exceeded. */ - 429: { - content: never; - }; - /** @description An unknown error has occurred. */ - 500: { - content: { - "application/json": { - /** @description List of errors occurred. */ - errorMessages: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + product?: string; }; }; }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; - }; - }; - /** - * Delete repository - * @description Deletes the repository data stored by the given ID and all related development information entities. Deletion is performed asynchronously. - */ - deleteRepository: { - parameters: { - query?: { - /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ - _updateSequenceId?: number; - }; - header: { - /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ - Authorization: string; - }; - path: { - /** @description The ID of repository to delete */ - repositoryId: string; - }; }; responses: { - /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ + /** + * @description Submission accepted. Each submitted build that is of a valid format will be eventually available in Jira. + * + * Details of which builds were submitted and which failed submission (due to data format problems etc.) + * are available in the response object. + */ 202: { - content: never; - }; - /** @description Missing a JWT token, or token is invalid. */ - 401: { - content: never; - }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ - 403: { - content: never; - }; - /** @description API rate limit has been exceeded. */ - 429: { - content: never; - }; - /** @description An unknown error has occurred. */ - 500: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** + * @description The keys of builds that have been accepted for submission. A build key is a composite key that consists of + * `pipelineId` and `buildNumber`. + * + * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for that + * build does not match the required schema. + * + * Note that a build that isn't updated due to it's `updateSequenceNumber` being out of order is not + * considered a failed submission. + */ + acceptedBuilds?: { + /** + * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, + * plan key etc. - whatever logical unit you use to group a sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * + * @example my-build-plan + */ + pipelineId: string; + /** + * Format: int64 + * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. + * + * Used to identify the 'most recent' build in that sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * + * @example 16 + */ + buildNumber: number; + }[]; + /** + * @description Details of builds that have not been accepted for submission. + * + * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for the + * build does not match the required schema. + */ + rejectedBuilds?: { + /** + * BuildKey + * @description Fields that uniquely reference a build. + */ + key: { + /** + * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, + * plan key etc. - whatever logical unit you use to group a sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * + * @example my-build-plan + */ + pipelineId: string; + /** + * Format: int64 + * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. + * + * Used to identify the 'most recent' build in that sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * + * @example 16 + */ + buildNumber: number; + }; + /** @description The error messages for the rejected build */ + errors: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }[]; + /** + * @description Issue keys that are not known on this Jira instance (if any). + * + * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they + * may be for projects that no longer exist. + * + * If a build has been associated with issue keys other than those in this array it will still be stored against + * those valid keys. If a build was only associated with issue keys deemed to be invalid it won't be persisted. + */ + unknownIssueKeys?: string[]; }; }; }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; - }; - }; - /** - * Delete development information by properties - * @description Deletes development information entities which have all the provided properties. Entities will be deleted that match ALL of the properties (i.e. treated as an AND). For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Special property `_updateSequenceId` can be used to delete all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to delete by. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. - */ - deleteByProperties: { - parameters: { - query?: { - /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ - _updateSequenceId?: number; - }; - header: { - /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ - Authorization: string; - }; - }; - responses: { - /** @description Delete accepted. Data will eventually be removed from Jira. */ - 202: { - content: never; - }; - /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. Deleting data for many property values, for the same property key, requires multiple requests to this resource. */ + /** + * @description Request has incorrect format. + * + * Note that in the case of an individual build having an invalid format (rather than the request as a whole) + * the response for the request will be a 202 and details of the invalid build will be contained in the + * response object. + */ 400: { content: { - "application/json": { - /** @description List of errors occurred. */ - errorMessages: { + "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ + /** + * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * or the app does not define the 'WRITE' scope. + */ 403: { content: never; }; - /** @description API rate limit has been exceeded. */ - 429: { - content: never; - }; - /** @description An unknown error has occurred. */ - 500: { - content: { - "application/json": { - /** @description List of errors occurred. */ - errorMessages: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; - }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; - }; - }; - /** - * Check if data exists for the supplied properties - * @description Checks if development information which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one entity or repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. - */ - existsByProperties: { - parameters: { - query?: { - /** @description An optional property. Filters out entities and repositories which have updateSequenceId greater than specified. */ - _updateSequenceId?: number; - }; - header: { - /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ - Authorization: string; - }; - }; - responses: { - /** @description Returns whether data exists for the specified properties. */ - 200: { - content: { - "application/json": { - /** @description Whether there is data matching the query */ - hasDataMatchingProperties?: boolean; - }; - }; - }; - /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. */ - 400: { + /** @description Data is too large. Submit fewer builds in each payload. */ + 413: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; - /** @description Missing a JWT token, or token is invalid. */ - 401: { - content: never; - }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ - 403: { - content: never; - }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; /** @description An unknown error has occurred. */ - 500: { + default: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; }; }; /** - * Delete development information entity - * @description Deletes particular development information entity. Deletion is performed asynchronously. + * Delete builds by Property + * @description Bulk delete all builds data that match the given request. + * + * One or more query params must be supplied to specify Properties to delete by. + * Optional param `_updateSequenceNumber` is no longer supported. + * If more than one Property is provided, data will be deleted that matches ALL of the + * Properties (e.g. treated as an AND). + * + * See the documentation for the `submitBuilds` operation for more details. + * + * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 + * + * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been + * deleted successfully (if needed). + * + * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. */ - deleteEntity: { + deleteBuildsByProperty: { parameters: { query?: { - /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ - _updateSequenceId?: number; + /** + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `_updateSequenceNumber` to use to control deletion. + * + * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * + * If not provided, all stored data that matches the request will be deleted. + */ + _updateSequenceNumber?: number; }; header: { - /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ Authorization: string; }; - path: { - repositoryId: string; - entityType: "commit" | "branch" | "pull_request"; - entityId: string; - }; }; responses: { - /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ + /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; - /** @description Wrong entity type specified */ + /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; - /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ + /** + * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * or the app does not define the 'DELETE' scope. + */ 403: { content: never; }; @@ -7102,82 +9924,59 @@ export interface operations { 429: { content: never; }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; /** @description An unknown error has occurred. */ - 500: { + default: { content: { "application/json": { - /** @description List of errors occurred. */ - errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; - }; }; }; - /** @description Service is unavailable due to maintenance or other reasons. */ - 503: { - content: never; - }; }; }; /** - * Submit Feature Flag data - * @description Update / insert Feature Flag data. - * - * Feature Flags are identified by their ID, and existing Feature Flag data for the same ID will be replaced if it exists and the updateSequenceId of existing data is less than the incoming data. - * - * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getFeatureFlagById operation can be used to confirm that data has been stored successfully (if needed). + * Get a build by key + * @description Retrieve the currently stored build data for the given `pipelineId` and `buildNumber` combination. * - * In the case of multiple Feature Flags being submitted in one request, each is validated individually prior to submission. Details of which Feature Flags failed submission (if any) are available in the response object. + * The result will be what is currently stored, ignoring any pending updates or deletes. * - * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. - * This resource requires the 'WRITE' scope for Connect apps. + * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'READ' scope for Connect apps. */ - submitFeatureFlags: { + getBuildByKey: { parameters: { header: { /** - * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * - * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; + path: { + /** @description The `pipelineId` of the build. */ + pipelineId: string; + /** @description The `buildNumber` of the build. */ + buildNumber: number; + }; }; - /** @description Feature Flag data to submit. */ - requestBody: { - content: { - "application/json": { - /** - * Properties - * @description Properties assigned to Feature Flag data that can then be used for delete / query operations. - * - * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. - * - * Note that these properties will never be returned with Feature Flag data. They are not intended for use as metadata to associate with a Feature Flag. Internally they are stored as a hash so that personal information etc. is never stored within Jira. - * - * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not contain ':' or start with '_'. - * - * @example { - * "accountId": "account-234", - * "projectId": "project-123" - * } - */ - properties?: { - [key: string]: string; - }; - /** - * @description A list of Feature Flags to submit to Jira. - * - * Each Feature Flag may be associated with 1 or more Jira issue keys, and will be associated with any properties included in this request. - */ - flags: { + responses: { + /** @description The build data currently stored for the given key. */ + 200: { + content: { + "application/json": { /** - * @description The FeatureFlagData schema version used for this flag data. + * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * @@ -7187,295 +9986,193 @@ export interface operations { */ schemaVersion?: "1.0"; /** - * @description The identifier for the Feature Flag. Must be unique for a given Provider. + * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, + * plan key etc. - whatever logical unit you use to group a sequence of builds. * - * @example 111-222-333 + * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * + * @example my-build-plan */ - id: string; + pipelineId: string; /** - * @description The identifier that users would use to reference the Feature Flag in their source code etc. + * Format: int64 + * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. + * + * Used to identify the 'most recent' build in that sequence of builds. + * + * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * + * @example 16 + */ + buildNumber: number; + /** + * Format: int64 + * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, + * in the case of out-of-order receipt of update requests. + * + * It must be a monotonically increasing number. For example, epoch time could be one way to generate the + * `updateSequenceNumber`. + * + * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently + * stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceNumber: number; + /** + * @description The human-readable name for the build. * - * Will be made available via the UI for users to copy into their source code etc. + * Will be shown in the UI. * - * @example my-awesome-feature + * @example My Project build #16 */ - key: string; + displayName: string; /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. - * - * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). + * @description An optional description to attach to this build. * - * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * This may be anything that makes sense in your system. * - * @example 1523494301448 + * @example My Project build #16: Failed */ - updateSequenceId: number; + description?: string; + /** @description A human-readable string that to provide information about the build. */ + label?: string; /** - * @description The human-readable name for the Feature Flag. Will be shown in the UI. + * Format: URL + * @description The URL to this build in your system. + */ + url: string; + /** + * BuildState + * @description The state of a build. * - * If not provided, will use the ID for display. + * * `pending` - The build is queued, or some manual action is required. + * * `in_progress` - The build is currently running. + * * `successful` - The build completed successfully. + * * `failed` - The build failed. + * * `cancelled` - The build has been cancelled or stopped. + * * `unknown` - The build is in an unknown state. * - * @example Enable awesome feature + * @example failed + * @enum {string} */ - displayName?: string; - /** @description The Jira issue keys to associate the Feature Flag information with. */ - issueKeys: string[]; + state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; /** - * FeatureFlagSummary - * @description Summary information for a single Feature Flag. - * - * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of the state of the build. * - * This is the summary information that will be presented to the user on e.g. the Jira issue screen. + * @example 2018-01-20T23:27:25.000Z */ - summary: { - /** - * Format: uri - * @description A URL users can use to link to a summary view of this flag, if appropriate. - * - * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). - * - * @example https://example.com/project/feature-123/summary - */ - url?: string; - /** - * FeatureFlagStatus - * @description Status information about a single Feature Flag. - */ - status: { - /** - * @description Whether the Feature Flag is enabled in the given environment (or in summary). - * - * Enabled may imply a partial rollout, which can be described using the 'rollout' field. - */ - enabled: boolean; - /** - * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. - * - * This value may be presented to the user in the UI. - * - * @example Disabled - */ - defaultValue?: string; - /** - * FeatureFlagRollout - * @description Information about the rollout of a Feature Flag in an environment (or in summary). - * - * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. - * - * This information may be presented to the user in the UI. - * - * @example { - * "percentage": 80 - * } - */ - rollout?: { - /** @description If the Feature Flag rollout is a simple percentage rollout */ - percentage?: number; - /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ - text?: string; - /** @description A count of the number of rules active for this Feature Flag in an environment. */ - rules?: number; - }; - }; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. - * - * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. - * - * Expected format is an RFC3339 formatted string. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - }; + lastUpdated: string; /** - * @description Detail information for this Feature Flag. + * @description The Jira issue keys to associate the build information with. * - * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. + * You are free to associate issue keys in any way you like. However, we recommend that you use the name + * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has + * the advantage that it provides an intuitive association of builds to issue keys. + */ + issueKeys: string[]; + /** + * TestInfo + * @description Information about tests that were executed during a build. */ - details: { + testInfo?: { /** - * Format: uri - * @description A URL users can use to link to this Feature Flag, in this environment. + * Format: int64 + * @description The total number of tests considered during a build. * - * @example https://example.com/project/feature-123/production + * @example 150 */ - url: string; + totalNumber: number; /** - * Format: date-time - * @description The last-updated timestamp for this Feature Flag, in this environment. - * - * Expected format is an RFC3339 formatted string. + * Format: int64 + * @description The number of tests that passed during a build. * - * @example 2018-01-20T23:27:25.000Z + * @example 145 */ - lastUpdated: string; + numberPassed: number; /** - * EnvironmentDetails - * @description Details of a single environment. - * - * At the simplest this must be the name of the environment. - * - * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. + * Format: int64 + * @description The number of tests that failed during a build. * - * @example { - * "name": "prod-us-west", - * "type": "production" - * } + * @example 5 */ - environment: { - /** @description The name of the environment. */ - name: string; - /** - * @description The 'type' or 'category' of environment this environment belongs to. - * @enum {string} - */ - type?: "development" | "testing" | "staging" | "production"; - }; + numberFailed: number; /** - * FeatureFlagStatus - * @description Status information about a single Feature Flag. + * Format: int64 + * @description The number of tests that were skipped during a build. + * + * @default 0 + * @example 0 */ - status: { - /** - * @description Whether the Feature Flag is enabled in the given environment (or in summary). - * - * Enabled may imply a partial rollout, which can be described using the 'rollout' field. - */ - enabled: boolean; + numberSkipped?: number; + }; + /** @description Optional information that links a build to a commit, branch etc. */ + references?: { /** - * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. - * - * This value may be presented to the user in the UI. - * - * @example Disabled + * BuildCommitReference + * @description Details about the commit the build was run against. */ - defaultValue?: string; + commit?: { + /** + * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. + * + * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f + */ + id: string; + /** + * @description An identifier for the repository containing the commit. + * + * In most cases this should be the URL of the repository in the SCM provider. + * + * For cases where the build was executed against a local repository etc. this should be some identifier that is + * unique to that repository. + * + * @example https://bitbucket.org/atlassian/biij-vendor-api + */ + repositoryUri: string; + }; /** - * FeatureFlagRollout - * @description Information about the rollout of a Feature Flag in an environment (or in summary). - * - * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. - * - * This information may be presented to the user in the UI. - * - * @example { - * "percentage": 80 - * } + * BuildRefReference + * @description Details about the ref the build was run on. */ - rollout?: { - /** @description If the Feature Flag rollout is a simple percentage rollout */ - percentage?: number; - /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ - text?: string; - /** @description A count of the number of rules active for this Feature Flag in an environment. */ - rules?: number; - }; - }; - }[]; - }[]; - /** - * ProviderMetadata - * @description Information about the provider. This is useful for auditing, logging, debugging, - * and other internal uses. It is not considered private information. Hence, it may not contain personally - * identifiable information. - */ - providerMetadata?: { - /** - * @description An optional name of the source of the feature flags. - * @example Atlassian Release Platform 2.1.0 - */ - product?: string; - }; - }; - }; - }; - responses: { - /** - * @description Submission accepted. Each submitted Feature Flag that is of a valid format will be eventually available in Jira. - * - * Details of which Feature Flags were submitted and which failed submission (due to data format problems etc.) are available in the response object. - */ - 202: { - content: { - "application/json": { - /** - * @description The IDs of Feature Flags that have been accepted for submission. - * - * A Feature Flag may be rejected if it was only associated with unknown issue keys. - * - * Note that a Feature Flag that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. - * - * @example [ - * "111-222-333", - * "444-555-666" - * ] - */ - acceptedFeatureFlags?: string[]; - /** - * @description Details of Feature Flags that have not been accepted for submission, usually due to a problem with the request data. - * - * The object (if present) will be keyed by Feature Flag ID and include any errors associated with that Feature Flag that have prevented it being submitted. - */ - failedFeatureFlags?: { - [key: string]: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; + ref?: { + /** + * @description The name of the ref the build ran on + * + * @example feature/ISSUE-123-some-work + */ + name: string; + /** + * @description An identifer for the ref. + * + * In most cases this should be the URL of the tag/branch etc. in the SCM provider. + * + * For cases where the build was executed against a local repository etc. this should be something that uniquely + * identifies the ref. + * + * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work + */ + uri: string; + }; }[]; - }; - /** - * @description Issue keys that are not known on this Jira instance (if any). - * - * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. - * - * If a Feature Flag has been associated with issue keys other than those in this array it will still be stored against those valid keys. - * If a Feature Flag was only associated with issue keys deemed to be invalid it won't be persisted. - */ - unknownIssueKeys?: string[]; }; }; }; - /** - * @description Request has incorrect format. - * - * Note that in the case of an individual Feature Flag having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Feature Flag will be contained in the response object. - */ - 400: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the Feature Flags module, - * or the app does not define the 'WRITE' scope. + * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description Data is too large. Submit fewer Feature Flags in each payload. */ - 413: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; + /** @description No build data found for the given key. */ + 404: { + content: never; }; /** @description API rate limit has been exceeded. */ 429: { @@ -7489,79 +10186,68 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete Feature Flags by Property - * @description Bulk delete all Feature Flags that match the given request. - * - * One or more query params must be supplied to specify Properties to delete by. Optional param `_updateSequenceId` is no longer supported. - * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). - * See the documentation for the submitFeatureFlags operation for more details. - * - * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * Delete a build by key + * @description Delete the build data currently stored for the given `pipelineId` and `buildNumber` combination. * - * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). + * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been + * deleted successfully (if needed). * - * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteFeatureFlagsByProperty: { + deleteBuildByKey: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * - * An optional `_updateSequenceId` to use to control deletion. + * An optional `_updateSequenceNumber` to use to control deletion. * - * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. + * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. - * - * If not provided, all stored data that matches the request will be deleted. */ - _updateSequenceId?: number; + _updateSequenceNumber?: number; }; header: { /** - * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * - * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; + path: { + /** @description The `pipelineId` of the build to delete. */ + pipelineId: string; + /** @description The `buildNumber` of the build to delete. */ + buildNumber: number; + }; }; responses: { - /** @description Delete accepted. Data will eventually be removed from Jira. */ + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; - /** @description Request has incorrect format (e.g. missing at least one Property param). */ - 400: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -7579,263 +10265,347 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get a Feature Flag by ID - * @description Retrieve the currently stored Feature Flag data for the given ID. + * Submit Remote Link data + * @description Update / insert Remote Link data. * - * The result will be what is currently stored, ignoring any pending updates or deletes. + * Remote Links are identified by their ID, existing Remote Link data for the same ID will be replaced if it + * exists and the updateSequenceId of existing data is less than the incoming data. * - * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. - * This resource requires the 'READ' scope for Connect apps. + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are + * available within a short period of time, but may take some time during peak load and/or maintenance times. + * The `getRemoteLinkById` operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple Remote Links being submitted in one request, each is validated individually prior to + * submission. Details of which Remote LInk failed submission (if any) are available in the response object. + * + * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module can access this resource. This resource + * requires the 'WRITE' scope for Connect apps. */ - getFeatureFlagById: { + submitRemoteLinks: { parameters: { header: { /** - * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to an app installed in Jira. * - * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; - path: { - /** @description The ID of the Feature Flag to fetch. */ - featureFlagId: string; - }; }; - responses: { - /** @description The Feature Flag data currently stored for the given ID. */ - 200: { - content: { - "application/json": { - /** - * @description The FeatureFlagData schema version used for this flag data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion?: "1.0"; - /** - * @description The identifier for the Feature Flag. Must be unique for a given Provider. - * - * @example 111-222-333 - */ - id: string; - /** - * @description The identifier that users would use to reference the Feature Flag in their source code etc. - * - * Will be made available via the UI for users to copy into their source code etc. - * - * @example my-awesome-feature - */ - key: string; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. - * - * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). - * - * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. - * - * @example 1523494301448 - */ - updateSequenceId: number; - /** - * @description The human-readable name for the Feature Flag. Will be shown in the UI. - * - * If not provided, will use the ID for display. - * - * @example Enable awesome feature - */ - displayName?: string; - /** @description The Jira issue keys to associate the Feature Flag information with. */ - issueKeys: string[]; - /** - * FeatureFlagSummary - * @description Summary information for a single Feature Flag. - * - * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. - * - * This is the summary information that will be presented to the user on e.g. the Jira issue screen. - */ - summary: { - /** - * Format: uri - * @description A URL users can use to link to a summary view of this flag, if appropriate. - * - * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). - * - * @example https://example.com/project/feature-123/summary - */ - url?: string; - /** - * FeatureFlagStatus - * @description Status information about a single Feature Flag. - */ - status: { - /** - * @description Whether the Feature Flag is enabled in the given environment (or in summary). - * - * Enabled may imply a partial rollout, which can be described using the 'rollout' field. - */ - enabled: boolean; - /** - * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. - * - * This value may be presented to the user in the UI. - * - * @example Disabled - */ - defaultValue?: string; - /** - * FeatureFlagRollout - * @description Information about the rollout of a Feature Flag in an environment (or in summary). - * - * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. - * - * This information may be presented to the user in the UI. - * - * @example { - * "percentage": 80 - * } - */ - rollout?: { - /** @description If the Feature Flag rollout is a simple percentage rollout */ - percentage?: number; - /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ - text?: string; - /** @description A count of the number of rules active for this Feature Flag in an environment. */ - rules?: number; - }; - }; + /** @description Remote Links data to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Properties + * @description Properties assigned to Remote Link data that can then be used for delete / query operations. + * + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from + * the Provider system. + * + * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not + * contain ':' or start with '_'. + * + * @example { + * "accountId": "account-234", + * "projectId": "project-123" + * } + */ + properties?: { + [key: string]: string; + }; + /** + * @description A list of Remote Links to submit to Jira. + * + * Each Remote Link may be associated with one or more Jira issue keys, and will be associated with any properties + * included in this request. + */ + remoteLinks: ({ /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. + * @description The schema version used for this data. * - * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. + * Placeholder to support potential schema changes in the future. * - * Expected format is an RFC3339 formatted string. + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion?: "1.0"; + /** + * @description The identifier for the Remote Link. Must be unique for a given Provider. * - * @example 2018-01-20T23:27:25.000Z + * @example 111-222-333 */ - lastUpdated: string; - }; - /** - * @description Detail information for this Feature Flag. - * - * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. - */ - details: { + id: string; /** - * Format: uri - * @description A URL users can use to link to this Feature Flag, in this environment. + * Format: int64 + * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of + * update requests. * - * @example https://example.com/project/feature-123/production + * It must be a monotonically increasing number. For example, epoch time could be one way to generate the + * `updateSequenceNumber`. + * + * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently + * stored will be ignored. + * + * @example 1523494301448 */ - url: string; + updateSequenceNumber: number; /** - * Format: date-time - * @description The last-updated timestamp for this Feature Flag, in this environment. + * @description The human-readable name for the Remote Link. * - * Expected format is an RFC3339 formatted string. + * Will be shown in the UI. * - * @example 2018-01-20T23:27:25.000Z + * @example Remote Link #42 */ - lastUpdated: string; + displayName: string; + /** + * Format: uri + * @description The URL to this Remote Link in your system. + */ + url: string; + /** + * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', + * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' + * + * @example security + * @enum {string} + */ + type: "document" | "alert" | "test" | "security" | "logFile" | "prototype" | "coverage" | "bugReport" | "other"; /** - * EnvironmentDetails - * @description Details of a single environment. + * @description An optional description to attach to this Remote Link. * - * At the simplest this must be the name of the environment. + * This may be anything that makes sense in your system. * - * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. + * @example Remote Link #42 with more information in this description + */ + description?: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. * - * @example { - * "name": "prod-us-west", - * "type": "production" - * } + * @example 2018-01-20T23:27:25.000Z */ - environment: { - /** @description The name of the environment. */ - name: string; + lastUpdated: string; + /** @description The entities to associate the Remote Link information with. */ + associations?: ({ + /** + * @description Defines the asssociation type. + * + * @example issueKeys + * @enum {string} + */ + associationType: "issueKeys"; + /** + * @description The Jira issue keys to associate the Remote Link information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + } | { + /** + * @description Defines the asssociation type. + * + * @example serviceIdOrKeys + * @enum {string} + */ + associationType: "serviceIdOrKeys"; + /** + * @description The service id or keys to associate the Remote Link information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + })[]; + /** + * RemoteLinkStatus + * @description The status of a Remote Link. + */ + status?: { /** - * @description The 'type' or 'category' of environment this environment belongs to. + * @description Appearance is a fixed set of appearance types affecting the colour + * of the status lozenge in the UI. The colours they correspond to are + * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. + * + * @example inprogress * @enum {string} */ - type?: "development" | "testing" | "staging" | "production"; + appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; + /** + * @description The human-readable description for the Remote Link status. + * + * Will be shown in the UI. + * + * @example ANOMALOUS + */ + label: string; }; /** - * FeatureFlagStatus - * @description Status information about a single Feature Flag. + * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they + * registered. Indicates which actions this Remote Link has. + * + * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. + * + * @example [ + * "action-111-222-333", + * "action-444-555-666" + * ] */ - status: { + actionIds?: string[]; + /** + * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the + * templateUrl the provider registered their available actions with. + */ + attributeMap?: { + [key: string]: string; + }; + })[]; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is + * not considered private information. Hence, it may not contain personally identifiable information. + */ + providerMetadata?: { + /** + * @description An optional name of the source of the Remote Links data. + * @example Opsgenie 6.10.2 + */ + product?: string; + }; + }; + }; + }; + responses: { + /** + * @description Submission accepted. Each submitted Remote Link that is of a valid format will be eventually available in + * Jira. + * + * Details of which Remote Links were submitted and which failed submission (due to data format problems etc.) + * are available in the response object. + */ + 202: { + content: { + "application/json": { + /** + * @description The IDs of Remote Links that have been accepted for submission. + * + * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or if + * the submitted data for that Remote Link does not match the required schema. + * + * Note that a Remote Link that isn't updated due to it's `updateSequenceNumber` being out of order is not + * considered a failed submission. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + acceptedRemoteLinks?: string[]; + /** + * @description Details of Remote Links that have not been accepted for submission, usually due to a problem with the request data. + * + * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or + * if the submitted data for the Remote Link does not match the required schema. + * + * The object (if present) will be keyed by Remote Link ID and include any errors associated with that + * Remote Link that have prevented it being submitted. + */ + rejectedRemoteLinks?: { + [key: string]: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + /** @description Issue keys or services IDs or keys that are not known on this Jira instance (if any). */ + unknownAssociations?: ({ /** - * @description Whether the Feature Flag is enabled in the given environment (or in summary). + * @description Defines the asssociation type. * - * Enabled may imply a partial rollout, which can be described using the 'rollout' field. + * @example issueKeys + * @enum {string} */ - enabled: boolean; + associationType: "issueKeys"; /** - * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. + * @description The Jira issue keys to associate the Remote Link information with. * - * This value may be presented to the user in the UI. - * - * @example Disabled + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ - defaultValue?: string; + values: string[]; + } | { /** - * FeatureFlagRollout - * @description Information about the rollout of a Feature Flag in an environment (or in summary). - * - * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. + * @description Defines the asssociation type. * - * This information may be presented to the user in the UI. + * @example serviceIdOrKeys + * @enum {string} + */ + associationType: "serviceIdOrKeys"; + /** + * @description The service id or keys to associate the Remote Link information with. * - * @example { - * "percentage": 80 - * } + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ - rollout?: { - /** @description If the Feature Flag rollout is a simple percentage rollout */ - percentage?: number; - /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ - text?: string; - /** @description A count of the number of rules active for this Feature Flag in an environment. */ - rules?: number; - }; - }; - }[]; + values: string[]; + })[]; }; }; }; + /** + * @description Request has incorrect format. + * + * Note that in the case of an individual Remote Link having an invalid format (rather than the request as a + * whole) the response for the request will be a 202 and details of the invalid Remote Link will be contained + * in the response object. + */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the Feature Flags module, - * or the app does not define the 'READ' scope. + * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description No data found for the given Feature Flag ID. */ - 404: { - content: never; + /** @description Data is too large. Submit fewer Remote Links in each payload. */ + 413: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; }; /** @description API rate limit has been exceeded. */ 429: { @@ -7849,64 +10619,97 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete a Feature Flag by ID - * @description Delete the Feature Flag data currently stored for the given ID. + * Delete Remote Links by Property + * @description Bulk delete all Remote Links data that match the given request. * - * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). + * One or more query params must be supplied to specify Properties to delete by. + * Optional param `_updateSequenceNumber` is no longer supported. If more than one Property is provided, + * data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * - * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. + * See the documentation for the `submitRemoteLinks` operation for more details. + * + * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 + * + * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been + * deleted successfully (if needed). + * + * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteFeatureFlagById: { + deleteRemoteLinksByProperty: { parameters: { query?: { /** - * @deprecated - * @description This parameter usage is no longer supported. + * @deprecated + * @description This parameter usage is no longer supported. + * + * An optional `_updateSequenceNumber` to use to control deletion. + * + * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. + * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * + * If not provided, all stored data that matches the request will be deleted. + */ + _updateSequenceNumber?: number; + /** + * @description Free-form query parameters to specify which properties to delete by. Properties refer to the arbitrary + * information the provider tagged Remote Links with previously. * - * An optional `_updateSequenceId` to use to control deletion. + * For example, if the provider previously tagged a remote link with accountId: + * "properties": { + * "accountId": "account-123" + * } * - * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * And now they want to delete Remote Links in bulk by that specific accountId as follows: + * e.g. DELETE /bulkByProperties?accountId=account-123 */ - _updateSequenceId?: number; + params?: Record; }; header: { /** - * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that + * corresponds to an app installed in Jira. * - * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. + * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; - path: { - /** @description The ID of the Feature Flag to delete. */ - featureFlagId: string; - }; }; responses: { - /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; + /** @description Request has incorrect format (e.g. missing at least one Property param). */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the Feature Flags module, + * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -7924,233 +10727,50 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Submit deployment data - * @description Update / insert deployment data. - * - * Deployments are identified by the combination of `pipelineId`, `environmentId` and `deploymentSequenceNumber`, and existing deployment data for the same deployment will be replaced if it exists and the `updateSequenceNumber` of existing data is less than the incoming data. - * - * Submissions are processed asynchronously. Submitted data will eventually be available in Jira. Most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The `getDeploymentByKey` operation can be used to confirm that data has been stored successfully (if needed). - * - * In the case of multiple deployments being submitted in one request, each is validated individually prior to submission. Details of which deployments failed submission (if any) are available in the response object. + * Get a Remote Link by ID + * @description Retrieve the currently stored Remote Link data for the given ID. * - * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. - * This resource requires the 'WRITE' scope for Connect apps. - */ - submitDeployments: { - parameters: { - header: { - /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. - * - * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. - * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. - */ - Authorization: string; - }; - }; - /** @description Deployment data to submit. */ - requestBody: { - content: { - "application/json": { - /** - * Properties - * @description Properties assigned to deployment data that can then be used for delete / query operations. - * - * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. - * - * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. - * - * @example { - * "accountId": "account-234", - * "projectId": "project-123" - * } - */ - properties?: { - [key: string]: string; - }; - /** - * @description A list of deployments to submit to Jira. - * - * Each deployment may be associated with one or more Jira issue keys, and will be associated with any properties included in this request. - */ - deployments: { - /** - * Format: int64 - * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. - * - * @example 100 - */ - deploymentSequenceNumber: number; - /** - * Format: int64 - * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. - * - * @example 1 - */ - updateSequenceNumber: number; - /** - * @deprecated - * @description Deprecated. The Jira issue keys to associate the Deployment information with. - * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. - */ - issueKeys?: string[]; - /** - * @description The entities to associate the Deployment information with. - * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. - */ - associations?: OneOf< - [ - { - /** - * @description Defines the asssociation type. - * - * @example issueIdOrKeys - * @enum {string} - */ - associationType: "issueKeys" | "issueIdOrKeys"; - /** - * @description The Jira issue keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }, - { - /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }, - ] - >[]; - /** - * @description The human-readable name for the deployment. Will be shown in the UI. - * - * @example Deployment number 16 of Data Depot - */ - displayName: string; - /** - * Format: uri - * @description A URL users can use to link to this deployment, in this environment. - * - * @example http://mydeployer.com/project1/1111-222-333/prod-east - */ - url: string; - /** - * @description A short description of the deployment - * - * @example The bits are being transferred - */ - description: string; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - /** - * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. - * - * @example Release 2018-01-20_08-47-bc2421a - */ - label?: string; - /** - * @description The state of the deployment - * - * @example in_progress - * @enum {string} - */ - state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; - /** - * Pipeline - * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) - * - * for getting software from version control right through to the production environment. - */ - pipeline: { - /** - * @description The identifier of this pipeline, must be unique for the provider. - * - * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c - */ - id: string; - /** - * @description The name of the pipeline to present to the user. - * - * @example Data Depot Deployment - */ - displayName: string; - /** - * Format: uri - * @description A URL users can use to link to this deployment pipeline. - * - * @example http://mydeployer.com/project1 - */ - url: string; - }; - /** - * Environment - * @description The environment that the deployment is present in. - */ - environment: { - /** - * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. - * - * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba - */ - id: string; - /** - * @description The name of the environment to present to the user. - * - * @example US East - */ - displayName: string; - /** - * @description The type of the environment. - * - * @example production - * @enum {string} - */ - type: "unmapped" | "development" | "testing" | "staging" | "production"; - }; - /** - * Commands - * @description A list of commands to be actioned for this Deployment - */ - commands?: { - /** - * @description The command name. - * - * @example initiate_deployment_gating - */ - command?: string; - }[]; + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + getRemoteLinkById: { + parameters: { + header: { + /** + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that + * corresponds to an app installed in Jira. + * + * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. + * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + */ + Authorization: string; + }; + path: { + /** @description The ID of the Remote Link to fetch. */ + remoteLinkId: string; + }; + }; + responses: { + /** @description The Remote Link data currently stored for the given ID. */ + 200: { + content: { + "application/json": { /** - * @description The DeploymentData schema version used for this deployment data. + * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * @@ -8160,225 +10780,152 @@ export interface operations { */ schemaVersion?: "1.0"; /** - * triggeredBy - * @description Describes the user who triggered the deployment + * @description The identifier for the Remote Link. Must be unique for a given Provider. + * + * @example 111-222-333 */ - triggeredBy?: { - /** - * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. - * @example jane_doe@atlassian.com - */ - email?: string; - }; - }[]; - /** - * ProviderMetadata - * @description Information about the provider. This is useful for auditing, logging, debugging, - * and other internal uses. It is not considered private information. Hence, it may not contain personally - * identifiable information. - */ - providerMetadata?: { + id: string; /** - * @description An optional name of the source of the deployments data. - * @example Bamboo 6.10.2 + * Format: int64 + * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of + * update requests. + * + * It must be a monotonically increasing number. For example, epoch time could be one way to generate the + * `updateSequenceNumber`. + * + * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently + * stored will be ignored. + * + * @example 1523494301448 */ - product?: string; - }; - }; - }; - }; - responses: { - /** - * @description Submission accepted. Each submitted deployment that is of a valid format will eventually be available in Jira. - * - * Details of which deployments were submitted and which failed submission (due to data format problems etc.) are available in the response object. - */ - 202: { - content: { - "application/json": { + updateSequenceNumber: number; /** - * @description The keys of deployments that have been accepted for submission. A deployment key is a composite key that consists of `pipelineId`, `environmentId` and `deploymentSequenceNumber`. + * @description The human-readable name for the Remote Link. * - * A deployment may be rejected if it was only associated with unknown issue keys. + * Will be shown in the UI. * - * Note that a deployment that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. + * @example Remote Link #42 */ - acceptedDeployments?: { - /** - * @description The identifier of a pipeline, must be unique for the provider. - * - * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c - */ - pipelineId: string; - /** - * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. - * - * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba - */ - environmentId: string; - /** - * Format: int64 - * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. - * - * @example 100 - */ - deploymentSequenceNumber: number; - }[]; + displayName: string; /** - * @description Details of deployments that have not been accepted for submission, usually due to a problem with the request data. + * Format: uri + * @description The URL to this Remote Link in your system. + */ + url: string; + /** + * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', + * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' * - * The object will contain the deployment key and any errors associated with that deployment that have prevented it being submitted. + * @example security + * @enum {string} */ - rejectedDeployments?: { - /** - * DeploymentKey - * @description Fields that uniquely reference a deployment. - */ - key: { + type: "document" | "alert" | "test" | "security" | "logFile" | "prototype" | "coverage" | "bugReport" | "other"; + /** + * @description An optional description to attach to this Remote Link. + * + * This may be anything that makes sense in your system. + * + * @example Remote Link #42 with more information in this description + */ + description?: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** @description The entities to associate the Remote Link information with. */ + associations?: ({ /** - * @description The identifier of a pipeline, must be unique for the provider. + * @description Defines the asssociation type. * - * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c + * @example issueKeys + * @enum {string} */ - pipelineId: string; + associationType: "issueKeys"; /** - * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. + * @description The Jira issue keys to associate the Remote Link information with. * - * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ - environmentId: string; + values: string[]; + } | { /** - * Format: int64 - * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. + * @description Defines the asssociation type. * - * @example 100 + * @example serviceIdOrKeys + * @enum {string} */ - deploymentSequenceNumber: number; - }; - /** @description The error messages for the rejected deployment */ - errors: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }[]; + associationType: "serviceIdOrKeys"; + /** + * @description The service id or keys to associate the Remote Link information with. + * + * The number of values counted across all associationTypes (issueKeys, + * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + })[]; /** - * @description Issue keys that are not known on this Jira instance (if any). - * - * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. - * - * If a deployment has been associated with issue keys other than those in this array it will still be stored against those valid keys. - * If a deployment was only associated with issue keys deemed to be invalid it won't be persisted. + * RemoteLinkStatus + * @description The status of a Remote Link. */ - unknownIssueKeys?: string[]; + status?: { + /** + * @description Appearance is a fixed set of appearance types affecting the colour + * of the status lozenge in the UI. The colours they correspond to are + * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. + * + * @example inprogress + * @enum {string} + */ + appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; + /** + * @description The human-readable description for the Remote Link status. + * + * Will be shown in the UI. + * + * @example ANOMALOUS + */ + label: string; + }; /** - * @description Associations (e.g. Issue Keys or Service IDs) that are not known on this Jira instance (if any). + * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they + * registered. Indicates which actions this Remote Link has. * - * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. + * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. * - * If a deployment has been associated with any other association other than those in this array it will still be stored against those valid associations. - * If a deployment was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. + * @example [ + * "action-111-222-333", + * "action-444-555-666" + * ] */ - unknownAssociations?: ( - | { - /** - * @description Defines the asssociation type. - * - * @example issueIdOrKeys - * @enum {string} - */ - associationType: "issueKeys" | "issueIdOrKeys"; - /** - * @description The Jira issue keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - | { - /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - | { - /** - * @description Defines the association type. Currently supported entities can be found in this field's value enums list. - * - * @enum {string} - */ - associationType: "commit"; - /** - * @description The entity keys that represent the entities to be associated. - * The number of values counted across all associationTypes (issueKeys, issueIdOrKeys, serviceIdOrKeys, supported ATIs and entity associations) must not exceed a limit of 500. - */ - values: { - /** - * @description The hash for the Commit. - * - * @example b00152456cf4 - */ - commitHash: string; - /** - * @description The ID of the Repository that the Commit belongs to. - * - * @example de7fbebffabe - */ - repositoryId: string; - }[]; - } - )[]; + actionIds?: string[]; + /** + * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the + * templateUrl the provider registered their available actions with. + */ + attributeMap?: { + [key: string]: string; + }; }; }; }; - /** - * @description Request has incorrect format. - * - * Note that in the case of an individual deployment having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid deployment will be contained in the response object. - */ - 400: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, - * or the app does not define the 'WRITE' scope. + * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description Data is too large. Submit fewer deployments in each payload. */ - 413: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; + /** @description No Remote Link data found for the given ID. */ + 404: { + content: never; }; /** @description API rate limit has been exceeded. */ 429: { @@ -8392,81 +10939,68 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete deployments by Property - * @description Bulk delete all deployments that match the given request. - * - * One or more query params must be supplied to specify the Properties to delete by. Optional param `_updateSequenceNumber` is no longer supported. - * If more than one Property is provided, data will be deleted that matches ALL of the Properties (i.e. treated as AND). - * See the documentation for the `submitDeployments` operation for more details. - * - * Example operation: DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * Delete a Remote Link by ID + * @description Delete the Remote Link data currently stored for the given ID. * - * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). + * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been + * deleted successfully (if needed). * - * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteDeploymentsByProperty: { + deleteRemoteLinkById: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * - * An optional `updateSequenceNumber` to use to control deletion. + * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. - * - * If not provided, all stored data that matches the request will be deleted. */ _updateSequenceNumber?: number; }; header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that + * corresponds to an app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; + path: { + /** @description The ID of the Remote Link to fetch. */ + remoteLinkId: string; + }; }; responses: { - /** @description Delete accepted. Data will eventually be removed from Jira. */ + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; - /** @description Request has incorrect format (e.g. missing at least one Property param). */ - 400: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, - * or the app does not define the 'DELETE' scope for Connect apps. + * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * or the app does not define the 'DELETE' scope. */ 403: { content: never; @@ -8483,225 +11017,66 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; - }; - }; - /** - * Get a deployment by key - * @description Retrieve the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. - * - * The result will be what is currently stored, ignoring any pending updates or deletes. - * - * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. - * This resource requires the 'READ' scope for Connect apps. - */ - getDeploymentByKey: { - parameters: { - header: { - /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. - * - * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. - * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. - */ - Authorization: string; - }; - path: { - /** @description The ID of the deployment's pipeline. */ - pipelineId: string; - /** @description The ID of the deployment's environment. */ - environmentId: string; - /** @description The deployment's deploymentSequenceNumber. */ - deploymentSequenceNumber: number; - }; - }; - responses: { - /** @description The deployment data currently stored for the given ID. */ - 200: { - content: { - "application/json": { - /** - * Format: int64 - * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. - * - * @example 100 - */ - deploymentSequenceNumber: number; - /** - * Format: int64 - * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. - * - * @example 1 - */ - updateSequenceNumber: number; - /** - * @deprecated - * @description Deprecated. The Jira issue keys to associate the Deployment information with. - * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. - */ - issueKeys?: string[]; - /** - * @description The entities to associate the Deployment information with. - * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. - */ - associations?: OneOf< - [ - { - /** - * @description Defines the asssociation type. - * - * @example issueIdOrKeys - * @enum {string} - */ - associationType: "issueKeys" | "issueIdOrKeys"; - /** - * @description The Jira issue keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }, - { - /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Deployment information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }, - ] - >[]; - /** - * @description The human-readable name for the deployment. Will be shown in the UI. - * - * @example Deployment number 16 of Data Depot - */ - displayName: string; - /** - * Format: uri - * @description A URL users can use to link to this deployment, in this environment. - * - * @example http://mydeployer.com/project1/1111-222-333/prod-east - */ - url: string; - /** - * @description A short description of the deployment - * - * @example The bits are being transferred - */ - description: string; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - /** - * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. - * - * @example Release 2018-01-20_08-47-bc2421a - */ - label?: string; - /** - * @description The state of the deployment - * - * @example in_progress - * @enum {string} - */ - state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; - /** - * Pipeline - * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) - * - * for getting software from version control right through to the production environment. - */ - pipeline: { - /** - * @description The identifier of this pipeline, must be unique for the provider. - * - * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c - */ - id: string; - /** - * @description The name of the pipeline to present to the user. - * - * @example Data Depot Deployment - */ - displayName: string; - /** - * Format: uri - * @description A URL users can use to link to this deployment pipeline. - * - * @example http://mydeployer.com/project1 - */ - url: string; - }; - /** - * Environment - * @description The environment that the deployment is present in. - */ - environment: { - /** - * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. - * - * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba - */ - id: string; - /** - * @description The name of the environment to present to the user. - * - * @example US East - */ - displayName: string; - /** - * @description The type of the environment. - * - * @example production - * @enum {string} - */ - type: "unmapped" | "development" | "testing" | "staging" | "production"; - }; - /** - * Commands - * @description A list of commands to be actioned for this Deployment - */ - commands?: { - /** - * @description The command name. - * - * @example initiate_deployment_gating - */ - command?: string; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Submit Security Workspaces to link + * @description Insert Security Workspace IDs to establish a relationship between them and the Jira site the app is installed on. If a relationship between the workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. + * + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + submitWorkspaces: { + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * + * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. + */ + Authorization: string; + }; + }; + /** @description Security Workspace IDs to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Security Workspace IDs + * @description The IDs of Security Workspaces to link to this Jira site. These must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(\/[a-zA-Z0-9\\-_.~@:{}=]+)*` + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + workspaceIds: string[]; + }; + }; + }; + responses: { + /** @description Submission accepted. Each submitted Security Workspace ID will be linked to Jira. */ + 202: { + content: never; + }; + /** @description Request has incorrect format. */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; }[]; - /** - * @description The DeploymentData schema version used for this deployment data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion?: "1.0"; - }; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -8709,16 +11084,22 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, - * - * or the app does not define the 'READ' scope. + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description No data found for the given deployment ID. */ - 404: { - content: never; + /** @description Set of Ids is too large. Submit fewer Ids in each payload. */ + 413: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; }; /** @description API rate limit has been exceeded. */ 429: { @@ -8732,74 +11113,140 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete a deployment by key - * @description Delete the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. - * - * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). + * Delete linked Security Workspaces + * @description Bulk delete all linked Security Workspaces that match the given request. * - * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. + * + * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ - deleteDeploymentByKey: { + deleteLinkedWorkspaces: { parameters: { - query?: { + header: { /** - * @deprecated - * @description This parameter usage is no longer supported. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * An optional `_updateSequenceNumber` to use to control deletion. + * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * - * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. + * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. */ - _updateSequenceNumber?: number; + Authorization: string; + }; + }; + responses: { + /** @description Delete accepted. Workspaces and related data will eventually be removed from Jira. */ + 202: { + content: never; + }; + /** @description Request has incorrect format. */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * or the app does not define the 'DELETE' scope. + */ + 403: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; }; + }; + }; + /** + * Get linked Security Workspaces + * @description Retrieve all Security Workspaces linked with the Jira site. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. + */ + getLinkedWorkspaces: { + parameters: { header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; - path: { - /** @description The ID of the deployment's pipeline. */ - pipelineId: string; - /** @description The ID of the deployment's environment. */ - environmentId: string; - /** @description The deployment's deploymentSequenceNumber. */ - deploymentSequenceNumber: number; - }; }; responses: { - /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ - 202: { - content: never; + /** @description A list of all stored workspace IDs. */ + 200: { + content: { + "application/json": { + /** + * Security Workspace IDs + * @description The IDs of Security Workspaces that are linked to this Jira site. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + workspaceIds: string[]; + }; + }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, - * or the app does not define the 'DELETE' scope. + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * or the app does not define the 'READ' scope. */ 403: { content: never; }; + /** @description No data found for the given workspace ID. */ + 404: { + content: never; + }; /** @description API rate limit has been exceeded. */ 429: { content: never; @@ -8812,92 +11259,59 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get deployment gating status by key - * @description Retrieve the Deployment gating status for the given `pipelineId + environmentId + deploymentSequenceNumber` combination. - * Only apps that define the `jiraDeploymentInfoProvider` module can access this resource. This resource requires the 'READ' scope. + * Get a linked Security Workspace by ID + * @description Retrieve a specific Security Workspace linked to the Jira site for the given workspace ID. + * + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. */ - getDeploymentGatingStatusByKey: { + getLinkedWorkspaceById: { parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + */ + Authorization: string; + }; path: { - /** @description The ID of the Deployment's pipeline. */ - pipelineId: string; - /** @description The ID of the Deployment's environment. */ - environmentId: string; - /** @description The Deployment's deploymentSequenceNumber. */ - deploymentSequenceNumber: number; + /** @description The ID of the workspace to fetch. */ + workspaceId: string; }; }; responses: { - /** @description The current gating status for the given Deployment */ + /** @description The Security Workspace information stored for the given ID. */ 200: { content: { "application/json": { /** - * Format: int64 - * @description This is the identifier for the Deployment. - * - * @example 100 - */ - deploymentSequenceNumber?: number; - /** - * @description The ID of the Deployment's pipeline. - * - * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c - */ - pipelineId?: string; - /** - * @description The ID of the Deployment's environment. + * @description The Security Workspace ID * - * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba + * @example 111-222-333 */ - environmentId?: string; + workspaceId: string; /** * Format: date-time - * @description Time the deployment gating status was updated. - * - * @example 2020-08-25T06:04:50.239Z - */ - updatedTimestamp?: string; - /** - * @description The gating status + * @description Latest date and time that the Security Workspace was updated in Jira. * - * @example allowed - * @enum {string} + * @example 2020-01-17T09:30:00.000Z */ - gatingStatus?: "allowed" | "prevented" | "awaiting" | "invalid"; - details?: { - /** - * @description The type of the gating status details. - * - * @example issue - * @enum {string} - */ - type: "issue"; - /** - * IssueKey - * @description An issue key that references an issue in Jira. - * - * @example ABC-123 - */ - issueKey: string; - /** - * Format: uri - * @description A full HTTPS link to the Jira issue for the change request gating this Deployment. This field is provided if the details type is issue. - * - * @example https://your-domain.atlassian.net/servicedesk/customer/portal/1/ZAINA-123 - */ - issueLink: string; - }[]; + updatedAt: string; }; }; }; @@ -8905,11 +11319,14 @@ export interface operations { 401: { content: never; }; - /** @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, */ + /** + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * or the app does not define the 'READ' scope. + */ 403: { content: never; }; - /** @description No data found for the given deployment ID. */ + /** @description No data found for the given workspace ID. */ 404: { content: never; }; @@ -8925,64 +11342,61 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Submit build data - * @description Update / insert builds data. + * Submit Vulnerability data + * @description Update / Insert Vulnerability data. * - * Builds are identified by the combination of `pipelineId` and `buildNumber`, and existing build data for the same - * build will be replaced if it exists and the `updateSequenceNumber` of the existing data is less than the - * incoming data. + * Vulnerabilities are identified by their ID, any existing Vulnerability data with the same ID will be replaced if it exists and the updateSequenceNumber of the existing data is less than the incoming data. * - * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are - * available within a short period of time, but may take some time during peak load and/or maintenance times. - * The `getBuildByKey` operation can be used to confirm that data has been stored successfully (if needed). + * Submissions are performed asynchronously. Most updates are available within a short period of time but may take some time during peak load and/or maintenance times. The GET vulnerability endpoint can be used to confirm that data has been stored successfully (if needed). * - * In the case of multiple builds being submitted in one request, each is validated individually prior to - * submission. Details of which build failed submission (if any) are available in the response object. + * In the case of multiple Vulnerabilities being submitted in one request, each is validated individually prior to submission. Details of Vulnerabilities that failed submission (if any) are available in the response object. * - * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * A maximum of 1000 vulnerabilities can be submitted in one request. + * + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ - submitBuilds: { + submitVulnerabilities: { parameters: { header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; - /** @description Builds data to submit. */ + /** @description Vulnerability data to submit. */ requestBody: { content: { "application/json": { /** - * Properties - * @description Properties assigned to build data that can then be used for delete / query operations. + * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during real-time, user-triggered actions (e.g. user closed or updated a vulnerability). "SCAN" - Data sent through some automated process (e.g. some periodically scheduled repository scan). "BACKFILL" - Data received while backfilling existing data (e.g. pushing historical vulnerabilities when re-connect a workspace). Default is "NORMAL". "NORMAL" traffic has higher priority but tighter rate limits, "SCAN" traffic has medium priority and looser limits, "BACKFILL" has lower priority and much looser limits * - * Examples might be an account or user ID that can then be used to clean up data if an account is removed from - * the Provider system. + * @example SCAN + * @enum {string} + */ + operationType?: "NORMAL" | "SCAN" | "BACKFILL"; + /** + * Properties + * @description Properties assigned to vulnerability data that can then be used for delete / query operations. * - * Note that these properties will never be returned with build data. They are not intended for use as - * metadata to associate with a build. Internally they are stored as a hash so that personal information etc. - * is never stored within Jira. + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * - * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not - * contain ':' or start with '_'. + * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. * * @example { * "accountId": "account-234", @@ -8992,205 +11406,211 @@ export interface operations { properties?: { [key: string]: string; }; - /** - * @description A list of builds to submit to Jira. - * - * Each build may be associated with one or more Jira issue keys, and will be associated with any properties - * included in this request. - */ - builds: { - /** - * @description The schema version used for this data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion?: "1.0"; - /** - * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, - * plan key etc. - whatever logical unit you use to group a sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. - * - * @example my-build-plan - */ - pipelineId: string; - /** - * Format: int64 - * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. - * - * Used to identify the 'most recent' build in that sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. - * - * @example 16 - */ - buildNumber: number; - /** - * Format: int64 - * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, - * in the case of out-of-order receipt of update requests. - * - * It must be a monotonically increasing number. For example, epoch time could be one way to generate the - * `updateSequenceNumber`. - * - * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently - * stored will be ignored. - * - * @example 1523494301448 - */ - updateSequenceNumber: number; - /** - * @description The human-readable name for the build. - * - * Will be shown in the UI. - * - * @example My Project build #16 - */ - displayName: string; - /** - * @description An optional description to attach to this build. - * - * This may be anything that makes sense in your system. - * - * @example My Project build #16: Failed - */ - description?: string; - /** @description A human-readable string that to provide information about the build. */ - label?: string; - /** - * Format: URL - * @description The URL to this build in your system. - */ - url: string; - /** - * BuildState - * @description The state of a build. - * - * * `pending` - The build is queued, or some manual action is required. - * * `in_progress` - The build is currently running. - * * `successful` - The build completed successfully. - * * `failed` - The build failed. - * * `cancelled` - The build has been cancelled or stopped. - * * `unknown` - The build is in an unknown state. - * - * @example failed - * @enum {string} - */ - state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the build. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - /** - * @description The Jira issue keys to associate the build information with. - * - * You are free to associate issue keys in any way you like. However, we recommend that you use the name - * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has - * the advantage that it provides an intuitive association of builds to issue keys. - */ - issueKeys: string[]; - /** - * TestInfo - * @description Information about tests that were executed during a build. - */ - testInfo?: { + vulnerabilities: ({ /** - * Format: int64 - * @description The total number of tests considered during a build. + * @description The VulnerabilityData schema version used for this vulnerability data. * - * @example 150 + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} */ - totalNumber: number; + schemaVersion: "1.0"; /** - * Format: int64 - * @description The number of tests that passed during a build. + * @description The identifier for the Vulnerability. Must be unique for a given Provider. * - * @example 145 + * @example 111-222-333 */ - numberPassed: number; + id: string; /** * Format: int64 - * @description The number of tests that failed during a build. + * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). + * + * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceNumber: number; + /** + * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` + * + * @example 111-222-333 + */ + containerId: string; + /** + * @description The human-readable name for the Vulnerability. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example curl/libcurl3 - Buffer Override + */ + displayName: string; + /** + * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). + * + * @example ## Overview + * + * + * Affected versions of this package are vulnerable to MeltLeak + */ + description: string; + /** + * Format: uri + * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). + * + * @example https://example.com/project/CWE-123/summary + */ + url: string; + /** + * @description The type of Vulnerability detected. + * @example sca + * @enum {string} + */ + type: "sca" | "sast" | "dast" | "unknown"; + /** + * Format: date-time + * @description The timestamp to present to the user that shows when the Vulnerability was introduced. + * + * Expected format is an RFC3339 formatted string. * - * @example 5 + * @example 2018-01-20T23:27:25.000Z */ - numberFailed: number; + introducedDate: string; /** - * Format: int64 - * @description The number of tests that were skipped during a build. + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. * - * @default 0 - * @example 0 + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z */ - numberSkipped?: number; - }; - /** @description Optional information that links a build to a commit, branch etc. */ - references?: { + lastUpdated: string; /** - * BuildCommitReference - * @description Details about the commit the build was run against. + * VulnerabilitySeverity + * @description Severity information for a single Vulnerability. + * + * This is the severity information that will be presented to the user on e.g. the Jira Security screen. */ - commit?: { - /** - * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. - * - * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f - */ - id: string; + severity: { /** - * @description An identifier for the repository containing the commit. - * - * In most cases this should be the URL of the repository in the SCM provider. - * - * For cases where the build was executed against a local repository etc. this should be some identifier that is - * unique to that repository. - * - * @example https://bitbucket.org/atlassian/biij-vendor-api + * @description The severity level of the Vulnerability. + * @example critical + * @enum {string} */ - repositoryUri: string; + level: "critical" | "high" | "medium" | "low" | "unknown"; }; + /** @description The identifying information for the Vulnerability. */ + identifiers?: { + /** + * @description The display name of the Vulnerability identified. + * + * @example CWE-123 + */ + displayName: string; + /** + * Format: uri + * @description A URL users can use to link to the definition of the Vulnerability identified. + * + * @example https://cwe.mitre.org/data/definitions/123.html + */ + url: string; + }[]; + /** + * VulnerabilityStatus + * @description The current status of the Vulnerability. + * + * @example open + * @enum {string} + */ + status: "open" | "closed" | "ignored" | "unknown"; /** - * BuildRefReference - * @description Details about the ref the build was run on. + * VulnerabilityAdditionalInfo + * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. */ - ref?: { + additionalInfo?: { /** - * @description The name of the ref the build ran on + * @description The content of the additionalInfo. * - * @example feature/ISSUE-123-some-work + * @example More information on the vulnerability, as a string */ - name: string; + content: string; /** - * @description An identifer for the ref. - * - * In most cases this should be the URL of the tag/branch etc. in the SCM provider. - * - * For cases where the build was executed against a local repository etc. this should be something that uniquely - * identifies the ref. + * Format: uri + * @description Optional URL linking to the information * - * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work + * @example https://example.com/project/CWE-123/additionalInfo */ - uri: string; + url?: string; }; - }[]; - }[]; + /** @description The associations (e.g. Jira issue) to add in addition to the currently stored associations of the Security Vulnerability. */ + addAssociations?: { + /** + * @description Defines the association type. + * + * @example issueIdOrKeys + * @enum {string} + */ + associationType: "issueIdOrKeys"; + /** + * @description The Jira issue id or keys to associate the Security information with. + * + * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + }[]; + /** @description The associations (e.g. Jira issue) to remove from currently stored associations of the Security Vulnerability. */ + removeAssociations?: { + /** + * @description Defines the association type. + * + * @example issueIdOrKeys + * @enum {string} + */ + associationType: "issueIdOrKeys"; + /** + * @description The Jira issue id or keys to associate the Security information with. + * + * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. + */ + values: string[]; + }[]; + /** + * Format: date-time + * @description An ISO-8601 Date-time string representing the last time the provider updated associations on this entity. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + associationsLastUpdated?: string; + /** + * Format: int64 + * @description A sequence number to compare when writing entity associations to the database. + * + * This can be any monotonically increasing number. A highly recommended implementation is to use epoch millis. + * + * This is an optional field. If it is not provided it will default to being equal to the corresponding entity's `updateSequenceNumber`. + * + * Associations are written following a LastWriteWins strategy, association that are received with an associationsUpdateSequenceNumber lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + associationsUpdateSequenceNumber?: number; + })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, - * and other internal uses. It is not considered private information. Hence, it may not contain personally - * identifiable information. + * and other internal uses. Information in this property is not considered private, so it should not contain personally identifiable information */ providerMetadata?: { /** - * @description An optional name of the source of the builds data. - * @example Bamboo 6.10.2 + * @description An optional name of the source of the vulnerabilities. + * @example Atlassian Security Platform 2.1.0 */ product?: string; }; @@ -9199,115 +11619,76 @@ export interface operations { }; responses: { /** - * @description Submission accepted. Each submitted build that is of a valid format will be eventually available in Jira. + * @description Submission accepted. Each Vulnerability submitted in a valid format will eventually be available in Jira. * - * Details of which builds were submitted and which failed submission (due to data format problems etc.) - * are available in the response object. + * Details of any Vulnerabilities that were submitted but failed submission (due to data format problems, etc.) are available in the response object. */ 202: { content: { "application/json": { /** - * @description The keys of builds that have been accepted for submission. A build key is a composite key that consists of - * `pipelineId` and `buildNumber`. + * @description The IDs of Vulnerabilities that have been accepted for submission. * - * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for that - * build does not match the required schema. + * A Vulnerability may be rejected if it was only associated with unknown project keys. * - * Note that a build that isn't updated due to it's `updateSequenceNumber` being out of order is not - * considered a failed submission. + * Note that a Vulnerability that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] */ - acceptedBuilds?: { - /** - * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, - * plan key etc. - whatever logical unit you use to group a sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. - * - * @example my-build-plan - */ - pipelineId: string; - /** - * Format: int64 - * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. - * - * Used to identify the 'most recent' build in that sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. - * - * @example 16 - */ - buildNumber: number; - }[]; + acceptedVulnerabilities?: string[]; /** - * @description Details of builds that have not been accepted for submission. + * @description Details of Vulnerabilities that have not been accepted for submission, usually due to a problem with the request data. * - * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for the - * build does not match the required schema. + * The object (if present) will be keyed by Vulnerability ID and include any errors associated with that Vulnerability that have prevented it being submitted. */ - rejectedBuilds?: { - /** - * BuildKey - * @description Fields that uniquely reference a build. - */ - key: { + failedVulnerabilities?: { + [key: string]: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + /** + * @description Associations (e.g. Service IDs) that are not known on this Jira instance (if any). + * + * If a Vulnerability has been associated with any other association other than those in this array it will still be stored against those valid associations. + * If a Vulnerability was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. + */ + unknownAssociations?: { /** - * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, - * plan key etc. - whatever logical unit you use to group a sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * @description Defines the association type. * - * @example my-build-plan + * @example issueIdOrKeys + * @enum {string} */ - pipelineId: string; + associationType: "issueIdOrKeys"; /** - * Format: int64 - * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. - * - * Used to identify the 'most recent' build in that sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. + * @description The Jira issue id or keys to associate the Security information with. * - * @example 16 + * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ - buildNumber: number; - }; - /** @description The error messages for the rejected build */ - errors: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; + values: string[]; }[]; - }[]; - /** - * @description Issue keys that are not known on this Jira instance (if any). - * - * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they - * may be for projects that no longer exist. - * - * If a build has been associated with issue keys other than those in this array it will still be stored against - * those valid keys. If a build was only associated with issue keys deemed to be invalid it won't be persisted. - */ - unknownIssueKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * - * Note that in the case of an individual build having an invalid format (rather than the request as a whole) - * the response for the request will be a 202 and details of the invalid build will be contained in the - * response object. + * Note that in the case of an individual Vulnerability having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Vulnerability will be contained in the response object. */ 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -9315,25 +11696,35 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description Data is too large. Submit fewer builds in each payload. */ + /** @description Data is too large. Submit fewer Vulnerabilities in each payload. */ 413: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { + headers: { + /** @description The number of remaining possible requests in current rate limit window. */ + "X-RateLimit-Remaining"?: number; + /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ + "X-RateLimit-Reset"?: string; + /** @description The maximum possible requests in a window of one minute. */ + "X-RateLimit-Limit"?: number; + /** @description The number of seconds to wait before making a follow-up request. */ + "Retry-After"?: number; + }; content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ @@ -9344,58 +11735,39 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete builds by Property - * @description Bulk delete all builds data that match the given request. + * Delete Vulnerabilities by Property + * @description Bulk delete all Vulnerabilities that match the given request. * * One or more query params must be supplied to specify Properties to delete by. - * Optional param `_updateSequenceNumber` is no longer supported. - * If more than one Property is provided, data will be deleted that matches ALL of the - * Properties (e.g. treated as an AND). - * - * See the documentation for the `submitBuilds` operation for more details. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). + * Read the POST bulk endpoint documentation for more details. * - * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 + * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * - * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been - * deleted successfully (if needed). + * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * - * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteBuildsByProperty: { + deleteVulnerabilitiesByProperty: { parameters: { - query?: { - /** - * @deprecated - * @description This parameter usage is no longer supported. - * - * An optional `_updateSequenceNumber` to use to control deletion. - * - * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. - * - * If not provided, all stored data that matches the request will be deleted. - */ - _updateSequenceNumber?: number; - }; header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. - * - * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. + * + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; @@ -9409,11 +11781,11 @@ export interface operations { 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -9421,7 +11793,7 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -9439,51 +11811,48 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get a build by key - * @description Retrieve the currently stored build data for the given `pipelineId` and `buildNumber` combination. + * Get a Vulnerability by ID + * @description Retrieve the currently stored Vulnerability data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * - * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ - getBuildByKey: { + getVulnerabilityById: { parameters: { header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; path: { - /** @description The `pipelineId` of the build. */ - pipelineId: string; - /** @description The `buildNumber` of the build. */ - buildNumber: number; + /** @description The ID of the Vulnerability to fetch. */ + vulnerabilityId: string; }; }; responses: { - /** @description The build data currently stored for the given key. */ + /** @description The Vulnerability data currently stored for the given ID. */ 200: { content: { "application/json": { /** - * @description The schema version used for this data. + * @description The VulnerabilityData schema version used for this vulnerability data. * * Placeholder to support potential schema changes in the future. * @@ -9491,178 +11860,191 @@ export interface operations { * @example 1.0 * @enum {string} */ - schemaVersion?: "1.0"; + schemaVersion: "1.0"; /** - * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, - * plan key etc. - whatever logical unit you use to group a sequence of builds. - * - * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * @description The identifier for the Vulnerability. Must be unique for a given Provider. * - * @example my-build-plan + * @example 111-222-333 */ - pipelineId: string; + id: string; /** * Format: int64 - * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. + * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. * - * Used to identify the 'most recent' build in that sequence of builds. + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). * - * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. + * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. * - * @example 16 + * @example 1523494301448 */ - buildNumber: number; + updateSequenceNumber: number; /** - * Format: int64 - * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, - * in the case of out-of-order receipt of update requests. - * - * It must be a monotonically increasing number. For example, epoch time could be one way to generate the - * `updateSequenceNumber`. - * - * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently - * stored will be ignored. + * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` * - * @example 1523494301448 + * @example 111-222-333 */ - updateSequenceNumber: number; + containerId: string; /** - * @description The human-readable name for the build. + * @description The human-readable name for the Vulnerability. Will be shown in the UI. * - * Will be shown in the UI. + * If not provided, will use the ID for display. * - * @example My Project build #16 + * @example curl/libcurl3 - Buffer Override */ displayName: string; /** - * @description An optional description to attach to this build. + * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). * - * This may be anything that makes sense in your system. + * @example ## Overview * - * @example My Project build #16: Failed + * + * Affected versions of this package are vulnerable to MeltLeak */ - description?: string; - /** @description A human-readable string that to provide information about the build. */ - label?: string; + description: string; /** - * Format: URL - * @description The URL to this build in your system. + * Format: uri + * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). + * + * @example https://example.com/project/CWE-123/summary */ url: string; /** - * BuildState - * @description The state of a build. - * - * * `pending` - The build is queued, or some manual action is required. - * * `in_progress` - The build is currently running. - * * `successful` - The build completed successfully. - * * `failed` - The build failed. - * * `cancelled` - The build has been cancelled or stopped. - * * `unknown` - The build is in an unknown state. - * - * @example failed + * @description The type of Vulnerability detected. + * @example sca * @enum {string} */ - state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; + type: "sca" | "sast" | "dast" | "unknown"; /** * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of the state of the build. + * @description The timestamp to present to the user that shows when the Vulnerability was introduced. + * + * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ - lastUpdated: string; + introducedDate: string; /** - * @description The Jira issue keys to associate the build information with. + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. * - * You are free to associate issue keys in any way you like. However, we recommend that you use the name - * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has - * the advantage that it provides an intuitive association of builds to issue keys. + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z */ - issueKeys: string[]; + lastUpdated: string; /** - * TestInfo - * @description Information about tests that were executed during a build. + * VulnerabilitySeverity + * @description Severity information for a single Vulnerability. + * + * This is the severity information that will be presented to the user on e.g. the Jira Security screen. */ - testInfo?: { - /** - * Format: int64 - * @description The total number of tests considered during a build. - * - * @example 150 - */ - totalNumber: number; + severity: { /** - * Format: int64 - * @description The number of tests that passed during a build. - * - * @example 145 + * @description The severity level of the Vulnerability. + * @example critical + * @enum {string} */ - numberPassed: number; + level: "critical" | "high" | "medium" | "low" | "unknown"; + }; + /** @description The identifying information for the Vulnerability. */ + identifiers?: { + /** + * @description The display name of the Vulnerability identified. + * + * @example CWE-123 + */ + displayName: string; + /** + * Format: uri + * @description A URL users can use to link to the definition of the Vulnerability identified. + * + * @example https://cwe.mitre.org/data/definitions/123.html + */ + url: string; + }[]; + /** + * VulnerabilityStatus + * @description The current status of the Vulnerability. + * + * @example open + * @enum {string} + */ + status: "open" | "closed" | "ignored" | "unknown"; + /** + * VulnerabilityAdditionalInfo + * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. + */ + additionalInfo?: { /** - * Format: int64 - * @description The number of tests that failed during a build. + * @description The content of the additionalInfo. * - * @example 5 + * @example More information on the vulnerability, as a string */ - numberFailed: number; + content: string; /** - * Format: int64 - * @description The number of tests that were skipped during a build. + * Format: uri + * @description Optional URL linking to the information * - * @default 0 - * @example 0 + * @example https://example.com/project/CWE-123/additionalInfo */ - numberSkipped?: number; + url?: string; }; - /** @description Optional information that links a build to a commit, branch etc. */ - references?: { - /** - * BuildCommitReference - * @description Details about the commit the build was run against. - */ - commit?: { + /** @description The associations (e.g. Jira issue) to add in addition to the currently stored associations of the Security Vulnerability. */ + addAssociations?: { /** - * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. + * @description Defines the association type. * - * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f + * @example issueIdOrKeys + * @enum {string} */ - id: string; + associationType: "issueIdOrKeys"; /** - * @description An identifier for the repository containing the commit. - * - * In most cases this should be the URL of the repository in the SCM provider. - * - * For cases where the build was executed against a local repository etc. this should be some identifier that is - * unique to that repository. + * @description The Jira issue id or keys to associate the Security information with. * - * @example https://bitbucket.org/atlassian/biij-vendor-api + * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ - repositoryUri: string; - }; - /** - * BuildRefReference - * @description Details about the ref the build was run on. - */ - ref?: { + values: string[]; + }[]; + /** @description The associations (e.g. Jira issue) to remove from currently stored associations of the Security Vulnerability. */ + removeAssociations?: { /** - * @description The name of the ref the build ran on + * @description Defines the association type. * - * @example feature/ISSUE-123-some-work + * @example issueIdOrKeys + * @enum {string} */ - name: string; + associationType: "issueIdOrKeys"; /** - * @description An identifer for the ref. + * @description The Jira issue id or keys to associate the Security information with. * - * In most cases this should be the URL of the tag/branch etc. in the SCM provider. - * - * For cases where the build was executed against a local repository etc. this should be something that uniquely - * identifies the ref. - * - * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work + * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ - uri: string; - }; - }[]; + values: string[]; + }[]; + /** + * Format: date-time + * @description An ISO-8601 Date-time string representing the last time the provider updated associations on this entity. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + associationsLastUpdated?: string; + /** + * Format: int64 + * @description A sequence number to compare when writing entity associations to the database. + * + * This can be any monotonically increasing number. A highly recommended implementation is to use epoch millis. + * + * This is an optional field. If it is not provided it will default to being equal to the corresponding entity's `updateSequenceNumber`. + * + * Associations are written following a LastWriteWins strategy, association that are received with an associationsUpdateSequenceNumber lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + associationsUpdateSequenceNumber?: number; }; }; }; @@ -9671,13 +12053,13 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description No build data found for the given key. */ + /** @description No data found for the given Vulnerability ID. */ 404: { content: never; }; @@ -9693,59 +12075,43 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete a build by key - * @description Delete the build data currently stored for the given `pipelineId` and `buildNumber` combination. + * Delete a Vulnerability by ID + * @description Delete the Vulnerability data currently stored for the given ID. * - * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been - * deleted successfully (if needed). + * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * - * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteBuildByKey: { + deleteVulnerabilityById: { parameters: { - query?: { - /** - * @deprecated - * @description This parameter usage is no longer supported. - * - * An optional `_updateSequenceNumber` to use to control deletion. - * - * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. - */ - _updateSequenceNumber?: number; - }; header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; path: { - /** @description The `pipelineId` of the build to delete. */ - pipelineId: string; - /** @description The `buildNumber` of the build to delete. */ - buildNumber: number; + /** @description The ID of the Vulnerability to delete. */ + vulnerabilityId: string; }; }; responses: { - /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + /** @description Delete has been accepted. If the data exists, it will eventually be removed from Jira. */ 202: { content: never; }; @@ -9754,7 +12120,7 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -9772,339 +12138,78 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Submit Remote Link data - * @description Update / insert Remote Link data. - * - * Remote Links are identified by their ID, existing Remote Link data for the same ID will be replaced if it - * exists and the updateSequenceId of existing data is less than the incoming data. - * - * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are - * available within a short period of time, but may take some time during peak load and/or maintenance times. - * The `getRemoteLinkById` operation can be used to confirm that data has been stored successfully (if needed). - * - * In the case of multiple Remote Links being submitted in one request, each is validated individually prior to - * submission. Details of which Remote LInk failed submission (if any) are available in the response object. + * Submit Operations Workspace Ids + * @description Insert Operations Workspace IDs to establish a relationship between them and the Jira site the app is installed in. If a relationship between the Workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. * - * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module can access this resource. This resource - * requires the 'WRITE' scope for Connect apps. + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. */ - submitRemoteLinks: { + submitOperationsWorkspaces: { parameters: { header: { /** - * @description All requests must be signed with a Connect JWT token that corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; - /** @description Remote Links data to submit. */ + /** @description Operations Workspace ids to submit. */ requestBody: { content: { "application/json": { /** - * Properties - * @description Properties assigned to Remote Link data that can then be used for delete / query operations. - * - * Examples might be an account or user ID that can then be used to clean up data if an account is removed from - * the Provider system. - * - * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not - * contain ':' or start with '_'. - * - * @example { - * "accountId": "account-234", - * "projectId": "project-123" - * } - */ - properties?: { - [key: string]: string; - }; - /** - * @description A list of Remote Links to submit to Jira. + * Operations Workspace Ids + * @description The IDs of Operations Workspaces that are available to this Jira site. * - * Each Remote Link may be associated with one or more Jira issue keys, and will be associated with any properties - * included in this request. - */ - remoteLinks: { - /** - * @description The schema version used for this data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion?: "1.0"; - /** - * @description The identifier for the Remote Link. Must be unique for a given Provider. - * - * @example 111-222-333 - */ - id: string; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of - * update requests. - * - * It must be a monotonically increasing number. For example, epoch time could be one way to generate the - * `updateSequenceNumber`. - * - * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently - * stored will be ignored. - * - * @example 1523494301448 - */ - updateSequenceNumber: number; - /** - * @description The human-readable name for the Remote Link. - * - * Will be shown in the UI. - * - * @example Remote Link #42 - */ - displayName: string; - /** - * Format: uri - * @description The URL to this Remote Link in your system. - */ - url: string; - /** - * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', - * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' - * - * @example security - * @enum {string} - */ - type: - | "document" - | "alert" - | "test" - | "security" - | "logFile" - | "prototype" - | "coverage" - | "bugReport" - | "other"; - /** - * @description An optional description to attach to this Remote Link. - * - * This may be anything that makes sense in your system. - * - * @example Remote Link #42 with more information in this description - */ - description?: string; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - /** @description The entities to associate the Remote Link information with. */ - associations?: ( - | { - /** - * @description Defines the asssociation type. - * - * @example issueKeys - * @enum {string} - */ - associationType: "issueKeys"; - /** - * @description The Jira issue keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - | { - /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - )[]; - /** - * RemoteLinkStatus - * @description The status of a Remote Link. - */ - status?: { - /** - * @description Appearance is a fixed set of appearance types affecting the colour - * of the status lozenge in the UI. The colours they correspond to are - * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. - * - * @example inprogress - * @enum {string} - */ - appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; - /** - * @description The human-readable description for the Remote Link status. - * - * Will be shown in the UI. - * - * @example ANOMALOUS - */ - label: string; - }; - /** - * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they - * registered. Indicates which actions this Remote Link has. - * - * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. - * - * @example [ - * "action-111-222-333", - * "action-444-555-666" - * ] - */ - actionIds?: string[]; - /** - * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the - * templateUrl the provider registered their available actions with. - */ - attributeMap?: { - [key: string]: string; - }; - }[]; - /** - * ProviderMetadata - * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is - * not considered private information. Hence, it may not contain personally identifiable information. + * @example [ + * "111-222-333", + * "444-555-666" + * ] */ - providerMetadata?: { - /** - * @description An optional name of the source of the Remote Links data. - * @example Opsgenie 6.10.2 - */ - product?: string; - }; + workspaceIds: string[]; }; }; }; responses: { - /** - * @description Submission accepted. Each submitted Remote Link that is of a valid format will be eventually available in - * Jira. - * - * Details of which Remote Links were submitted and which failed submission (due to data format problems etc.) - * are available in the response object. - */ + /** @description Submission accepted. Each submitted Operations Workspace ID will be linked to Jira. */ 202: { content: { - "application/json": { - /** - * @description The IDs of Remote Links that have been accepted for submission. - * - * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or if - * the submitted data for that Remote Link does not match the required schema. - * - * Note that a Remote Link that isn't updated due to it's `updateSequenceNumber` being out of order is not - * considered a failed submission. + "application/json": { + /** + * @description The IDs of Operations Workspaces that have been linked to the Jira site in this request. * * @example [ * "111-222-333", * "444-555-666" * ] */ - acceptedRemoteLinks?: string[]; - /** - * @description Details of Remote Links that have not been accepted for submission, usually due to a problem with the request data. - * - * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or - * if the submitted data for the Remote Link does not match the required schema. - * - * The object (if present) will be keyed by Remote Link ID and include any errors associated with that - * Remote Link that have prevented it being submitted. - */ - rejectedRemoteLinks?: { - [key: string]: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - /** @description Issue keys or services IDs or keys that are not known on this Jira instance (if any). */ - unknownAssociations?: ( - | { - /** - * @description Defines the asssociation type. - * - * @example issueKeys - * @enum {string} - */ - associationType: "issueKeys"; - /** - * @description The Jira issue keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - | { - /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - )[]; + acceptedWorkspaceIds?: string[]; }; }; }; - /** - * @description Request has incorrect format. - * - * Note that in the case of an individual Remote Link having an invalid format (rather than the request as a - * whole) the response for the request will be a 202 and details of the invalid Remote Link will be contained - * in the response object. - */ + /** @description Request has incorrect format. */ 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -10112,21 +12217,21 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description Data is too large. Submit fewer Remote Links in each payload. */ + /** @description Set of Ids is too large. Submit fewer Ids in each payload. */ 413: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description API rate limit has been exceeded. */ @@ -10141,89 +12246,51 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete Remote Links by Property - * @description Bulk delete all Remote Links data that match the given request. + * Delete Operations Workpaces by Id + * @description Bulk delete all Operations Workspaces that match the given request. * - * One or more query params must be supplied to specify Properties to delete by. - * Optional param `_updateSequenceNumber` is no longer supported. If more than one Property is provided, - * data will be deleted that matches ALL of the Properties (e.g. treated as an AND). - * - * See the documentation for the `submitRemoteLinks` operation for more details. - * - * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 - * - * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been - * deleted successfully (if needed). - * - * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. + * + * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ - deleteRemoteLinksByProperty: { + deleteWorkspaces: { parameters: { - query?: { - /** - * @deprecated - * @description This parameter usage is no longer supported. - * - * An optional `_updateSequenceNumber` to use to control deletion. - * - * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. - * - * If not provided, all stored data that matches the request will be deleted. - */ - _updateSequenceNumber?: number; - /** - * @description Free-form query parameters to specify which properties to delete by. Properties refer to the arbitrary - * information the provider tagged Remote Links with previously. - * - * For example, if the provider previously tagged a remote link with accountId: - * "properties": { - * "accountId": "account-123" - * } - * - * And now they want to delete Remote Links in bulk by that specific accountId as follows: - * e.g. DELETE /bulkByProperties?accountId=account-123 - */ - params?: Record; - }; header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that - * corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { - /** @description Delete accepted. Data will eventually be removed from Jira. */ + /** @description Delete accepted. Workspaces and relate data will eventually be removed from Jira. */ 202: { content: never; }; - /** @description Request has incorrect format (e.g. missing at least one Property param). */ + /** @description Request has incorrect format. */ 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -10231,7 +12298,7 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -10249,217 +12316,450 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get a Remote Link by ID - * @description Retrieve the currently stored Remote Link data for the given ID. + * Get all Operations Workspace IDs or a specific Operations Workspace by ID + * @description Retrieve the either all Operations Workspace IDs associated with the Jira site or a specific Operations Workspace ID for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * - * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. + * e.g. GET /workspace?workspaceId=111-222-333 + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ - getRemoteLinkById: { + getWorkspaces: { parameters: { header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that - * corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; - path: { - /** @description The ID of the Remote Link to fetch. */ - remoteLinkId: string; - }; }; responses: { - /** @description The Remote Link data currently stored for the given ID. */ + /** @description Either the ID provided if stored or a list of available IDs. */ 200: { content: { "application/json": { /** - * @description The schema version used for this data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion?: "1.0"; - /** - * @description The identifier for the Remote Link. Must be unique for a given Provider. - * - * @example 111-222-333 - */ - id: string; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of - * update requests. - * - * It must be a monotonically increasing number. For example, epoch time could be one way to generate the - * `updateSequenceNumber`. - * - * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently - * stored will be ignored. - * - * @example 1523494301448 - */ - updateSequenceNumber: number; - /** - * @description The human-readable name for the Remote Link. - * - * Will be shown in the UI. - * - * @example Remote Link #42 - */ - displayName: string; - /** - * Format: uri - * @description The URL to this Remote Link in your system. - */ - url: string; - /** - * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', - * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' - * - * @example security - * @enum {string} - */ - type: - | "document" - | "alert" - | "test" - | "security" - | "logFile" - | "prototype" - | "coverage" - | "bugReport" - | "other"; - /** - * @description An optional description to attach to this Remote Link. - * - * This may be anything that makes sense in your system. + * Operations Workspace Ids + * @description The IDs of Operations Workspaces that are available to this Jira site. * - * @example Remote Link #42 with more information in this description + * @example [ + * "111-222-333", + * "444-555-666" + * ] */ - description?: string; + workspaceIds: string[]; + }; + }; + }; + /** @description Missing a JWT token, or token is invalid. */ + 401: { + content: never; + }; + /** + * @description The JWT token used does not correspond to an app that defines the Operations Information module, + * or the app does not define the 'READ' scope. + */ + 403: { + content: never; + }; + /** @description No data found for the given Workspace ID. */ + 404: { + content: never; + }; + /** @description API rate limit has been exceeded. */ + 429: { + content: never; + }; + /** @description Service is unavailable due to maintenance or other reasons. */ + 503: { + content: never; + }; + /** @description An unknown error has occurred. */ + default: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; + }; + }; + /** + * Submit Incident or Review data + * @description Update / insert Incident or Review data. + * + * Incidents and reviews are identified by their ID, and existing Incident and Review data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. + * + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getIncidentById or getReviewById operation can be used to confirm that data has been stored successfully (if needed). + * + * In the case of multiple Incidents and Reviews being submitted in one request, each is validated individually prior to submission. Details of which entities failed submission (if any) are available in the response object. + * + * A maximum of 1000 incidents can be submitted in one request. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'WRITE' scope for Connect apps. + */ + submitEntity: { + parameters: { + header: { + /** + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. + * + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. + * + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. + */ + Authorization: string; + }; + }; + /** @description Incident data to submit. */ + requestBody: { + content: { + "application/json": { + /** + * Properties + * @description Properties assigned to incidents/components/review data that can then be used for delete / query operations. + * + * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. + * + * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. + * + * @example { + * "accountId": "account-234", + * "projectId": "project-123" + * } + */ + properties?: { + [key: string]: string; + }; + /** + * ProviderMetadata + * @description Information about the provider. This is useful for auditing, logging, debugging, + * and other internal uses. It is not considered private information. Hence, it may not contain personally + * identifiable information. + */ + providerMetadata?: { /** - * Format: date-time - * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. - * - * @example 2018-01-20T23:27:25.000Z + * @description An optional name of the source of the incidents. + * @example Atlassian Operations Platform 2.1.0 */ - lastUpdated: string; - /** @description The entities to associate the Remote Link information with. */ - associations?: ( - | { - /** - * @description Defines the asssociation type. - * - * @example issueKeys - * @enum {string} - */ - associationType: "issueKeys"; - /** - * @description The Jira issue keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - | { + product?: string; + }; + } & (({ + incidents?: ({ + /** + * @description The IncidentData schema version used for this incident data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion: "1.0"; + /** + * @description The identifier for the Incident. Must be unique for a given Provider. + * + * @example 111-222-333 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Incident in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Incident and increment that on each update to Jira). + * + * Updates for a Incident that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceNumber: number; + /** + * @description The IDs of the Components impacted by this Incident. Must be unique for a given Provider. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + affectedComponents: string[]; + /** + * @description The human-readable summary for the Incident. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example Unable to log into VPN + */ + summary: string; + /** + * @description A description of the issue in Markdown format. Will be shown in the UI and used when creating Jira Issues. + * + * @example null + */ + description: string; + /** + * Format: uri + * @description A URL users can use to link to a summary view of this incident, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the incident in that project). + * + * @example https://example.com/project/ITHELPDESK-9/summary + */ + url: string; + /** + * Format: date-time + * @description The timestamp to present to the user that shows when the Incident was raised. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + createdDate: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Incident was updated. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * IncidentSeverity + * @description Severity information for a single Incident. + * + * This is the severity information that will be presented to the user on e.g. the Jira Incidents screen. + */ + severity?: { + /** + * @description The severity level of the Incident with P1 being the highest and P5 being the lowest + * @example P1 + * @enum {string} + */ + level: "P1" | "P2" | "P3" | "P4" | "P5" | "unknown"; + }; + /** + * IncidentStatus + * @description The current status of the Incident. + * + * @example open + * @enum {string} + */ + status: "open" | "resolved" | "unknown"; + /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ + associations?: ({ /** - * @description Defines the asssociation type. - * - * @example serviceIdOrKeys + * @description the type of the association being made + * @example issueIdOrKeys * @enum {string} */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Remote Link information with. - * - * The number of values counted across all associationTypes (issueKeys, - * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - } - )[]; - /** - * RemoteLinkStatus - * @description The status of a Remote Link. - */ - status?: { - /** - * @description Appearance is a fixed set of appearance types affecting the colour - * of the status lozenge in the UI. The colours they correspond to are - * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. + associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; + values?: string[]; + })[]; + })[]; + }) | ({ + reviews?: ({ + /** + * @description The PostIncidentReviewData schema version used for this post-incident review data. * - * @example inprogress + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 * @enum {string} */ - appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; + schemaVersion: "1.0"; /** - * @description The human-readable description for the Remote Link status. + * @description The identifier for the Review. Must be unique for a given Provider. * - * Will be shown in the UI. + * @example 111-222-333 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Review in the case of out-of-order receipt of update requests. * - * @example ANOMALOUS + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Review and increment that on each update to Jira). + * + * Updates for a Review that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 */ - label: string; - }; + updateSequenceNumber: number; + /** + * @description The IDs of the Incidents covered by this Review. Must be unique for a given Provider. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + reviews: string[]; + /** + * @description The human-readable summary for the Post-Incident Review. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example PIR - Unable to log into VPN + */ + summary: string; + /** + * @description A description of the review in Markdown format. Will be shown in the UI and used when creating Jira Issues. + * + * @example null + */ + description: string; + /** + * Format: uri + * @description A URL users can use to link to a summary view of this review, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the review in that project). + * + * @example https://example.com/project/ITHELPDESK-9/summary + */ + url: string; + /** + * Format: date-time + * @description The timestamp to present to the user that shows when the Review was raised. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + createdDate: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Review was updated. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * Review status + * @description The current status of the Post-Incident Review. + * + * @example open + * @enum {string} + */ + status: "in progress" | "outstanding actions" | "completed" | "unknown"; + /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ + associations?: ({ + /** + * @description the type of the association being made + * @example issueIdOrKeys + * @enum {string} + */ + associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; + values?: string[]; + })[]; + })[]; + })); + }; + }; + responses: { + /** + * @description Submission accepted. Each submitted Incident that is of a valid format will be eventually available in Jira. + * + * Details of which Incidents were submitted and which failed submission (due to data format problems etc.) are available in the response object. + */ + 202: { + content: { + "application/json": { /** - * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they - * registered. Indicates which actions this Remote Link has. + * @description The IDs of Incidents that have been accepted for submission. * - * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. + * A Incident may be rejected if it was only associated with unknown project keys. + * + * Note that a Incident that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. * * @example [ - * "action-111-222-333", - * "action-444-555-666" + * "111-222-333", + * "444-555-666" * ] */ - actionIds?: string[]; + acceptedIncidents?: string[]; /** - * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the - * templateUrl the provider registered their available actions with. + * @description Details of Incidents that have not been accepted for submission, usually due to a problem with the request data. + * + * The object (if present) will be keyed by Incident ID and include any errors associated with that Incident that have prevented it being submitted. */ - attributeMap?: { - [key: string]: string; + failedIncidents?: { + [key: string]: { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; + /** + * @description Project keys that are not known on this Jira instance (if any). + * + * These may be invalid keys (e.g. `UTF` is sometimes incorrectly identified as a Jira project key), or they may be for projects that no longer exist. + * + * If a Incident has been associated with project keys other than those in this array it will still be stored against those valid keys. + * If a Incident was only associated with project keys deemed to be invalid it won't be persisted. + */ + unknownProjectKeys?: string[]; }; }; }; + /** + * @description Request has incorrect format. + * + * Note that in the case of an individual Incident having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Incident will be contained in the response object. + */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, - * or the app does not define the 'READ' scope. + * @description The JWT token used does not correspond to an app that defines the Operations Information module, + * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description No Remote Link data found for the given ID. */ - 404: { - content: never; + /** @description Data is too large. Submit fewer Incidents in each payload. */ + 413: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; }; /** @description API rate limit has been exceeded. */ 429: { @@ -10473,67 +12773,65 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete a Remote Link by ID - * @description Delete the Remote Link data currently stored for the given ID. + * Delete Incidents or Review by Property + * @description Bulk delete all Entties that match the given request. * - * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been - * deleted successfully (if needed). + * One or more query params must be supplied to specify Properties to delete by. + * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). + * See the documentation for the submitEntity operation for more details. * - * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. + * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 + * + * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteRemoteLinkById: { + deleteEntityByProperty: { parameters: { - query?: { - /** - * @deprecated - * @description This parameter usage is no longer supported. - * - * An optional `_updateSequenceNumber` to use to control deletion. - * - * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. - * This can be used help ensure submit/delete requests are applied correctly if issued close together. - */ - _updateSequenceNumber?: number; - }; header: { /** - * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that - * corresponds to an app installed in Jira. + * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. - * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; - path: { - /** @description The ID of the Remote Link to fetch. */ - remoteLinkId: string; - }; }; responses: { - /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; + /** @description Request has incorrect format (e.g. missing at least one Property param). */ + 400: { + content: { + "application/json": { + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; + }; + }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -10551,66 +12849,156 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Submit Security Workspaces to link - * @description Insert Security Workspace IDs to establish a relationship between them and the Jira site the app is installed on. If a relationship between the workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. + * Get a Incident by ID + * @description Retrieve the currently stored Incident data for the given ID. * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. - * This resource requires the 'WRITE' scope for Connect apps. + * The result will be what is currently stored, ignoring any pending updates or deletes. + * + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'READ' scope for Connect apps. */ - submitWorkspaces: { + getIncidentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; - }; - /** @description Security Workspace IDs to submit. */ - requestBody: { - content: { - "application/json": { - /** - * Security Workspace IDs - * @description The IDs of Security Workspaces to link to this Jira site. These must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(\/[a-zA-Z0-9\\-_.~@:{}=]+)*` - * - * @example [ - * "111-222-333", - * "444-555-666" - * ] - */ - workspaceIds: string[]; - }; + path: { + /** @description The ID of the Incident to fetch. */ + incidentId: string; }; }; responses: { - /** @description Submission accepted. Each submitted Security Workspace ID will be linked to Jira. */ - 202: { - content: never; - }; - /** @description Request has incorrect format. */ - 400: { + /** @description The Incident data currently stored for the given ID. */ + 200: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** + * @description The IncidentData schema version used for this incident data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion: "1.0"; + /** + * @description The identifier for the Incident. Must be unique for a given Provider. + * + * @example 111-222-333 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Incident in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Incident and increment that on each update to Jira). + * + * Updates for a Incident that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceNumber: number; + /** + * @description The IDs of the Components impacted by this Incident. Must be unique for a given Provider. + * + * @example [ + * "111-222-333", + * "444-555-666" + * ] + */ + affectedComponents: string[]; + /** + * @description The human-readable summary for the Incident. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example Unable to log into VPN + */ + summary: string; + /** + * @description A description of the issue in Markdown format. Will be shown in the UI and used when creating Jira Issues. + * + * @example null + */ + description: string; + /** + * Format: uri + * @description A URL users can use to link to a summary view of this incident, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the incident in that project). + * + * @example https://example.com/project/ITHELPDESK-9/summary + */ + url: string; + /** + * Format: date-time + * @description The timestamp to present to the user that shows when the Incident was raised. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + createdDate: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Incident was updated. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * IncidentSeverity + * @description Severity information for a single Incident. + * + * This is the severity information that will be presented to the user on e.g. the Jira Incidents screen. + */ + severity?: { + /** + * @description The severity level of the Incident with P1 being the highest and P5 being the lowest + * @example P1 + * @enum {string} + */ + level: "P1" | "P2" | "P3" | "P4" | "P5" | "unknown"; + }; + /** + * IncidentStatus + * @description The current status of the Incident. + * + * @example open + * @enum {string} + */ + status: "open" | "resolved" | "unknown"; + /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ + associations?: ({ + /** + * @description the type of the association being made + * @example issueIdOrKeys + * @enum {string} + */ + associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; + values?: string[]; + })[]; + }; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -10618,22 +13006,15 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, - * or the app does not define the 'WRITE' scope. + * @description The JWT token used does not correspond to an app that defines the Operations Information module, + * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description Set of Ids is too large. Submit fewer Ids in each payload. */ - 413: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; + /** @description No data found for the given Incident ID. */ + 404: { + content: never; }; /** @description API rate limit has been exceeded. */ 429: { @@ -10647,59 +13028,52 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete linked Security Workspaces - * @description Bulk delete all linked Security Workspaces that match the given request. + * Delete a Incident by ID + * @description Delete the Incident data currently stored for the given ID. * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. - * This resource requires the 'DELETE' scope for Connect apps. + * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). * - * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. */ - deleteLinkedWorkspaces: { + deleteIncidentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; + path: { + /** @description The ID of the Incident to delete. */ + incidentId: string; + }; }; responses: { - /** @description Delete accepted. Workspaces and related data will eventually be removed from Jira. */ + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; - /** @description Request has incorrect format. */ - 400: { - content: { - "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; - }; - }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -10717,52 +13091,141 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get linked Security Workspaces - * @description Retrieve all Security Workspaces linked with the Jira site. + * Get a Review by ID + * @description Retrieve the currently stored Review data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ - getLinkedWorkspaces: { + getReviewById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; + path: { + /** @description The ID of the Review to fetch. */ + reviewId: string; + }; }; responses: { - /** @description A list of all stored workspace IDs. */ + /** @description The Review data currently stored for the given ID. */ 200: { content: { "application/json": { /** - * Security Workspace IDs - * @description The IDs of Security Workspaces that are linked to this Jira site. + * @description The PostIncidentReviewData schema version used for this post-incident review data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 + * @enum {string} + */ + schemaVersion: "1.0"; + /** + * @description The identifier for the Review. Must be unique for a given Provider. + * + * @example 111-222-333 + */ + id: string; + /** + * Format: int64 + * @description An ID used to apply an ordering to updates for this Review in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Review and increment that on each update to Jira). + * + * Updates for a Review that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 + */ + updateSequenceNumber: number; + /** + * @description The IDs of the Incidents covered by this Review. Must be unique for a given Provider. * * @example [ * "111-222-333", * "444-555-666" * ] */ - workspaceIds: string[]; + reviews: string[]; + /** + * @description The human-readable summary for the Post-Incident Review. Will be shown in the UI. + * + * If not provided, will use the ID for display. + * + * @example PIR - Unable to log into VPN + */ + summary: string; + /** + * @description A description of the review in Markdown format. Will be shown in the UI and used when creating Jira Issues. + * + * @example null + */ + description: string; + /** + * Format: uri + * @description A URL users can use to link to a summary view of this review, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the review in that project). + * + * @example https://example.com/project/ITHELPDESK-9/summary + */ + url: string; + /** + * Format: date-time + * @description The timestamp to present to the user that shows when the Review was raised. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + createdDate: string; + /** + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the Review was updated. + * + * Expected format is an RFC3339 formatted string. + * + * @example 2018-01-20T23:27:25.000Z + */ + lastUpdated: string; + /** + * Review status + * @description The current status of the Post-Incident Review. + * + * @example open + * @enum {string} + */ + status: "in progress" | "outstanding actions" | "completed" | "unknown"; + /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ + associations?: ({ + /** + * @description the type of the association being made + * @example issueIdOrKeys + * @enum {string} + */ + associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; + values?: string[]; + })[]; }; }; }; @@ -10771,13 +13234,13 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description No data found for the given workspace ID. */ + /** @description No data found for the given Review ID. */ 404: { content: never; }; @@ -10793,77 +13256,57 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get a linked Security Workspace by ID - * @description Retrieve a specific Security Workspace linked to the Jira site for the given workspace ID. + * Delete a Review by ID + * @description Delete the Review data currently stored for the given ID. * - * The result will be what is currently stored, ignoring any pending updates or deletes. + * Deletion is performed asynchronously. The getReviewById operation can be used to confirm that data has been deleted successfully (if needed). * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. - * This resource requires the 'READ' scope for Connect apps. + * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. + * This resource requires the 'DELETE' scope for Connect apps. */ - getLinkedWorkspaceById: { + deleteReviewById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { - /** @description The ID of the workspace to fetch. */ - workspaceId: string; + /** @description The ID of the Review to delete. */ + reviewId: string; }; }; responses: { - /** @description The Security Workspace information stored for the given ID. */ - 200: { - content: { - "application/json": { - /** - * @description The Security Workspace ID - * - * @example 111-222-333 - */ - workspaceId: string; - /** - * Format: date-time - * @description Latest date and time that the Security Workspace was updated in Jira. - * - * @example 2020-01-17T09:30:00Z - */ - updatedAt: string; - }; - }; + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ + 202: { + content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, - * or the app does not define the 'READ' scope. + * @description The JWT token used does not correspond to an app that defines the Operations Information module, + * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; - /** @description No data found for the given workspace ID. */ - 404: { - content: never; - }; /** @description API rate limit has been exceeded. */ 429: { content: never; @@ -10876,57 +13319,50 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Submit Vulnerability data - * @description Update / Insert Vulnerability data. + * Submit DevOps Components + * @description Update / insert DevOps Component data. * - * Vulnerabilities are identified by their ID, any existing Vulnerability data with the same ID will be replaced if it exists and the updateSequenceNumber of the existing data is less than the incoming data. + * Components are identified by their ID, and existing Component data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. * - * Submissions are performed asynchronously. Most updates are available within a short period of time but may take some time during peak load and/or maintenance times. The GET vulnerability endpoint can be used to confirm that data has been stored successfully (if needed). + * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getComponentById operation can be used to confirm that data has been stored successfully (if needed). * - * In the case of multiple Vulnerabilities being submitted in one request, each is validated individually prior to submission. Details of Vulnerabilities that failed submission (if any) are available in the response object. + * In the case of multiple Components being submitted in one request, each is validated individually prior to submission. Details of which Components failed submission (if any) are available in the response object. * - * A maximum of 1000 vulnerabilities can be submitted in one request. + * A maximum of 1000 components can be submitted in one request. * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ - submitVulnerabilities: { + submitComponents: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the DevOps Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; - /** @description Vulnerability data to submit. */ + /** @description DevOps Component data to submit. */ requestBody: { content: { "application/json": { - /** - * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during real-time, user-triggered actions (e.g. user closed or updated a vulnerability). "SCAN" - Data sent through some automated process (e.g. some periodically scheduled repository scan). "BACKFILL" - Data received while backfilling existing data (e.g. pushing historical vulnerabilities when re-connect a workspace). Default is "NORMAL". "NORMAL" traffic has higher priority but tighter rate limits, "SCAN" traffic has medium priority and looser limits, "BACKFILL" has lower priority and much looser limits - * - * @example SCAN - * @enum {string} - */ - operationType?: "NORMAL" | "SCAN" | "BACKFILL"; /** * Properties - * @description Properties assigned to vulnerability data that can then be used for delete / query operations. + * @description Properties assigned to incidents/components/review data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * @@ -10940,211 +13376,102 @@ export interface operations { properties?: { [key: string]: string; }; - vulnerabilities: { - /** - * @description The VulnerabilityData schema version used for this vulnerability data. - * - * Placeholder to support potential schema changes in the future. - * - * @default 1.0 - * @example 1.0 - * @enum {string} - */ - schemaVersion: "1.0"; - /** - * @description The identifier for the Vulnerability. Must be unique for a given Provider. - * - * @example 111-222-333 - */ - id: string; - /** - * Format: int64 - * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. - * - * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). - * - * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. - * - * @example 1523494301448 - */ - updateSequenceNumber: number; - /** - * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` - * - * @example 111-222-333 - */ - containerId: string; - /** - * @description The human-readable name for the Vulnerability. Will be shown in the UI. - * - * If not provided, will use the ID for display. - * - * @example curl/libcurl3 - Buffer Override - */ - displayName: string; - /** - * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). - * - * @example ## Overview - * - * - * Affected versions of this package are vulnerable to MeltLeak - */ - description: string; - /** - * Format: uri - * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. - * - * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). - * - * @example https://example.com/project/CWE-123/summary - */ - url: string; - /** - * @description The type of Vulnerability detected. - * @example sca - * @enum {string} - */ - type: "sca" | "sast" | "dast" | "unknown"; - /** - * Format: date-time - * @description The timestamp to present to the user that shows when the Vulnerability was introduced. - * - * Expected format is an RFC3339 formatted string. - * - * @example 2018-01-20T23:27:25.000Z - */ - introducedDate: string; - /** - * Format: date-time - * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. - * - * Expected format is an RFC3339 formatted string. - * - * @example 2018-01-20T23:27:25.000Z - */ - lastUpdated: string; - /** - * VulnerabilitySeverity - * @description Severity information for a single Vulnerability. - * - * This is the severity information that will be presented to the user on e.g. the Jira Security screen. - */ - severity: { + components: ({ /** - * @description The severity level of the Vulnerability. - * @example critical + * @description The DevOpsComponentData schema version used for this devops component data. + * + * Placeholder to support potential schema changes in the future. + * + * @default 1.0 + * @example 1.0 * @enum {string} */ - level: "critical" | "high" | "medium" | "low" | "unknown"; - }; - /** @description The identifying information for the Vulnerability. */ - identifiers?: { + schemaVersion: "1.0"; /** - * @description The display name of the Vulnerability identified. + * @description The identifier for the DevOps Component. Must be unique for a given Provider. * - * @example CWE-123 + * @example 111-222-333 */ - displayName: string; + id: string; /** - * Format: uri - * @description A URL users can use to link to the definition of the Vulnerability identified. + * Format: int64 + * @description An ID used to apply an ordering to updates for this DevOps Component in the case of out-of-order receipt of update requests. + * + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each DevOps Component and increment that on each update to Jira). * - * @example https://cwe.mitre.org/data/definitions/123.html + * Updates for a DevOps Component that are received with an updateSqeuenceId lower than what is currently stored will be ignored. + * + * @example 1523494301448 */ - url: string; - }[]; - /** - * VulnerabilityStatus - * @description The current status of the Vulnerability. - * - * @example open - * @enum {string} - */ - status: "open" | "closed" | "ignored" | "unknown"; - /** - * VulnerabilityAdditionalInfo - * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. - */ - additionalInfo?: { + updateSequenceNumber: number; /** - * @description The content of the additionalInfo. + * @description The human-readable name for the DevOps Component. Will be shown in the UI. * - * @example More information on the vulnerability, as a string + * @example Galactus */ - content: string; + name: string; /** - * Format: uri - * @description Optional URL linking to the information + * @description The human-readable name for the Provider that owns this DevOps Component. Will be shown in the UI. * - * @example https://example.com/project/CWE-123/additionalInfo + * @example Marvel */ - url?: string; - }; - /** @description The associations (e.g. Jira issue) to add in addition to the currently stored associations of the Security Vulnerability. */ - addAssociations?: { + providerName?: string; /** - * @description Defines the association type. + * @description A description of the DevOps Component in Markdown format. Will be shown in the UI. * - * @example issueIdOrKeys - * @enum {string} + * @example null */ - associationType: "issueIdOrKeys"; + description: string; /** - * @description The Jira issue id or keys to associate the Security information with. + * Format: uri + * @description A URL users can use to link to a summary view of this devops component, if appropriate. + * + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the component in that project). * - * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. + * @example https://example.com/project/MS/galactus/summary */ - values: string[]; - }[]; - /** @description The associations (e.g. Jira issue) to remove from currently stored associations of the Security Vulnerability. */ - removeAssociations?: { + url: string; + /** + * Format: uri + * @description A URL to display a logo representing this devops component, if available. + * + * @example https://example.com/project/MS/galactus/logo + */ + avatarUrl: string; + /** + * @description The tier of the component. Will be shown in the UI. + * + * @example Tier 1 + * @enum {string} + */ + tier: "Tier 1" | "Tier 2" | "Tier 3" | "Tier 4"; /** - * @description Defines the association type. + * @description The type of the component. Will be shown in the UI. * - * @example issueIdOrKeys + * @example Service * @enum {string} */ - associationType: "issueIdOrKeys"; + componentType: "Service" | "Application" | "Library" | "Capability" | "Cloud resource" | "Data pipeline" | "Machine learning model" | "UI element" | "Website" | "Other"; /** - * @description The Jira issue id or keys to associate the Security information with. + * Format: date-time + * @description The last-updated timestamp to present to the user the last time the DevOps Component was updated. + * + * Expected format is an RFC3339 formatted string. * - * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. + * @example 2018-01-20T23:27:25.000Z */ - values: string[]; - }[]; - /** - * Format: date-time - * @description An ISO-8601 Date-time string representing the last time the provider updated associations on this entity. - * - * Expected format is an RFC3339 formatted string. - * - * @example 2023-11-02T23:27:25.000Z - */ - associationsLastUpdated?: string; - /** - * Format: int64 - * @description A sequence number to compare when writing entity associations to the database. - * - * This can be any monotonically increasing number. A highly recommended implementation is to use epoch millis. - * - * If it is not provided it will default to being equal to the corresponding entity's `updateSequenceNumber`. - * - * Associations are written following a LastWriteWins strategy, association that are received with an associationsUpdateSequenceNumber lower than what is currently stored will be ignored. - * - * @example 1523494301448 - */ - associationsUpdateSequenceNumber?: number; - }[]; + lastUpdated: string; + })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, - * and other internal uses. Information in this property is not considered private, so it should not contain personally identifiable information + * and other internal uses. It is not considered private information. Hence, it may not contain personally + * identifiable information. */ providerMetadata?: { /** - * @description An optional name of the source of the vulnerabilities. - * @example Atlassian Security Platform 2.1.0 + * @description An optional name of the source of the incidents. + * @example Atlassian Operations Platform 2.1.0 */ product?: string; }; @@ -11153,76 +13480,63 @@ export interface operations { }; responses: { /** - * @description Submission accepted. Each Vulnerability submitted in a valid format will eventually be available in Jira. - * - * Details of any Vulnerabilities that were submitted but failed submission (due to data format problems, etc.) are available in the response object. + * @description Submission accepted. Each submitted Component that is of a valid format will be eventually available in Jira. + * Details of which Components were submitted and which failed submission (due to data format problems etc.) are available in the response object. */ 202: { content: { "application/json": { /** - * @description The IDs of Vulnerabilities that have been accepted for submission. + * @description The IDs of Components that have been accepted for submission. * - * A Vulnerability may be rejected if it was only associated with unknown project keys. + * A Component may be rejected if it was only associated with unknown project keys. * - * Note that a Vulnerability that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. + * Note that a Component that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ - acceptedVulnerabilities?: string[]; + acceptedComponents?: string[]; /** - * @description Details of Vulnerabilities that have not been accepted for submission, usually due to a problem with the request data. + * @description Details of Components that have not been accepted for submission, usually due to a problem with the request data. * - * The object (if present) will be keyed by Vulnerability ID and include any errors associated with that Vulnerability that have prevented it being submitted. + * The object (if present) will be keyed by Component ID and include any errors associated with that Component that have prevented it being submitted. */ - failedVulnerabilities?: { + failedComponents?: { [key: string]: { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; /** - * @description Associations (e.g. Service IDs) that are not known on this Jira instance (if any). + * @description Project keys that are not known on this Jira instance (if any). * - * If a Vulnerability has been associated with any other association other than those in this array it will still be stored against those valid associations. - * If a Vulnerability was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. + * These may be invalid keys (e.g. `UTF` is sometimes incorrectly identified as a Jira project key), or they may be for projects that no longer exist. + * + * If a Component has been associated with project keys other than those in this array it will still be stored against those valid keys. + * If a Component was only associated with project keys deemed to be invalid it won't be persisted. */ - unknownAssociations?: { - /** - * @description Defines the association type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Security information with. - * - * The number of values counted across all associationTypes (serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }[]; + unknownProjectKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * - * Note that in the case of an individual Vulnerability having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Vulnerability will be contained in the response object. + * Note that in the case of an individual Component having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Component will be contained in the response object. */ 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -11230,35 +13544,25 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; - /** @description Data is too large. Submit fewer Vulnerabilities in each payload. */ + /** @description Data is too large. Submit fewer Components in each payload. */ 413: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { - headers: { - /** @description The number of remaining possible requests in current rate limit window. */ - "X-RateLimit-Remaining"?: number; - /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ - "X-RateLimit-Reset"?: string; - /** @description The maximum possible requests in a window of one minute. */ - "X-RateLimit-Limit"?: number; - /** @description The number of seconds to wait before making a follow-up request. */ - "Retry-After"?: number; - }; content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ @@ -11269,39 +13573,39 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete Vulnerabilities by Property - * @description Bulk delete all Vulnerabilities that match the given request. + * Delete DevOps Components by Property + * @description Bulk delete all Components that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). - * Read the POST bulk endpoint documentation for more details. + * See the documentation for the submitComponents operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * - * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). + * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteVulnerabilitiesByProperty: { + deleteComponentsByProperty: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; @@ -11315,11 +13619,11 @@ export interface operations { 400: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ @@ -11327,7 +13631,7 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -11345,48 +13649,48 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Get a Vulnerability by ID - * @description Retrieve the currently stored Vulnerability data for the given ID. + * Get a Component by ID + * @description Retrieve the currently stored Component data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ - getVulnerabilityById: { + getComponentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { - /** @description The ID of the Vulnerability to fetch. */ - vulnerabilityId: string; + /** @description The ID of the Component to fetch. */ + componentId: string; }; }; responses: { - /** @description The Vulnerability data currently stored for the given ID. */ + /** @description The Component data currently stored for the given ID. */ 200: { content: { "application/json": { /** - * @description The VulnerabilityData schema version used for this vulnerability data. + * @description The DevOpsComponentData schema version used for this devops component data. * * Placeholder to support potential schema changes in the future. * @@ -11396,151 +13700,79 @@ export interface operations { */ schemaVersion: "1.0"; /** - * @description The identifier for the Vulnerability. Must be unique for a given Provider. + * @description The identifier for the DevOps Component. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 - * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. + * @description An ID used to apply an ordering to updates for this DevOps Component in the case of out-of-order receipt of update requests. * - * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). + * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each DevOps Component and increment that on each update to Jira). * - * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. + * Updates for a DevOps Component that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** - * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` + * @description The human-readable name for the DevOps Component. Will be shown in the UI. * - * @example 111-222-333 + * @example Galactus */ - containerId: string; + name: string; /** - * @description The human-readable name for the Vulnerability. Will be shown in the UI. + * @description The human-readable name for the Provider that owns this DevOps Component. Will be shown in the UI. * - * If not provided, will use the ID for display. - * - * @example curl/libcurl3 - Buffer Override + * @example Marvel */ - displayName: string; + providerName?: string; /** - * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). - * - * @example ## Overview - * + * @description A description of the DevOps Component in Markdown format. Will be shown in the UI. * - * Affected versions of this package are vulnerable to MeltLeak + * @example null */ description: string; /** * Format: uri - * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. + * @description A URL users can use to link to a summary view of this devops component, if appropriate. * - * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). + * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the component in that project). * - * @example https://example.com/project/CWE-123/summary + * @example https://example.com/project/MS/galactus/summary */ url: string; /** - * @description The type of Vulnerability detected. - * @example sca - * @enum {string} + * Format: uri + * @description A URL to display a logo representing this devops component, if available. + * + * @example https://example.com/project/MS/galactus/logo */ - type: "sca" | "sast" | "dast" | "unknown"; + avatarUrl: string; /** - * Format: date-time - * @description The timestamp to present to the user that shows when the Vulnerability was introduced. + * @description The tier of the component. Will be shown in the UI. * - * Expected format is an RFC3339 formatted string. + * @example Tier 1 + * @enum {string} + */ + tier: "Tier 1" | "Tier 2" | "Tier 3" | "Tier 4"; + /** + * @description The type of the component. Will be shown in the UI. * - * @example 2018-01-20T23:27:25.000Z + * @example Service + * @enum {string} */ - introducedDate: string; + componentType: "Service" | "Application" | "Library" | "Capability" | "Cloud resource" | "Data pipeline" | "Machine learning model" | "UI element" | "Website" | "Other"; /** * Format: date-time - * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. + * @description The last-updated timestamp to present to the user the last time the DevOps Component was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; - /** - * VulnerabilitySeverity - * @description Severity information for a single Vulnerability. - * - * This is the severity information that will be presented to the user on e.g. the Jira Security screen. - */ - severity: { - /** - * @description The severity level of the Vulnerability. - * @example critical - * @enum {string} - */ - level: "critical" | "high" | "medium" | "low" | "unknown"; - }; - /** @description The identifying information for the Vulnerability. */ - identifiers?: { - /** - * @description The display name of the Vulnerability identified. - * - * @example CWE-123 - */ - displayName: string; - /** - * Format: uri - * @description A URL users can use to link to the definition of the Vulnerability identified. - * - * @example https://cwe.mitre.org/data/definitions/123.html - */ - url: string; - }[]; - /** - * VulnerabilityStatus - * @description The current status of the Vulnerability. - * - * @example open - * @enum {string} - */ - status: "open" | "closed" | "ignored" | "unknown"; - /** - * VulnerabilityAdditionalInfo - * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. - */ - additionalInfo?: { - /** - * @description The content of the additionalInfo. - * - * @example More information on the vulnerability, as a string - */ - content: string; - /** - * Format: uri - * @description Optional URL linking to the information - * - * @example https://example.com/project/CWE-123/additionalInfo - */ - url?: string; - }; - /** @description The entities to associate the Security Vulnerability information with. */ - associations?: { - /** - * @description Defines the association type. - * - * @example serviceIdOrKeys - * @enum {string} - */ - associationType: "serviceIdOrKeys"; - /** - * @description The service id or keys to associate the Security information with. - * - * The number of values counted across all associationTypes (serviceIdOrKeys) must not exceed a limit of 500. - */ - values: string[]; - }[]; }; }; }; @@ -11549,13 +13781,13 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; - /** @description No data found for the given Vulnerability ID. */ + /** @description No data found for the given Component ID. */ 404: { content: never; }; @@ -11571,43 +13803,43 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; }; /** - * Delete a Vulnerability by ID - * @description Delete the Vulnerability data currently stored for the given ID. + * Delete a Component by ID + * @description Delete the Component data currently stored for the given ID. * - * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). + * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * - * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. + * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ - deleteVulnerabilityById: { + deleteComponentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * - * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. + * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * - * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). + * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { - /** @description The ID of the Vulnerability to delete. */ - vulnerabilityId: string; + /** @description The ID of the Component to delete. */ + componentId: string; }; }; responses: { - /** @description Delete has been accepted. If the data exists, it will eventually be removed from Jira. */ + /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; @@ -11616,7 +13848,7 @@ export interface operations { content: never; }; /** - * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, + * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { @@ -11634,11 +13866,11 @@ export interface operations { default: { content: { "application/json": { - /** @description A human-readable message describing the error. */ - message: string; - /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ - errorTraceId?: string; - }[]; + /** @description A human-readable message describing the error. */ + message: string; + /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ + errorTraceId?: string; + }[]; }; }; }; diff --git a/src/jira.test.ts b/src/jira.test.ts index fbf4058..89da0fa 100644 --- a/src/jira.test.ts +++ b/src/jira.test.ts @@ -14,7 +14,7 @@ function createTestInstance(actualOptions: Partial = {}) { timeout: actualOptions.timeout || undefined, base: actualOptions.base || "", intermediatePath: actualOptions.intermediatePath, - bearer: actualOptions.bearer || null, + bearer: actualOptions.bearer || undefined, }; if ("axios" in actualOptions) { finalOptions.axios = actualOptions.axios; @@ -40,8 +40,8 @@ describe("Jira API Tests", () => { expect(jira.protocol).to.eql("http"); expect(jira.host).to.eql("jira.somehost.com"); expect(jira.port).to.eql(8080); - expect(jira.baseOptions.auth.username).to.eql("someusername"); - expect(jira.baseOptions.auth.password).to.eql("somepassword"); + expect(jira.baseOptions.auth?.username).to.eql("someusername"); + expect(jira.baseOptions.auth?.password).to.eql("somepassword"); expect(jira.apiVersion).to.eql(2); }); @@ -59,7 +59,7 @@ describe("Jira API Tests", () => { bearer: "testBearer", }); - expect(jira.baseOptions.headers.Authorization).to.eql("Bearer testBearer"); + expect(jira.baseOptions.headers?.Authorization).to.eql("Bearer testBearer"); }); it("Constructor with timeout", () => { @@ -263,7 +263,11 @@ describe("Jira API Tests", () => { try { const result = await jira.doRequest({}); } catch (e) { - expect(e.message).toBe("timeout of 1ms exceeded"); + if (e instanceof Error) { + expect(e?.message).toBe("timeout of 1ms exceeded"); + } else { + throw new Error("Expected an error") + } } }); @@ -280,8 +284,11 @@ describe("Jira API Tests", () => { try { await jira.doRequest({}); } catch (error) { - expect(axios.isAxiosError(error)).toBe(true); - expect(error.response?.status).toBe(400); + if (error && axios.isAxiosError(error)) { + expect(error.response?.status).toBe(400); + } else { + expect(axios.isAxiosError(error)).toBe(true); + } } }); diff --git a/src/jira.ts b/src/jira.ts index 8bb16a2..737132b 100644 --- a/src/jira.ts +++ b/src/jira.ts @@ -2,10 +2,11 @@ import axios, { Axios, AxiosInstance, AxiosRequestConfig } from "axios"; import { Agent } from "https"; import { components, operations as cloudOperations } from "./generated/openapi-cloud"; import { operations } from "./generated/openapi-software"; +import { BinaryLike } from "node:crypto"; export interface MakeUrlParams { pathname?: string; - query?: Record; + query?: Record; intermediatePath?: string; encode?: boolean; } @@ -52,10 +53,10 @@ export type PaginationParams = { export class JiraApi { protocol: string; host: string; - port: number; + port?: number; apiVersion: number; base: string; - intermediatePath: string; + intermediatePath?: string; axios: AxiosInstance; httpsAgent?: Agent; webhookVersion: string; @@ -69,13 +70,13 @@ export class JiraApi { constructor(options: JiraApiOptions) { this.protocol = options.protocol || "https"; this.host = options.host; - this.port = options.port || null; + this.port = options.port; this.apiVersion = options.apiVersion || 2; this.base = options.base || ""; this.intermediatePath = options.intermediatePath; // This is so we can fake during unit tests - if ("axios" in options) { + if ("axios" in options && options.axios) { this.axios = options.axios; } else if ("strictSSL" in options || "ca" in options) { this.httpsAgent = new Agent({ rejectUnauthorized: options.strictSSL ?? true, ca: options.ca }); @@ -128,11 +129,17 @@ export class JiraApi { const uri = new URL("http://localhost"); uri.protocol = this.protocol; uri.hostname = this.host; - uri.port = this.port?.toString(); + if (this.port) { + uri.port = this.port.toString(); + } + uri.pathname = `${this.base}${tempPath}${pathname}`; for (const key in query) { - uri.searchParams.append(key, query[key].toString()); + const value = query[key] + if (value) { + uri.searchParams.append(key, value.toString()); + } } return uri.toString(); } @@ -253,7 +260,7 @@ export class JiraApi { ); return { mimeType: response.headers["content-type"], - content: response.data, + content: Buffer.from(response.data), }; } @@ -678,16 +685,15 @@ export class JiraApi { * * [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#d2e3756) */ - searchUsers({ username, query, startAt, maxResults }: cloudOperations["findUsers"]["parameters"]["query"]): Promise<(components["schemas"]["User"][])> { + searchUsers(parameters: cloudOperations["findUsers"]["parameters"]["query"]): Promise<(components["schemas"]["User"][])> { return this.doRequest( this.makeRequestHeader( this.makeUri({ pathname: "/user/search", query: { - username, - query, - startAt: startAt || 0, - maxResults: maxResults || 50, + ...parameters, + startAt: parameters?.startAt || 0, + maxResults: parameters?.maxResults || 50, }, }), ), @@ -980,7 +986,7 @@ export class JiraApi { this.makeRequestHeader( this.makeUri({ pathname: `/component/${id}`, - query: moveIssuesTo ? { moveIssuesTo } : null, + query: moveIssuesTo ? { moveIssuesTo } : undefined, }), { method: "DELETE", @@ -1608,10 +1614,12 @@ export class JiraApi { * [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#api/2/issue/{issueIdOrKey}/attachments-addAttachment) * @param issueId - issue id * @param readStream - readStream object from fs + * @param mimeType - mime type of attachment, this used by jira to preview files + * @param originalFileName - the original (or new) file name for the attachment */ - addAttachmentOnIssue(issueId: string, readStream: Buffer) { + addAttachmentOnIssue(issueId: string, readStream: Buffer | BinaryLike, mimeType?: string, originalFileName?: string) { const formData = new FormData(); - formData.append("file", new Blob([readStream], { type: "application/octet-stream" })); + formData.append("file", new Blob([readStream], { type: mimeType ?? "application/octet-stream" }), originalFileName); return this.doRequest( this.makeRequestHeader( this.makeUri({ diff --git a/tsconfig.json b/tsconfig.json index 2d952af..9874bec 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,10 @@ "declaration": true, "isolatedModules": true, "skipLibCheck": true, + "strict": true, + "target": "esnext", + "module": "commonjs", + "lib": ["es2015"], "outDir": "lib", "baseUrl": "." },