@keboola/api-client 44.0.0 → 46.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/ManagementSessionMintError-5FFyvBZi.js +36 -0
- package/dist/ManagementSessionMintError-5FFyvBZi.js.map +1 -0
- package/dist/ManagementSessionMintError-Bm8s6yDB.cjs +47 -0
- package/dist/ManagementSessionMintError-Bm8s6yDB.cjs.map +1 -0
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/{appLogs-BS6ViVGR.d.ts → appLogs-DGIctwbb.d.ts} +2 -2
- package/dist/{appLogs-C9YlJ2g8.d.cts → appLogs-Dl0v684o.d.cts} +2 -2
- package/dist/apps/index.d.cts +3 -3
- package/dist/apps/index.d.ts +3 -3
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/auth/index.d.cts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/types.d.cts +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/{authClient-CBVAT3v9.d.cts → authClient-DSa5t2Ft.d.cts} +27 -33
- package/dist/{authClient-CRumc934.d.ts → authClient-ZiaKSKpp.d.ts} +27 -33
- package/dist/billing/index.d.cts +1 -1
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/types.d.cts +1 -1
- package/dist/billing/types.d.ts +1 -1
- package/dist/chat/index.d.cts +2 -2
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/types.d.cts +1 -1
- package/dist/chat/types.d.ts +1 -1
- package/dist/dataScience/index.d.cts +2 -2
- package/dist/dataScience/index.d.ts +2 -2
- package/dist/dataScience/types.d.cts +2 -2
- package/dist/dataScience/types.d.ts +2 -2
- package/dist/developerPortal/index.d.cts +2 -2
- package/dist/developerPortal/index.d.ts +2 -2
- package/dist/developerPortal/types.d.cts +1 -1
- package/dist/developerPortal/types.d.ts +1 -1
- package/dist/domain/permissions/index.cjs +1 -1
- package/dist/domain/permissions/index.d.cts +2 -2
- package/dist/domain/permissions/index.d.ts +2 -2
- package/dist/domain/permissions/index.js +1 -1
- package/dist/editor/index.d.cts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.d.cts +3 -3
- package/dist/import/index.d.ts +3 -3
- package/dist/{index-DzGmgUvQ.d.ts → index-BP3choXr.d.ts} +578 -526
- package/dist/{index-04pgr-EO.d.cts → index-BhDxP0x4.d.cts} +4 -4
- package/dist/{index-zyxZVJnd.d.ts → index-BnPYPXGQ.d.ts} +3 -3
- package/dist/{index-D9UsQOuT.d.cts → index-Bt43tKyu.d.cts} +5 -5
- package/dist/{index-BVhHt5lx.d.cts → index-BzhLY7el.d.cts} +15 -2
- package/dist/{index-CWPi7lBF.d.ts → index-CH5Sg3rk.d.ts} +6 -6
- package/dist/{index-Cvkrjh--.d.cts → index-CTKC-mwi.d.cts} +30 -4
- package/dist/{index-DkCXaYsn.d.cts → index-CiwWDu-q.d.cts} +3 -3
- package/dist/{index-DINB7vsV.d.cts → index-D-4TT5yW.d.cts} +4 -4
- package/dist/{index-Bf8dr2KQ.d.ts → index-DCAnnlcL.d.ts} +3 -3
- package/dist/{index-CA6QxbhZ.d.ts → index-DCxVLGHH.d.ts} +239 -236
- package/dist/{index-Dd40ojPr.d.cts → index-DQwjlSJi.d.cts} +6 -6
- package/dist/{index-BCgmwncs.d.ts → index-DRaVzOLM.d.ts} +5 -5
- package/dist/{index-BMiZx-4_.d.cts → index-DS6O4UDB.d.cts} +4 -4
- package/dist/{index-B72LTF-k.d.ts → index-DWFxcmVD.d.ts} +4 -4
- package/dist/{index-CGCXR_6Q.d.ts → index-DXcTukgn.d.ts} +4 -4
- package/dist/{index-DkvrbR2i.d.cts → index-GVxpBH6j.d.cts} +239 -236
- package/dist/{index-BgR5zcjJ.d.ts → index-PyTPrtaL.d.ts} +15 -2
- package/dist/{index-R-w0Zncz.d.ts → index-se5ee8U1.d.ts} +4 -4
- package/dist/{index-DZcQUZaO.d.cts → index-syAYY5LC.d.cts} +578 -526
- package/dist/{index-BHWTa4YN.d.cts → index-x8ET_BTN.d.cts} +3 -3
- package/dist/{index-CX8GAP2g.d.ts → index-yJ0HrxY6.d.ts} +30 -4
- package/dist/index.cjs +36 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +33 -9
- package/dist/index.js.map +1 -1
- package/dist/{jobStatus-CcNlIy5R.cjs → jobStatus-B0E-MZ9I.cjs} +2 -2
- package/dist/{jobStatus-CcNlIy5R.cjs.map → jobStatus-B0E-MZ9I.cjs.map} +1 -1
- package/dist/{jobStatus-CDp4r5JQ.js → jobStatus-BJdbZ72V.js} +2 -2
- package/dist/{jobStatus-CDp4r5JQ.js.map → jobStatus-BJdbZ72V.js.map} +1 -1
- package/dist/kaiAgent/index.d.cts +2 -2
- package/dist/kaiAgent/index.d.ts +2 -2
- package/dist/kaiAgent/types.d.cts +1 -1
- package/dist/kaiAgent/types.d.ts +1 -1
- package/dist/management/index.cjs +2 -1
- package/dist/management/index.d.cts +2 -2
- package/dist/management/index.d.ts +2 -2
- package/dist/management/index.js +2 -2
- package/dist/management/types.d.cts +1 -1
- package/dist/management/types.d.ts +1 -1
- package/dist/{management-C5lf9nsU.cjs → management-0cWVLHei.cjs} +25 -6
- package/dist/management-0cWVLHei.cjs.map +1 -0
- package/dist/{management-WAtKH6Tu.js → management-eg4Ig-Cx.js} +18 -5
- package/dist/management-eg4Ig-Cx.js.map +1 -0
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/types.d.cts +1 -1
- package/dist/metastore/types.d.ts +1 -1
- package/dist/microsoftGraph/index.d.cts +3 -3
- package/dist/microsoftGraph/index.d.ts +3 -3
- package/dist/microsoftGraph/types.d.cts +2 -2
- package/dist/microsoftGraph/types.d.ts +2 -2
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/notifications/types.d.cts +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/oauth/index.d.cts +2 -2
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/omnisearch/index.d.cts +2 -2
- package/dist/omnisearch/index.d.ts +2 -2
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/{project-B8wtlstY.d.cts → project-BN7YRWFS.d.cts} +8 -2
- package/dist/{project-DWwZv66D.js → project-BXLFrWJ6.js} +7 -1
- package/dist/project-BXLFrWJ6.js.map +1 -0
- package/dist/{project-BCc3mpAy.d.ts → project-BpWTnoQ_.d.ts} +8 -2
- package/dist/{project-BvFi19K_.cjs → project-CpgplgCr.cjs} +7 -1
- package/dist/project-CpgplgCr.cjs.map +1 -0
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/queryService/types.d.cts +1 -1
- package/dist/queryService/types.d.ts +1 -1
- package/dist/{queryService-OgdbrBjA.js → queryService-Blfz59Ms.js} +2 -2
- package/dist/{queryService-OgdbrBjA.js.map → queryService-Blfz59Ms.js.map} +1 -1
- package/dist/{queryService-e2ql5eev.cjs → queryService-RlNYw7LG.cjs} +2 -2
- package/dist/{queryService-e2ql5eev.cjs.map → queryService-RlNYw7LG.cjs.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +9 -3
- package/dist/queue/index.d.ts +9 -3
- package/dist/queue/index.js +1 -1
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-DGoMbK1X.cjs → queue-BrgRdtOr.cjs} +2 -2
- package/dist/{queue-DGoMbK1X.cjs.map → queue-BrgRdtOr.cjs.map} +1 -1
- package/dist/{queue-BZwZuZZx.js → queue-CNvR-M23.js} +2 -2
- package/dist/{queue-BZwZuZZx.js.map → queue-CNvR-M23.js.map} +1 -1
- package/dist/scheduler/index.d.cts +2 -2
- package/dist/scheduler/index.d.ts +2 -2
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/{schema-DJa9WBjR.d.cts → schema-BUyMwQnM.d.cts} +7 -1
- package/dist/{schema-DJa9WBjR.d.ts → schema-BUyMwQnM.d.ts} +7 -1
- package/dist/sdk/configurations/index.d.cts +4 -4
- package/dist/sdk/configurations/index.d.ts +4 -4
- package/dist/sdk/developerPortal/index.d.cts +29 -3
- package/dist/sdk/developerPortal/index.d.ts +29 -3
- package/dist/sdk/kaiMemory/index.d.cts +1 -1
- package/dist/sdk/kaiMemory/index.d.ts +1 -1
- package/dist/sdk/kaiMemory/types.d.cts +1 -1
- package/dist/sdk/kaiMemory/types.d.ts +1 -1
- package/dist/sdk/queryService/index.cjs +1 -1
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/queryService/index.js +1 -1
- package/dist/sdk/semanticLayer/index.cjs +1 -2
- package/dist/sdk/semanticLayer/index.d.cts +3 -20
- package/dist/sdk/semanticLayer/index.d.ts +3 -20
- package/dist/sdk/semanticLayer/index.js +2 -2
- package/dist/sdk/semanticLayer/types.d.cts +2 -2
- package/dist/sdk/semanticLayer/types.d.ts +2 -2
- package/dist/sdk/storage/index.d.cts +1 -1
- package/dist/sdk/storage/index.d.ts +1 -1
- package/dist/sdk/tag/index.d.cts +2 -2
- package/dist/sdk/tag/index.d.ts +2 -2
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/{semanticLayer-Cz22bIjd.cjs → semanticLayer-7BejcMj_.cjs} +10 -84
- package/dist/semanticLayer-7BejcMj_.cjs.map +1 -0
- package/dist/{semanticLayer-JSE51K68.js → semanticLayer-DvjS_nzo.js} +11 -79
- package/dist/semanticLayer-DvjS_nzo.js.map +1 -0
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/storage/index.cjs +4 -3
- package/dist/storage/index.d.cts +3 -3
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +3 -3
- package/dist/storage/types.d.cts +2 -2
- package/dist/storage/types.d.ts +2 -2
- package/dist/{storage-B4AnXas_.cjs → storage-76Sf_z_H.cjs} +2 -2
- package/dist/{storage-B4AnXas_.cjs.map → storage-76Sf_z_H.cjs.map} +1 -1
- package/dist/{storage-CsdA47AL.js → storage-RkNaOFJ-.js} +2 -2
- package/dist/{storage-CsdA47AL.js.map → storage-RkNaOFJ-.js.map} +1 -1
- package/dist/stream/index.d.cts +2 -2
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/syncActions/index.d.cts +2 -2
- package/dist/syncActions/index.d.ts +2 -2
- package/dist/syncActions/types.d.cts +1 -1
- package/dist/syncActions/types.d.ts +1 -1
- package/dist/telemetry/index.d.cts +2 -2
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{types-DgPt4LY_.d.cts → types--owScV0r.d.cts} +183 -77
- package/dist/{types-CLHaZv9f.d.cts → types-1B3ioN33.d.cts} +3 -3
- package/dist/{types-CAAgCRmE.d.cts → types-5HdT1rSH.d.cts} +13 -2
- package/dist/{types-DaMmgW-O.d.ts → types-B1GN_I06.d.ts} +2 -2
- package/dist/{types-CoJVrRAD.d.ts → types-B5kkD7h4.d.cts} +2 -2
- package/dist/{types-D9axmt5o.d.cts → types-BE7mRarT.d.ts} +8 -2
- package/dist/{types-CcYxlqtB.d.cts → types-BGICH80a.d.cts} +2 -2
- package/dist/{types-BaSlU0uo.d.ts → types-BHxsCu0f.d.ts} +2 -2
- package/dist/{types-CV7jmgtX.d.ts → types-BMWeCO5M.d.ts} +3 -3
- package/dist/{types-CGm2fQKK.d.cts → types-BRvs3fXN.d.cts} +64 -5
- package/dist/{types-CwZgZqrA.d.ts → types-BTqxM-IN.d.ts} +13 -2
- package/dist/{types-DxN2siRW.d.ts → types-BjIuVrAZ.d.ts} +3 -3
- package/dist/{types-DoZtE9tz.d.cts → types-BksK2Eo0.d.cts} +2 -2
- package/dist/{types-DicSaNwq.d.ts → types-BoNqe_Lz.d.ts} +2 -2
- package/dist/{types-CAp1VexS.d.ts → types-Br04cEri.d.ts} +16 -4
- package/dist/{types-CN6huo55.d.ts → types-BtII5RSD.d.ts} +183 -77
- package/dist/types-Btb8r9iw.d.ts +1467 -0
- package/dist/{types-B2w2TtSA.d.ts → types-BuKviWct.d.ts} +2 -2
- package/dist/{types-04GTqleJ.d.cts → types-C05ALlV6.d.cts} +3 -3
- package/dist/{types-DzV6LaZq.d.ts → types-C4yryy-R.d.ts} +132 -5
- package/dist/{types-DyArI_Jq.d.cts → types-C8oZX0oP.d.cts} +4 -8
- package/dist/{types-BhEx9iRx.d.ts → types-CESP1ONj.d.ts} +1364 -1316
- package/dist/{types-ByLH46Dt.d.cts → types-CFurl1xe.d.cts} +2 -2
- package/dist/{types-DUMal2E-.d.cts → types-CGhu0tID.d.cts} +30 -3
- package/dist/{types-QSchmyvO.d.ts → types-CaBhH99H.d.ts} +3 -3
- package/dist/{types-D1A4mAG0.d.cts → types-CclheyE7.d.cts} +3 -3
- package/dist/{types-DrvKfXXd.d.cts → types-CoQET4Ep.d.ts} +2 -2
- package/dist/{types-BiEh5c_t.d.cts → types-Csmy6qFk.d.cts} +132 -5
- package/dist/{types-CgBzm1YR.d.cts → types-CyO8qCKl.d.cts} +2 -2
- package/dist/{types-DlQw6FCi.d.ts → types-DDjp9lXD.d.ts} +2 -2
- package/dist/{types-CBPKpLTf.d.cts → types-DGu-wPPm.d.cts} +169 -2
- package/dist/{types-BgHtMe8s.d.cts → types-DHdXufVf.d.cts} +3 -3
- package/dist/{types-BPy5Ozee.d.cts → types-DMWfdZ5C.d.cts} +2 -2
- package/dist/{types-WZBztugL.d.ts → types-DQauEri3.d.ts} +2 -2
- package/dist/{types-BZDV8DZk.d.ts → types-DSv1XS7s.d.ts} +11 -6
- package/dist/{types-YHUEArkR.d.cts → types-DUDQg4ry.d.cts} +2 -2
- package/dist/{types-CigD_EF5.d.ts → types-DiE081mn.d.ts} +4 -8
- package/dist/{types-CZJlLCbA.d.ts → types-Dvysi2Eo.d.ts} +2 -2
- package/dist/{types-sV9OaqTI.d.cts → types-GaOcVZ3d.d.cts} +1364 -1316
- package/dist/{types-Bydx6ga_.d.cts → types-LxDyOfdY.d.cts} +2 -2
- package/dist/{types-D8pGSkRe.d.ts → types-M9vU_ONp.d.ts} +3 -3
- package/dist/{types-CfwqVkEA.d.ts → types-Nwq1QtYe.d.ts} +2 -2
- package/dist/{types-DwVSj-Da.d.ts → types-P_61P9Nd.d.ts} +30 -3
- package/dist/{types-pvQzbgNE.d.cts → types-QroFANIW.d.cts} +11 -6
- package/dist/{types-Fs4a3mVs.d.ts → types-UI2aZ74n.d.ts} +64 -5
- package/dist/{types-Dd31Lw4S.d.cts → types-XHNJRi3-.d.cts} +2 -2
- package/dist/{types-BBUZ9EHs.d.ts → types-YdE2VJzw.d.cts} +8 -2
- package/dist/{types-DazRtukc.d.ts → types-fAqPUl-a.d.ts} +521 -270
- package/dist/{types-c_bsDkV6.d.cts → types-ggpJFEWZ.d.cts} +16 -4
- package/dist/{types-CaOtNjSZ.d.ts → types-j30rKMe6.d.ts} +2 -2
- package/dist/{types-ePSqbXRr.d.cts → types-q5lgElyc.d.cts} +2 -2
- package/dist/{types-AYX7VtS6.d.ts → types-qGMVZGSB.d.ts} +169 -2
- package/dist/{types-D3wcs4tp.d.ts → types-qWA5iU0j.d.ts} +2 -2
- package/dist/{types-DVt0qlzI.d.cts → types-sI3K5t3w.d.cts} +521 -270
- package/dist/types-sg2xnYlr.d.cts +1467 -0
- package/dist/{types-B8N_k79M.d.cts → types-tJLoKlMX.d.cts} +2 -2
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +1 -1
- package/surface/auth.md +19 -19
- package/surface/kaiAgent.md +1 -1
- package/surface/management.md +41 -41
- package/surface/queue.md +7 -7
- package/surface/storage.md +21 -21
- package/dist/ManagementClientAuthError-BcPYxAWZ.js +0 -16
- package/dist/ManagementClientAuthError-BcPYxAWZ.js.map +0 -1
- package/dist/ManagementClientAuthError-DHuykEPF.cjs +0 -21
- package/dist/ManagementClientAuthError-DHuykEPF.cjs.map +0 -1
- package/dist/management-C5lf9nsU.cjs.map +0 -1
- package/dist/management-WAtKH6Tu.js.map +0 -1
- package/dist/project-BvFi19K_.cjs.map +0 -1
- package/dist/project-DWwZv66D.js.map +0 -1
- package/dist/semanticLayer-Cz22bIjd.cjs.map +0 -1
- package/dist/semanticLayer-JSE51K68.js.map +0 -1
- package/dist/types-BhOUS9j1.d.cts +0 -749
- package/dist/types-gcAb6olM.d.ts +0 -749
|
@@ -0,0 +1,1467 @@
|
|
|
1
|
+
import { c as OpenapiReturnType, o as OpenapiPathType, r as OpenapiBodyType } from "./index-PyTPrtaL.js";
|
|
2
|
+
//#region src/clients/oauth/__generated__/schema.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* This file was auto-generated by openapi-typescript.
|
|
5
|
+
* Do not make direct changes to the file.
|
|
6
|
+
*/
|
|
7
|
+
type paths = {
|
|
8
|
+
'/authorize/{componentId}': {
|
|
9
|
+
parameters: {
|
|
10
|
+
query?: never;
|
|
11
|
+
header?: never;
|
|
12
|
+
path?: never;
|
|
13
|
+
cookie?: never;
|
|
14
|
+
};
|
|
15
|
+
get?: never;
|
|
16
|
+
put?: never;
|
|
17
|
+
/**
|
|
18
|
+
* Authorization init
|
|
19
|
+
* @description Call the endpoint to initiate the authorization process. It starts the authorization sessions and redirects
|
|
20
|
+
* client to the OAuth provider.
|
|
21
|
+
*/
|
|
22
|
+
post: operations['authorizeInit'];
|
|
23
|
+
delete?: never;
|
|
24
|
+
options?: never;
|
|
25
|
+
head?: never;
|
|
26
|
+
patch?: never;
|
|
27
|
+
trace?: never;
|
|
28
|
+
};
|
|
29
|
+
'/authorize/{componentId}/callback': {
|
|
30
|
+
parameters: {
|
|
31
|
+
query?: never;
|
|
32
|
+
header?: never;
|
|
33
|
+
path?: never;
|
|
34
|
+
cookie?: never;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Authorization callback
|
|
38
|
+
* @description The endpoint is called by OAuth provider after the authorization process is finished. It uses parameters passed
|
|
39
|
+
* in query to retrieve the access token and stores the authorization. Finally it redirects the client back to the
|
|
40
|
+
* return URL.
|
|
41
|
+
*/
|
|
42
|
+
get: operations['authorizeCallback'];
|
|
43
|
+
put?: never;
|
|
44
|
+
post?: never;
|
|
45
|
+
delete?: never;
|
|
46
|
+
options?: never;
|
|
47
|
+
head?: never;
|
|
48
|
+
patch?: never;
|
|
49
|
+
trace?: never;
|
|
50
|
+
};
|
|
51
|
+
'/credentials': {
|
|
52
|
+
parameters: {
|
|
53
|
+
query?: never;
|
|
54
|
+
header?: never;
|
|
55
|
+
path?: never;
|
|
56
|
+
cookie?: never;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Credentials list
|
|
60
|
+
* @description Returns list of component credentials.
|
|
61
|
+
*/
|
|
62
|
+
get: operations['credentialsList'];
|
|
63
|
+
put?: never;
|
|
64
|
+
post?: never;
|
|
65
|
+
delete?: never;
|
|
66
|
+
options?: never;
|
|
67
|
+
head?: never;
|
|
68
|
+
patch?: never;
|
|
69
|
+
trace?: never;
|
|
70
|
+
};
|
|
71
|
+
'/credentials/{componentId}': {
|
|
72
|
+
parameters: {
|
|
73
|
+
query?: never;
|
|
74
|
+
header?: never;
|
|
75
|
+
path?: never;
|
|
76
|
+
cookie?: never;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Component credentials list
|
|
80
|
+
* @description Returns list of component credentials.
|
|
81
|
+
*/
|
|
82
|
+
get: operations['componentCredentialsList'];
|
|
83
|
+
put?: never;
|
|
84
|
+
/**
|
|
85
|
+
* Create credentials
|
|
86
|
+
* @description Call the endpoint to create new credentials for given component.
|
|
87
|
+
*/
|
|
88
|
+
post: operations['componentCredentialsCreate'];
|
|
89
|
+
delete?: never;
|
|
90
|
+
options?: never;
|
|
91
|
+
head?: never;
|
|
92
|
+
patch?: never;
|
|
93
|
+
trace?: never;
|
|
94
|
+
};
|
|
95
|
+
'/credentials/{componentId}/{name}': {
|
|
96
|
+
parameters: {
|
|
97
|
+
query?: never;
|
|
98
|
+
header?: never;
|
|
99
|
+
path?: never;
|
|
100
|
+
cookie?: never;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Credentials detail
|
|
104
|
+
* @description Returns the credentials detail.
|
|
105
|
+
*/
|
|
106
|
+
get: operations['credentialsDetail'];
|
|
107
|
+
put?: never;
|
|
108
|
+
post?: never;
|
|
109
|
+
/**
|
|
110
|
+
* Delete credentials
|
|
111
|
+
* @description Delete existing credentials.
|
|
112
|
+
*/
|
|
113
|
+
delete: operations['credentialsDelete'];
|
|
114
|
+
options?: never;
|
|
115
|
+
head?: never;
|
|
116
|
+
patch?: never;
|
|
117
|
+
trace?: never;
|
|
118
|
+
};
|
|
119
|
+
'/manage': {
|
|
120
|
+
parameters: {
|
|
121
|
+
query?: never;
|
|
122
|
+
header?: never;
|
|
123
|
+
path?: never;
|
|
124
|
+
cookie?: never;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* List consumers
|
|
128
|
+
* @description Returns list of all registered consumers.
|
|
129
|
+
*/
|
|
130
|
+
get: operations['consumersList'];
|
|
131
|
+
put?: never;
|
|
132
|
+
/**
|
|
133
|
+
* Create consumer
|
|
134
|
+
* @description Register a new OAuth consumer (component).
|
|
135
|
+
*/
|
|
136
|
+
post: operations['consumerCreate'];
|
|
137
|
+
delete?: never;
|
|
138
|
+
options?: never;
|
|
139
|
+
head?: never;
|
|
140
|
+
patch?: never;
|
|
141
|
+
trace?: never;
|
|
142
|
+
};
|
|
143
|
+
'/manage/{componentId}': {
|
|
144
|
+
parameters: {
|
|
145
|
+
query?: never;
|
|
146
|
+
header?: never;
|
|
147
|
+
path?: never;
|
|
148
|
+
cookie?: never;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Consumer detail
|
|
152
|
+
* @description Returns the consumer detail for given component.
|
|
153
|
+
*/
|
|
154
|
+
get: operations['consumerDetail'];
|
|
155
|
+
put?: never;
|
|
156
|
+
post?: never;
|
|
157
|
+
/**
|
|
158
|
+
* Delete consumer
|
|
159
|
+
* @description Delete an existing consumer.
|
|
160
|
+
*/
|
|
161
|
+
delete: operations['consumerDelete'];
|
|
162
|
+
options?: never;
|
|
163
|
+
head?: never;
|
|
164
|
+
/**
|
|
165
|
+
* Update consumer
|
|
166
|
+
* @description Update an existing consumer. All fields are optional.
|
|
167
|
+
*/
|
|
168
|
+
patch: operations['consumerUpdate'];
|
|
169
|
+
trace?: never;
|
|
170
|
+
};
|
|
171
|
+
'/platform-consumers': {
|
|
172
|
+
parameters: {
|
|
173
|
+
query?: never;
|
|
174
|
+
header?: never;
|
|
175
|
+
path?: never;
|
|
176
|
+
cookie?: never;
|
|
177
|
+
};
|
|
178
|
+
get?: never;
|
|
179
|
+
put?: never;
|
|
180
|
+
/**
|
|
181
|
+
* Register a platform application
|
|
182
|
+
* @description Registers a platform-level external application, currently a GitHub App. Done once per
|
|
183
|
+
* stack **and per GitHub deployment** by an operator. Requires the
|
|
184
|
+
* `oauth:platform-consumers-manage` scope.
|
|
185
|
+
*
|
|
186
|
+
* The private key and the client secret are stored encrypted and are never returned by any
|
|
187
|
+
* endpoint.
|
|
188
|
+
*
|
|
189
|
+
* **GitHub App prerequisites** (a human must do these in GitHub Developer Settings before the
|
|
190
|
+
* registration is usable):
|
|
191
|
+
*
|
|
192
|
+
* * Repository permissions: Contents → Read-only; Organization permissions: Members →
|
|
193
|
+
* Read-only (the install callback needs it to confirm the installer owns the GitHub
|
|
194
|
+
* organization).
|
|
195
|
+
* * "Where can this GitHub App be installed?" → Any account.
|
|
196
|
+
* * **"Request user authorization (OAuth) during installation" must be enabled**, and the
|
|
197
|
+
* App's Callback URL set to this service's
|
|
198
|
+
* `/platform-consumers/github-app/callback`. Without it GitHub sends no `code` with the
|
|
199
|
+
* install redirect, the callback cannot prove the installer owns the installation they
|
|
200
|
+
* returned with, and every connection attempt fails there.
|
|
201
|
+
* * `clientId` / `clientSecret` come from the same App's page ("Client ID", "Generate a new
|
|
202
|
+
* client secret") — they are not the App ID and private key.
|
|
203
|
+
*
|
|
204
|
+
* `apiBaseUrl` / `webBaseUrl` default to the stack's `GITHUB_API_URL` / `GITHUB_WEB_URL`.
|
|
205
|
+
* Register a GitHub Enterprise App by stating them: `https://api.acme.ghe.com` +
|
|
206
|
+
* `https://acme.ghe.com` for GitHub Enterprise Cloud, or
|
|
207
|
+
* `https://github.acme.internal/api/v3` + `https://github.acme.internal` for a self-hosted
|
|
208
|
+
* GitHub Enterprise Server.
|
|
209
|
+
*/
|
|
210
|
+
post: operations['platformConsumerCreate'];
|
|
211
|
+
delete?: never;
|
|
212
|
+
options?: never;
|
|
213
|
+
head?: never;
|
|
214
|
+
patch?: never;
|
|
215
|
+
trace?: never;
|
|
216
|
+
};
|
|
217
|
+
'/platform-consumers/{id}': {
|
|
218
|
+
parameters: {
|
|
219
|
+
query?: never;
|
|
220
|
+
header?: never;
|
|
221
|
+
path?: never;
|
|
222
|
+
cookie?: never;
|
|
223
|
+
};
|
|
224
|
+
/** Platform consumer detail */
|
|
225
|
+
get: operations['platformConsumerDetail'];
|
|
226
|
+
put?: never;
|
|
227
|
+
post?: never;
|
|
228
|
+
/**
|
|
229
|
+
* Delete a platform consumer
|
|
230
|
+
* @description Refused while any organization is still connected through this registration. There is no
|
|
231
|
+
* force flag: cascading would silently disconnect every organization on the stack, and the
|
|
232
|
+
* operator cannot tell from here whose connections those are.
|
|
233
|
+
*/
|
|
234
|
+
delete: operations['platformConsumerDelete'];
|
|
235
|
+
options?: never;
|
|
236
|
+
head?: never;
|
|
237
|
+
patch?: never;
|
|
238
|
+
trace?: never;
|
|
239
|
+
};
|
|
240
|
+
'/platform-consumers/github-app/callback': {
|
|
241
|
+
parameters: {
|
|
242
|
+
query?: never;
|
|
243
|
+
header?: never;
|
|
244
|
+
path?: never;
|
|
245
|
+
cookie?: never;
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* GitHub App install callback
|
|
249
|
+
* @description Invoked by GitHub, not by API consumers. This is the App's Callback URL, configured once on
|
|
250
|
+
* the GitHub side and identical for every install, which is why it carries no organization
|
|
251
|
+
* segment — the organization is recovered from the install session that `state` resolves to.
|
|
252
|
+
*
|
|
253
|
+
* It is the only endpoint that records an installation, and it requires no Keboola credential.
|
|
254
|
+
* Three things authorise it, all of them necessary:
|
|
255
|
+
*
|
|
256
|
+
* 1. `state` must match the `__Host-orgInstallSession` cookie set when the flow started (the
|
|
257
|
+
* legacy `oauthSessionId` cookie is ignored here);
|
|
258
|
+
* 2. `state` must resolve to an unexpired install session;
|
|
259
|
+
* 3. the installing user must own the account the installation belongs to. GitHub, asked as
|
|
260
|
+
* the App, says which account that is (`GET /app/installations/{id}`); asked with the
|
|
261
|
+
* user-to-server token obtained from `code`, it says whether the installer is an active
|
|
262
|
+
* owner of that organization (`GET /user/memberships/orgs/{login}` → `role: admin`,
|
|
263
|
+
* `state: active`) or, for a personal account, that very user (`GET /user`). Being a
|
|
264
|
+
* collaborator or an ordinary member is not enough.
|
|
265
|
+
*
|
|
266
|
+
* Point 3 is why the App needs "Request user authorization (OAuth) during installation" and
|
|
267
|
+
* the "Organization members: read" permission. Installation ids are small sequential
|
|
268
|
+
* integers, so without that confirmation anyone able to start an install for an organization
|
|
269
|
+
* they do administer could bind a stranger's installation and mint read tokens on that
|
|
270
|
+
* stranger's private repositories.
|
|
271
|
+
*
|
|
272
|
+
* When the installer is not a GitHub organization owner, GitHub returns
|
|
273
|
+
* `setup_action=request` with no installation id: the installation is pending an owner's
|
|
274
|
+
* approval and nothing is recorded.
|
|
275
|
+
*
|
|
276
|
+
* An organization holds at most one connection per GitHub account and registration. When the
|
|
277
|
+
* account is already connected under a *different* installation id — the App was
|
|
278
|
+
* uninstalled and installed again — the stale connection is replaced by the new one.
|
|
279
|
+
* Connecting the very same installation twice is a `409`.
|
|
280
|
+
*/
|
|
281
|
+
get: operations['platformConsumerInstallCallback'];
|
|
282
|
+
put?: never;
|
|
283
|
+
post?: never;
|
|
284
|
+
delete?: never;
|
|
285
|
+
options?: never;
|
|
286
|
+
head?: never;
|
|
287
|
+
patch?: never;
|
|
288
|
+
trace?: never;
|
|
289
|
+
};
|
|
290
|
+
'/authorize/organizations/{organizationId}': {
|
|
291
|
+
parameters: {
|
|
292
|
+
query?: never;
|
|
293
|
+
header?: never;
|
|
294
|
+
path?: never;
|
|
295
|
+
cookie?: never;
|
|
296
|
+
};
|
|
297
|
+
get?: never;
|
|
298
|
+
put?: never;
|
|
299
|
+
/**
|
|
300
|
+
* Connect a GitHub organization
|
|
301
|
+
* @description Starts the GitHub App install flow and redirects to GitHub.
|
|
302
|
+
*
|
|
303
|
+
* Submitted by the browser as a form — a top-level navigation — exactly like
|
|
304
|
+
* `POST /authorize/{componentId}`, with the caller's Storage API token in the `token` form
|
|
305
|
+
* field, verified with Storage API by this service. The token may belong to any project the
|
|
306
|
+
* caller can reach: it establishes only *who* the caller is. A token without an admin
|
|
307
|
+
* (component or legacy token) is refused with `403`.
|
|
308
|
+
*
|
|
309
|
+
* The organization is taken from the URL and the caller must be an administrator of it — `GET /manage/organizations/{id}/users` is
|
|
310
|
+
* Connection's organization administrators listing, so appearing in it is the admin check.
|
|
311
|
+
* Deriving the organization from the token instead would be unsafe — users belong to projects
|
|
312
|
+
* across several organizations and the project-to-organization link is invisible in the UI.
|
|
313
|
+
*
|
|
314
|
+
* The credentials row is created incomplete and only becomes usable once the install
|
|
315
|
+
* callback records the installation. Starting again under the name of an incomplete row (an
|
|
316
|
+
* abandoned tab, or an install that became an owner-approval request) replaces that row and
|
|
317
|
+
* its session; otherwise the `app:expire-auth-sessions` cron sweeps it after an hour. A name
|
|
318
|
+
* already taken by a completed connection is a `409`.
|
|
319
|
+
*
|
|
320
|
+
* The response sets the session cookie `__Host-orgInstallSession` (Secure, HttpOnly,
|
|
321
|
+
* `Path=/`, no `Domain`, `SameSite=Lax`) and redirects to GitHub. The browser must be
|
|
322
|
+
* able to send the cookie back to the callback, so the install has to be started as a
|
|
323
|
+
* top-level navigation (a form POST cannot carry a token header, and `fetch()` fails on the
|
|
324
|
+
* cross-origin redirect and does not store the cookie). There is no header-authenticated
|
|
325
|
+
* variant: a non-browser client could not complete the install anyway.
|
|
326
|
+
*
|
|
327
|
+
* Login-CSRF guard: the request must carry an `Origin` header exactly equal to an allowed
|
|
328
|
+
* origin — `ORGANIZATION_INSTALL_ALLOWED_ORIGINS`, by default the stack's own UI
|
|
329
|
+
* `https://connection.<HOSTNAME_SUFFIX>`. A missing, `null` or other origin is a `403`, with
|
|
330
|
+
* nothing verified or written.
|
|
331
|
+
*/
|
|
332
|
+
post: operations['organizationCredentialsInit'];
|
|
333
|
+
delete?: never;
|
|
334
|
+
options?: never;
|
|
335
|
+
head?: never;
|
|
336
|
+
patch?: never;
|
|
337
|
+
trace?: never;
|
|
338
|
+
};
|
|
339
|
+
'/organizations/{organizationId}/credentials': {
|
|
340
|
+
parameters: {
|
|
341
|
+
query?: never;
|
|
342
|
+
header?: never;
|
|
343
|
+
path?: never;
|
|
344
|
+
cookie?: never;
|
|
345
|
+
};
|
|
346
|
+
/**
|
|
347
|
+
* List connected GitHub organizations
|
|
348
|
+
* @description Lists the GitHub accounts this Keboola organization has connected. Connections whose
|
|
349
|
+
* install never completed are omitted.
|
|
350
|
+
*/
|
|
351
|
+
get: operations['organizationCredentialsList'];
|
|
352
|
+
put?: never;
|
|
353
|
+
post?: never;
|
|
354
|
+
delete?: never;
|
|
355
|
+
options?: never;
|
|
356
|
+
head?: never;
|
|
357
|
+
patch?: never;
|
|
358
|
+
trace?: never;
|
|
359
|
+
};
|
|
360
|
+
'/organizations/{organizationId}/credentials/{id}': {
|
|
361
|
+
parameters: {
|
|
362
|
+
query?: never;
|
|
363
|
+
header?: never;
|
|
364
|
+
path?: never;
|
|
365
|
+
cookie?: never;
|
|
366
|
+
};
|
|
367
|
+
get?: never;
|
|
368
|
+
put?: never;
|
|
369
|
+
post?: never;
|
|
370
|
+
/**
|
|
371
|
+
* Disconnect a GitHub organization
|
|
372
|
+
* @description Removes the connection on the Keboola side. The App stays installed on GitHub until an
|
|
373
|
+
* owner removes it there.
|
|
374
|
+
*/
|
|
375
|
+
delete: operations['organizationCredentialsDelete'];
|
|
376
|
+
options?: never;
|
|
377
|
+
head?: never;
|
|
378
|
+
patch?: never;
|
|
379
|
+
trace?: never;
|
|
380
|
+
};
|
|
381
|
+
'/organization-credentials/token': {
|
|
382
|
+
parameters: {
|
|
383
|
+
query?: never;
|
|
384
|
+
header?: never;
|
|
385
|
+
path?: never;
|
|
386
|
+
cookie?: never;
|
|
387
|
+
};
|
|
388
|
+
get?: never;
|
|
389
|
+
put?: never;
|
|
390
|
+
/**
|
|
391
|
+
* Mint a repository-scoped GitHub token
|
|
392
|
+
* @description Issues a short-lived GitHub token for a single repository, read-only, using the
|
|
393
|
+
* organization's GitHub App installation. Requires the `oauth:mint` scope.
|
|
394
|
+
*
|
|
395
|
+
* Application token only. A project Storage API token is present inside every data app
|
|
396
|
+
* container, so accepting one here would let application code mint tokens for any
|
|
397
|
+
* repository the installation covers.
|
|
398
|
+
*
|
|
399
|
+
* Keyed by repository, not by credential ID: the caller supplies the organization and the
|
|
400
|
+
* repository URL, and the owner is resolved to a connected installation here. A caller
|
|
401
|
+
* therefore cannot name a credential, nor reach one belonging to another organization. The
|
|
402
|
+
* repository URL's host also selects which GitHub App registration is used, so github.com and
|
|
403
|
+
* a GitHub Enterprise host can both be served by one stack.
|
|
404
|
+
*
|
|
405
|
+
* `projectId` must belong to `organizationId`; both come from the payload, so neither is
|
|
406
|
+
* trusted alone.
|
|
407
|
+
*
|
|
408
|
+
* The returned `#token` is encrypted for the supplied `projectId` and `componentId`; it is
|
|
409
|
+
* never returned in plaintext. It is a project-scoped ciphertext with no branch type, so it
|
|
410
|
+
* decrypts in every branch of that project. The token is always scoped to the single supplied
|
|
411
|
+
* repository with `contents: read`, whatever else the installation covers.
|
|
412
|
+
*
|
|
413
|
+
* The token lives about an hour. Every call mints a fresh one; keboola-operator calls again
|
|
414
|
+
* before the previous token expires, so a long-running app keeps a valid token.
|
|
415
|
+
*
|
|
416
|
+
* `403` means only that the caller's own application token was refused (e.g. it lacks the
|
|
417
|
+
* `oauth:mint` scope). Problems with the requested project or repository are `404`/`412`/
|
|
418
|
+
* `422`; upstream trouble is `429`/`502`/`503`. keboola-operator treats `400`/`404`/`412`/
|
|
419
|
+
* `422` as terminal (it stops the app) and retries `401`/`403`/`408`/`409`/`429`/`5xx`.
|
|
420
|
+
*/
|
|
421
|
+
post: operations['organizationCredentialsMintToken'];
|
|
422
|
+
delete?: never;
|
|
423
|
+
options?: never;
|
|
424
|
+
head?: never;
|
|
425
|
+
patch?: never;
|
|
426
|
+
trace?: never;
|
|
427
|
+
};
|
|
428
|
+
'/health-check': {
|
|
429
|
+
parameters: {
|
|
430
|
+
query?: never;
|
|
431
|
+
header?: never;
|
|
432
|
+
path?: never;
|
|
433
|
+
cookie?: never;
|
|
434
|
+
};
|
|
435
|
+
/**
|
|
436
|
+
* Health-check endpoint
|
|
437
|
+
* @description Checks the service is up & running.
|
|
438
|
+
*/
|
|
439
|
+
get: operations['healthCheck'];
|
|
440
|
+
put?: never;
|
|
441
|
+
post?: never;
|
|
442
|
+
delete?: never;
|
|
443
|
+
options?: never;
|
|
444
|
+
head?: never;
|
|
445
|
+
patch?: never;
|
|
446
|
+
trace?: never;
|
|
447
|
+
};
|
|
448
|
+
};
|
|
449
|
+
type components = {
|
|
450
|
+
schemas: {
|
|
451
|
+
PlatformConsumerCreateRequest: {
|
|
452
|
+
/** @enum {string} */
|
|
453
|
+
type: 'githubApp';
|
|
454
|
+
/**
|
|
455
|
+
* @description GitHub App ID (numeric, as shown in the App's settings).
|
|
456
|
+
* @example 123456
|
|
457
|
+
*/
|
|
458
|
+
appId: string;
|
|
459
|
+
/**
|
|
460
|
+
* @description GitHub App slug, used to build the install URL `{webBaseUrl}/apps/{slug}/installations/new`.
|
|
461
|
+
* @example keboola-data-apps
|
|
462
|
+
*/
|
|
463
|
+
slug: string;
|
|
464
|
+
/** @description PEM private key generated for the App. Stored encrypted and never returned. */
|
|
465
|
+
privateKey: string;
|
|
466
|
+
/**
|
|
467
|
+
* @description OAuth client ID of the same App. Used only by the install callback, to exchange the install `code` for a user-to-server token and verify installation ownership.
|
|
468
|
+
* @example Iv1.0123456789abcdef
|
|
469
|
+
*/
|
|
470
|
+
clientId: string;
|
|
471
|
+
/** @description OAuth client secret of the same App. Stored encrypted and never returned. */
|
|
472
|
+
clientSecret: string;
|
|
473
|
+
/**
|
|
474
|
+
* Format: url
|
|
475
|
+
* @description REST API root. Defaults to the stack's `GITHUB_API_URL`. GitHub Enterprise Server needs the `/api/v3` suffix.
|
|
476
|
+
* @example https://api.github.com
|
|
477
|
+
*/
|
|
478
|
+
apiBaseUrl?: string | null;
|
|
479
|
+
/**
|
|
480
|
+
* Format: url
|
|
481
|
+
* @description Web root. Defaults to the stack's `GITHUB_WEB_URL`. Its host is the only host repository URLs may name for this registration, and only one registration per type may exist for a given host.
|
|
482
|
+
* @example https://github.com
|
|
483
|
+
*/
|
|
484
|
+
webBaseUrl?: string | null;
|
|
485
|
+
};
|
|
486
|
+
PlatformConsumer: {
|
|
487
|
+
/** Format: uuid */
|
|
488
|
+
id?: string;
|
|
489
|
+
/** @enum {string} */
|
|
490
|
+
type?: 'githubApp';
|
|
491
|
+
appId?: string;
|
|
492
|
+
slug?: string;
|
|
493
|
+
clientId?: string;
|
|
494
|
+
/** Format: url */
|
|
495
|
+
apiBaseUrl?: string;
|
|
496
|
+
/** Format: url */
|
|
497
|
+
webBaseUrl?: string;
|
|
498
|
+
/**
|
|
499
|
+
* @description Lower-cased host of `webBaseUrl`; unique per type.
|
|
500
|
+
* @example github.com
|
|
501
|
+
*/
|
|
502
|
+
webHost?: string;
|
|
503
|
+
};
|
|
504
|
+
OrganizationCredentialsInitRequest: {
|
|
505
|
+
/** @description Storage API token of the caller; identifies who they are */
|
|
506
|
+
token: string;
|
|
507
|
+
/**
|
|
508
|
+
* @description Unique within the organization.
|
|
509
|
+
* @example acme-github
|
|
510
|
+
*/
|
|
511
|
+
name: string;
|
|
512
|
+
/**
|
|
513
|
+
* Format: url
|
|
514
|
+
* @description Where GitHub returns the user after the install completes. Must be https.
|
|
515
|
+
*/
|
|
516
|
+
returnUrl: string;
|
|
517
|
+
description?: string | null;
|
|
518
|
+
/**
|
|
519
|
+
* @description Which registered GitHub deployment to connect, as a bare host. Omitted means the stack's default (`GITHUB_WEB_URL`).
|
|
520
|
+
* @example acme.ghe.com
|
|
521
|
+
*/
|
|
522
|
+
host?: string | null;
|
|
523
|
+
};
|
|
524
|
+
OrganizationCredentials: {
|
|
525
|
+
/** Format: uuid */
|
|
526
|
+
id?: string;
|
|
527
|
+
name?: string;
|
|
528
|
+
description?: string | null;
|
|
529
|
+
/**
|
|
530
|
+
* @description The GitHub account the App is installed on.
|
|
531
|
+
* @example acme
|
|
532
|
+
*/
|
|
533
|
+
accountLogin?: string;
|
|
534
|
+
/**
|
|
535
|
+
* @description GitHub deployment this connection lives on.
|
|
536
|
+
* @example github.com
|
|
537
|
+
*/
|
|
538
|
+
host?: string;
|
|
539
|
+
creator?: {
|
|
540
|
+
id?: string;
|
|
541
|
+
description?: string | null;
|
|
542
|
+
};
|
|
543
|
+
/** Format: date-time */
|
|
544
|
+
created?: string;
|
|
545
|
+
};
|
|
546
|
+
MintTokenRequest: {
|
|
547
|
+
organizationId: string;
|
|
548
|
+
/** @description Project the returned token is encrypted for. Must belong to `organizationId`. */
|
|
549
|
+
projectId: string;
|
|
550
|
+
/**
|
|
551
|
+
* @description Component the returned token is encrypted for.
|
|
552
|
+
* @example keboola.data-apps
|
|
553
|
+
*/
|
|
554
|
+
componentId: string;
|
|
555
|
+
/**
|
|
556
|
+
* Format: url
|
|
557
|
+
* @description Repository the token is scoped to, as `https://{host}/{owner}/{repo}`. The host must be a registered GitHub deployment and the owner a GitHub account this organization has connected on it.
|
|
558
|
+
* @example https://github.com/acme/app
|
|
559
|
+
*/
|
|
560
|
+
repository: string;
|
|
561
|
+
};
|
|
562
|
+
MintedToken: {
|
|
563
|
+
/** @description GitHub token, encrypted for the supplied project and component. Scoped to the single requested repository with read-only contents. */
|
|
564
|
+
'#token'?: string;
|
|
565
|
+
/** Format: date-time */
|
|
566
|
+
expiresAt?: string;
|
|
567
|
+
};
|
|
568
|
+
Error: {
|
|
569
|
+
error: string;
|
|
570
|
+
code: number;
|
|
571
|
+
exceptionId: string;
|
|
572
|
+
/** @enum {unknown} */
|
|
573
|
+
status: 'error';
|
|
574
|
+
context?: Record<string, never>;
|
|
575
|
+
};
|
|
576
|
+
/** @description Returned when a request payload fails validation. The top-level `error` stays a short human-readable string; `context` lists every failing field exactly once. */
|
|
577
|
+
ValidationError: {
|
|
578
|
+
/** @example Request contents is not valid */
|
|
579
|
+
error: string;
|
|
580
|
+
/** @example 422 */
|
|
581
|
+
code: number;
|
|
582
|
+
exceptionId: string;
|
|
583
|
+
/** @enum {unknown} */
|
|
584
|
+
status: 'error';
|
|
585
|
+
/** @description One entry per payload field that failed mapping or validation, keyed by index ("0", "1", …). Each failing field appears exactly once. */
|
|
586
|
+
context: {
|
|
587
|
+
[key: string]: {
|
|
588
|
+
/**
|
|
589
|
+
* @description Name of the payload field that failed, as sent by the client — encrypted fields are reported under their `#`-prefixed key (e.g. `#data`).
|
|
590
|
+
* @example authorizedFor
|
|
591
|
+
*/
|
|
592
|
+
path: string;
|
|
593
|
+
/** @example Value '' is not a valid non-empty string. */
|
|
594
|
+
message: string;
|
|
595
|
+
};
|
|
596
|
+
};
|
|
597
|
+
};
|
|
598
|
+
Consumer: {
|
|
599
|
+
componentId: string;
|
|
600
|
+
friendlyName: string;
|
|
601
|
+
oauthVersion: string;
|
|
602
|
+
authUrl: string;
|
|
603
|
+
tokenUrl: string;
|
|
604
|
+
requestTokenUrl: string | null;
|
|
605
|
+
appKey: string;
|
|
606
|
+
appSecret: string;
|
|
607
|
+
appSecretDocker: string;
|
|
608
|
+
allowedEndpointHosts: string[];
|
|
609
|
+
};
|
|
610
|
+
Credentials: {
|
|
611
|
+
id: string;
|
|
612
|
+
branchId: string | null;
|
|
613
|
+
authorizedFor: string;
|
|
614
|
+
creator: {
|
|
615
|
+
id: string;
|
|
616
|
+
description: string | null;
|
|
617
|
+
};
|
|
618
|
+
/** Format: date-time */
|
|
619
|
+
created: string;
|
|
620
|
+
oauthVersion: string;
|
|
621
|
+
appKey: string;
|
|
622
|
+
'#appSecret': string;
|
|
623
|
+
'#data': string;
|
|
624
|
+
};
|
|
625
|
+
};
|
|
626
|
+
responses: {
|
|
627
|
+
/** @description Bad request */
|
|
628
|
+
'400_BadRequest': {
|
|
629
|
+
headers: {
|
|
630
|
+
[name: string]: unknown;
|
|
631
|
+
};
|
|
632
|
+
content: {
|
|
633
|
+
'application/json': components['schemas']['Error'];
|
|
634
|
+
};
|
|
635
|
+
};
|
|
636
|
+
/** @description Validation failed - see `context` for the list of failing fields */
|
|
637
|
+
'422_UnprocessableEntity': {
|
|
638
|
+
headers: {
|
|
639
|
+
[name: string]: unknown;
|
|
640
|
+
};
|
|
641
|
+
content: {
|
|
642
|
+
'application/json': components['schemas']['ValidationError'];
|
|
643
|
+
};
|
|
644
|
+
};
|
|
645
|
+
/** @description Unauthorized */
|
|
646
|
+
'401_Unauthorized': {
|
|
647
|
+
headers: {
|
|
648
|
+
[name: string]: unknown;
|
|
649
|
+
};
|
|
650
|
+
content: {
|
|
651
|
+
'application/json': components['schemas']['Error'];
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
/** @description Forbidden */
|
|
655
|
+
'403_Forbidden': {
|
|
656
|
+
headers: {
|
|
657
|
+
[name: string]: unknown;
|
|
658
|
+
};
|
|
659
|
+
content: {
|
|
660
|
+
'application/json': components['schemas']['Error'];
|
|
661
|
+
};
|
|
662
|
+
};
|
|
663
|
+
/** @description Forbidden */
|
|
664
|
+
'404_NotFound': {
|
|
665
|
+
headers: {
|
|
666
|
+
[name: string]: unknown;
|
|
667
|
+
};
|
|
668
|
+
content: {
|
|
669
|
+
'application/json': components['schemas']['Error'];
|
|
670
|
+
};
|
|
671
|
+
};
|
|
672
|
+
/** @description Keboola Manage API is temporarily unavailable; retryable */
|
|
673
|
+
'503_ServiceUnavailable': {
|
|
674
|
+
headers: {
|
|
675
|
+
[name: string]: unknown;
|
|
676
|
+
};
|
|
677
|
+
content: {
|
|
678
|
+
'application/json': components['schemas']['Error'];
|
|
679
|
+
};
|
|
680
|
+
};
|
|
681
|
+
/** @description GitHub is rate limiting this service; retry after the number of seconds in `Retry-After` */
|
|
682
|
+
'429_TooManyRequests': {
|
|
683
|
+
headers: {
|
|
684
|
+
/** @description Seconds to wait before retrying */
|
|
685
|
+
'Retry-After'?: number;
|
|
686
|
+
[name: string]: unknown;
|
|
687
|
+
};
|
|
688
|
+
content: {
|
|
689
|
+
'application/json': components['schemas']['Error'];
|
|
690
|
+
};
|
|
691
|
+
};
|
|
692
|
+
/** @description GitHub failed or could not be reached; retryable */
|
|
693
|
+
'502_BadGateway': {
|
|
694
|
+
headers: {
|
|
695
|
+
[name: string]: unknown;
|
|
696
|
+
};
|
|
697
|
+
content: {
|
|
698
|
+
'application/json': components['schemas']['Error'];
|
|
699
|
+
};
|
|
700
|
+
};
|
|
701
|
+
};
|
|
702
|
+
parameters: {
|
|
703
|
+
/** @description Platform consumer ID. */
|
|
704
|
+
PlatformConsumerId: string;
|
|
705
|
+
/** @description Numeric Keboola organization ID. Always explicit — it is never derived from the token, because a user typically belongs to projects across several organizations. */
|
|
706
|
+
OrganizationId: string;
|
|
707
|
+
};
|
|
708
|
+
requestBodies: never;
|
|
709
|
+
headers: never;
|
|
710
|
+
pathItems: never;
|
|
711
|
+
};
|
|
712
|
+
interface operations {
|
|
713
|
+
authorizeInit: {
|
|
714
|
+
parameters: {
|
|
715
|
+
query?: never;
|
|
716
|
+
header?: never;
|
|
717
|
+
path: {
|
|
718
|
+
/** @description Component ID */
|
|
719
|
+
componentId: string;
|
|
720
|
+
};
|
|
721
|
+
cookie?: never;
|
|
722
|
+
};
|
|
723
|
+
requestBody: {
|
|
724
|
+
content: {
|
|
725
|
+
'application/x-www-form-urlencoded': {
|
|
726
|
+
/** @description Authorization ID */
|
|
727
|
+
id: string;
|
|
728
|
+
/** @description Authorization description */
|
|
729
|
+
authorizedFor: string;
|
|
730
|
+
/** @description Storage token of the requester */
|
|
731
|
+
token: string;
|
|
732
|
+
/** @description URL where to redirect the client after authorization */
|
|
733
|
+
returnUrl: string;
|
|
734
|
+
/** @description Custom application key */
|
|
735
|
+
appKey?: string | null;
|
|
736
|
+
/** @description Custom application secret */
|
|
737
|
+
appSecret?: string | null;
|
|
738
|
+
/** @description Custom authorization URL */
|
|
739
|
+
authUrl?: string | null;
|
|
740
|
+
/** @description Custom token URL */
|
|
741
|
+
tokenUrl?: string | null;
|
|
742
|
+
/**
|
|
743
|
+
* @description ID of the branch where the credentials should live. If not specified, the credentials will be
|
|
744
|
+
* considered as project-wide.
|
|
745
|
+
*
|
|
746
|
+
* The property is not required for now, to keep compatibility with existing clients. But it will be
|
|
747
|
+
* required in the future (but still nullable), to ensure the client has considered if they want to
|
|
748
|
+
* create project-wide or branch-specific credentials.
|
|
749
|
+
*/
|
|
750
|
+
branchId?: string | null;
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
};
|
|
754
|
+
responses: {
|
|
755
|
+
/** @description Redirect to OAuth provider */
|
|
756
|
+
302: {
|
|
757
|
+
headers: {
|
|
758
|
+
/** @description URL to follow to authorize the component */
|
|
759
|
+
Location?: string;
|
|
760
|
+
[name: string]: unknown;
|
|
761
|
+
};
|
|
762
|
+
content?: never;
|
|
763
|
+
};
|
|
764
|
+
400: components['responses']['400_BadRequest'];
|
|
765
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
766
|
+
};
|
|
767
|
+
};
|
|
768
|
+
authorizeCallback: {
|
|
769
|
+
parameters: {
|
|
770
|
+
query?: never;
|
|
771
|
+
header?: never;
|
|
772
|
+
path: {
|
|
773
|
+
/** @description Component ID */
|
|
774
|
+
componentId: string;
|
|
775
|
+
};
|
|
776
|
+
cookie?: never;
|
|
777
|
+
};
|
|
778
|
+
requestBody?: never;
|
|
779
|
+
responses: {
|
|
780
|
+
/** @description Redirect client back to Keboola */
|
|
781
|
+
302: {
|
|
782
|
+
headers: {
|
|
783
|
+
Location?: string;
|
|
784
|
+
[name: string]: unknown;
|
|
785
|
+
};
|
|
786
|
+
content?: never;
|
|
787
|
+
};
|
|
788
|
+
400: components['responses']['400_BadRequest'];
|
|
789
|
+
};
|
|
790
|
+
};
|
|
791
|
+
credentialsList: {
|
|
792
|
+
parameters: {
|
|
793
|
+
query?: {
|
|
794
|
+
/** @description Component ID */
|
|
795
|
+
componentId?: string;
|
|
796
|
+
/**
|
|
797
|
+
* @description Branch ID
|
|
798
|
+
*
|
|
799
|
+
* Use value `null` to get credentials without branchId.
|
|
800
|
+
*/
|
|
801
|
+
branchId?: string;
|
|
802
|
+
};
|
|
803
|
+
header?: never;
|
|
804
|
+
path?: never;
|
|
805
|
+
cookie?: never;
|
|
806
|
+
};
|
|
807
|
+
requestBody?: never;
|
|
808
|
+
responses: {
|
|
809
|
+
/** @description OK */
|
|
810
|
+
200: {
|
|
811
|
+
headers: {
|
|
812
|
+
[name: string]: unknown;
|
|
813
|
+
};
|
|
814
|
+
content: {
|
|
815
|
+
'application/json': components['schemas']['Credentials'][];
|
|
816
|
+
};
|
|
817
|
+
};
|
|
818
|
+
400: components['responses']['400_BadRequest'];
|
|
819
|
+
401: components['responses']['401_Unauthorized'];
|
|
820
|
+
403: components['responses']['403_Forbidden'];
|
|
821
|
+
};
|
|
822
|
+
};
|
|
823
|
+
componentCredentialsList: {
|
|
824
|
+
parameters: {
|
|
825
|
+
query?: never;
|
|
826
|
+
header?: never;
|
|
827
|
+
path: {
|
|
828
|
+
/** @description Component ID */
|
|
829
|
+
componentId: string;
|
|
830
|
+
};
|
|
831
|
+
cookie?: never;
|
|
832
|
+
};
|
|
833
|
+
requestBody?: never;
|
|
834
|
+
responses: {
|
|
835
|
+
/** @description OK */
|
|
836
|
+
200: {
|
|
837
|
+
headers: {
|
|
838
|
+
[name: string]: unknown;
|
|
839
|
+
};
|
|
840
|
+
content: {
|
|
841
|
+
'application/json': components['schemas']['Credentials'][];
|
|
842
|
+
};
|
|
843
|
+
};
|
|
844
|
+
401: components['responses']['401_Unauthorized'];
|
|
845
|
+
403: components['responses']['403_Forbidden'];
|
|
846
|
+
};
|
|
847
|
+
};
|
|
848
|
+
componentCredentialsCreate: {
|
|
849
|
+
parameters: {
|
|
850
|
+
query?: never;
|
|
851
|
+
header?: never;
|
|
852
|
+
path: {
|
|
853
|
+
/** @description Component ID */
|
|
854
|
+
componentId: string;
|
|
855
|
+
};
|
|
856
|
+
cookie?: never;
|
|
857
|
+
};
|
|
858
|
+
requestBody: {
|
|
859
|
+
content: {
|
|
860
|
+
'application/x-www-form-urlencoded': {
|
|
861
|
+
/** @description Credentials ID */
|
|
862
|
+
id: string;
|
|
863
|
+
/** @description Authorization description */
|
|
864
|
+
authorizedFor: string;
|
|
865
|
+
/** @description Encrypted data, e.g. OAuth token */
|
|
866
|
+
'#data': string;
|
|
867
|
+
/**
|
|
868
|
+
* @description ID of the branch where the credentials should live. If not specified, the credentials will be
|
|
869
|
+
* considered as project-wide.
|
|
870
|
+
*
|
|
871
|
+
* The property is not required for now, to keep compatibility with existing clients. But it will be
|
|
872
|
+
* required in the future (but still nullable), to ensure the client has considered if they want to
|
|
873
|
+
* create project-wide or branch-specific credentials.
|
|
874
|
+
*/
|
|
875
|
+
branchId?: string | null;
|
|
876
|
+
};
|
|
877
|
+
};
|
|
878
|
+
};
|
|
879
|
+
responses: {
|
|
880
|
+
/** @description Credentials created */
|
|
881
|
+
201: {
|
|
882
|
+
headers: {
|
|
883
|
+
[name: string]: unknown;
|
|
884
|
+
};
|
|
885
|
+
content: {
|
|
886
|
+
'application/json': components['schemas']['Credentials'];
|
|
887
|
+
};
|
|
888
|
+
};
|
|
889
|
+
400: components['responses']['400_BadRequest'];
|
|
890
|
+
404: components['responses']['404_NotFound'];
|
|
891
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
892
|
+
};
|
|
893
|
+
};
|
|
894
|
+
credentialsDetail: {
|
|
895
|
+
parameters: {
|
|
896
|
+
query?: never;
|
|
897
|
+
header?: never;
|
|
898
|
+
path: {
|
|
899
|
+
/** @description Component ID */
|
|
900
|
+
componentId: string;
|
|
901
|
+
/** @description Credentials name (authorization ID) */
|
|
902
|
+
name: string;
|
|
903
|
+
};
|
|
904
|
+
cookie?: never;
|
|
905
|
+
};
|
|
906
|
+
requestBody?: never;
|
|
907
|
+
responses: {
|
|
908
|
+
/** @description OK */
|
|
909
|
+
200: {
|
|
910
|
+
headers: {
|
|
911
|
+
[name: string]: unknown;
|
|
912
|
+
};
|
|
913
|
+
content: {
|
|
914
|
+
'application/json': components['schemas']['Credentials'];
|
|
915
|
+
};
|
|
916
|
+
};
|
|
917
|
+
401: components['responses']['401_Unauthorized'];
|
|
918
|
+
403: components['responses']['403_Forbidden'];
|
|
919
|
+
};
|
|
920
|
+
};
|
|
921
|
+
credentialsDelete: {
|
|
922
|
+
parameters: {
|
|
923
|
+
query?: never;
|
|
924
|
+
header?: never;
|
|
925
|
+
path: {
|
|
926
|
+
/** @description Component ID */
|
|
927
|
+
componentId: string;
|
|
928
|
+
/** @description Credentials name (authorization ID) */
|
|
929
|
+
name: string;
|
|
930
|
+
};
|
|
931
|
+
cookie?: never;
|
|
932
|
+
};
|
|
933
|
+
requestBody?: never;
|
|
934
|
+
responses: {
|
|
935
|
+
/** @description Credentials deleted */
|
|
936
|
+
204: {
|
|
937
|
+
headers: {
|
|
938
|
+
[name: string]: unknown;
|
|
939
|
+
};
|
|
940
|
+
content?: never;
|
|
941
|
+
};
|
|
942
|
+
401: components['responses']['401_Unauthorized'];
|
|
943
|
+
404: components['responses']['404_NotFound'];
|
|
944
|
+
};
|
|
945
|
+
};
|
|
946
|
+
consumersList: {
|
|
947
|
+
parameters: {
|
|
948
|
+
query?: never;
|
|
949
|
+
header?: never;
|
|
950
|
+
path?: never;
|
|
951
|
+
cookie?: never;
|
|
952
|
+
};
|
|
953
|
+
requestBody?: never;
|
|
954
|
+
responses: {
|
|
955
|
+
/** @description OK */
|
|
956
|
+
200: {
|
|
957
|
+
headers: {
|
|
958
|
+
[name: string]: unknown;
|
|
959
|
+
};
|
|
960
|
+
content: {
|
|
961
|
+
'application/json': components['schemas']['Consumer'][];
|
|
962
|
+
};
|
|
963
|
+
};
|
|
964
|
+
401: components['responses']['401_Unauthorized'];
|
|
965
|
+
};
|
|
966
|
+
};
|
|
967
|
+
consumerCreate: {
|
|
968
|
+
parameters: {
|
|
969
|
+
query?: never;
|
|
970
|
+
header?: never;
|
|
971
|
+
path?: never;
|
|
972
|
+
cookie?: never;
|
|
973
|
+
};
|
|
974
|
+
requestBody: {
|
|
975
|
+
content: {
|
|
976
|
+
'application/json': {
|
|
977
|
+
componentId: string;
|
|
978
|
+
friendlyName: string;
|
|
979
|
+
oauthVersion: string;
|
|
980
|
+
authUrl: string;
|
|
981
|
+
tokenUrl: string;
|
|
982
|
+
requestTokenUrl?: string | null;
|
|
983
|
+
appKey: string;
|
|
984
|
+
appSecret: string;
|
|
985
|
+
allowedEndpointHosts?: string[];
|
|
986
|
+
};
|
|
987
|
+
};
|
|
988
|
+
};
|
|
989
|
+
responses: {
|
|
990
|
+
/** @description Consumer created */
|
|
991
|
+
201: {
|
|
992
|
+
headers: {
|
|
993
|
+
[name: string]: unknown;
|
|
994
|
+
};
|
|
995
|
+
content: {
|
|
996
|
+
'application/json': components['schemas']['Consumer'];
|
|
997
|
+
};
|
|
998
|
+
};
|
|
999
|
+
401: components['responses']['401_Unauthorized'];
|
|
1000
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
1001
|
+
};
|
|
1002
|
+
};
|
|
1003
|
+
consumerDetail: {
|
|
1004
|
+
parameters: {
|
|
1005
|
+
query?: never;
|
|
1006
|
+
header?: never;
|
|
1007
|
+
path: {
|
|
1008
|
+
/** @description Component ID */
|
|
1009
|
+
componentId: string;
|
|
1010
|
+
};
|
|
1011
|
+
cookie?: never;
|
|
1012
|
+
};
|
|
1013
|
+
requestBody?: never;
|
|
1014
|
+
responses: {
|
|
1015
|
+
/** @description OK */
|
|
1016
|
+
200: {
|
|
1017
|
+
headers: {
|
|
1018
|
+
[name: string]: unknown;
|
|
1019
|
+
};
|
|
1020
|
+
content: {
|
|
1021
|
+
'application/json': components['schemas']['Consumer'];
|
|
1022
|
+
};
|
|
1023
|
+
};
|
|
1024
|
+
401: components['responses']['401_Unauthorized'];
|
|
1025
|
+
404: components['responses']['404_NotFound'];
|
|
1026
|
+
};
|
|
1027
|
+
};
|
|
1028
|
+
consumerDelete: {
|
|
1029
|
+
parameters: {
|
|
1030
|
+
query?: never;
|
|
1031
|
+
header?: never;
|
|
1032
|
+
path: {
|
|
1033
|
+
/** @description Component ID */
|
|
1034
|
+
componentId: string;
|
|
1035
|
+
};
|
|
1036
|
+
cookie?: never;
|
|
1037
|
+
};
|
|
1038
|
+
requestBody?: never;
|
|
1039
|
+
responses: {
|
|
1040
|
+
/** @description Consumer deleted */
|
|
1041
|
+
204: {
|
|
1042
|
+
headers: {
|
|
1043
|
+
[name: string]: unknown;
|
|
1044
|
+
};
|
|
1045
|
+
content?: never;
|
|
1046
|
+
};
|
|
1047
|
+
401: components['responses']['401_Unauthorized'];
|
|
1048
|
+
404: components['responses']['404_NotFound'];
|
|
1049
|
+
};
|
|
1050
|
+
};
|
|
1051
|
+
consumerUpdate: {
|
|
1052
|
+
parameters: {
|
|
1053
|
+
query?: never;
|
|
1054
|
+
header?: never;
|
|
1055
|
+
path: {
|
|
1056
|
+
/** @description Component ID */
|
|
1057
|
+
componentId: string;
|
|
1058
|
+
};
|
|
1059
|
+
cookie?: never;
|
|
1060
|
+
};
|
|
1061
|
+
requestBody: {
|
|
1062
|
+
content: {
|
|
1063
|
+
'application/json': {
|
|
1064
|
+
friendlyName?: string | null;
|
|
1065
|
+
authUrl?: string | null;
|
|
1066
|
+
tokenUrl?: string | null;
|
|
1067
|
+
requestTokenUrl?: string | null;
|
|
1068
|
+
appKey?: string | null;
|
|
1069
|
+
appSecret?: string | null;
|
|
1070
|
+
allowedEndpointHosts?: string[] | null;
|
|
1071
|
+
};
|
|
1072
|
+
};
|
|
1073
|
+
};
|
|
1074
|
+
responses: {
|
|
1075
|
+
/** @description Consumer updated */
|
|
1076
|
+
200: {
|
|
1077
|
+
headers: {
|
|
1078
|
+
[name: string]: unknown;
|
|
1079
|
+
};
|
|
1080
|
+
content: {
|
|
1081
|
+
'application/json': components['schemas']['Consumer'];
|
|
1082
|
+
};
|
|
1083
|
+
};
|
|
1084
|
+
401: components['responses']['401_Unauthorized'];
|
|
1085
|
+
404: components['responses']['404_NotFound'];
|
|
1086
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
1087
|
+
};
|
|
1088
|
+
};
|
|
1089
|
+
platformConsumerCreate: {
|
|
1090
|
+
parameters: {
|
|
1091
|
+
query?: never;
|
|
1092
|
+
header?: never;
|
|
1093
|
+
path?: never;
|
|
1094
|
+
cookie?: never;
|
|
1095
|
+
};
|
|
1096
|
+
requestBody: {
|
|
1097
|
+
content: {
|
|
1098
|
+
'application/json': components['schemas']['PlatformConsumerCreateRequest'];
|
|
1099
|
+
};
|
|
1100
|
+
};
|
|
1101
|
+
responses: {
|
|
1102
|
+
/** @description Platform consumer registered */
|
|
1103
|
+
201: {
|
|
1104
|
+
headers: {
|
|
1105
|
+
[name: string]: unknown;
|
|
1106
|
+
};
|
|
1107
|
+
content: {
|
|
1108
|
+
'application/json': components['schemas']['PlatformConsumer'];
|
|
1109
|
+
};
|
|
1110
|
+
};
|
|
1111
|
+
401: components['responses']['401_Unauthorized'];
|
|
1112
|
+
/** @description A registration of this type already exists for that GitHub host */
|
|
1113
|
+
409: {
|
|
1114
|
+
headers: {
|
|
1115
|
+
[name: string]: unknown;
|
|
1116
|
+
};
|
|
1117
|
+
content: {
|
|
1118
|
+
'application/json': components['schemas']['Error'];
|
|
1119
|
+
};
|
|
1120
|
+
};
|
|
1121
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
1122
|
+
};
|
|
1123
|
+
};
|
|
1124
|
+
platformConsumerDetail: {
|
|
1125
|
+
parameters: {
|
|
1126
|
+
query?: never;
|
|
1127
|
+
header?: never;
|
|
1128
|
+
path: {
|
|
1129
|
+
/** @description Platform consumer ID. */
|
|
1130
|
+
id: components['parameters']['PlatformConsumerId'];
|
|
1131
|
+
};
|
|
1132
|
+
cookie?: never;
|
|
1133
|
+
};
|
|
1134
|
+
requestBody?: never;
|
|
1135
|
+
responses: {
|
|
1136
|
+
/** @description Platform consumer detail */
|
|
1137
|
+
200: {
|
|
1138
|
+
headers: {
|
|
1139
|
+
[name: string]: unknown;
|
|
1140
|
+
};
|
|
1141
|
+
content: {
|
|
1142
|
+
'application/json': components['schemas']['PlatformConsumer'];
|
|
1143
|
+
};
|
|
1144
|
+
};
|
|
1145
|
+
401: components['responses']['401_Unauthorized'];
|
|
1146
|
+
404: components['responses']['404_NotFound'];
|
|
1147
|
+
};
|
|
1148
|
+
};
|
|
1149
|
+
platformConsumerDelete: {
|
|
1150
|
+
parameters: {
|
|
1151
|
+
query?: never;
|
|
1152
|
+
header?: never;
|
|
1153
|
+
path: {
|
|
1154
|
+
/** @description Platform consumer ID. */
|
|
1155
|
+
id: components['parameters']['PlatformConsumerId'];
|
|
1156
|
+
};
|
|
1157
|
+
cookie?: never;
|
|
1158
|
+
};
|
|
1159
|
+
requestBody?: never;
|
|
1160
|
+
responses: {
|
|
1161
|
+
/** @description Platform consumer deleted */
|
|
1162
|
+
204: {
|
|
1163
|
+
headers: {
|
|
1164
|
+
[name: string]: unknown;
|
|
1165
|
+
};
|
|
1166
|
+
content?: never;
|
|
1167
|
+
};
|
|
1168
|
+
401: components['responses']['401_Unauthorized'];
|
|
1169
|
+
404: components['responses']['404_NotFound'];
|
|
1170
|
+
/** @description Organizations are still connected through this registration */
|
|
1171
|
+
409: {
|
|
1172
|
+
headers: {
|
|
1173
|
+
[name: string]: unknown;
|
|
1174
|
+
};
|
|
1175
|
+
content: {
|
|
1176
|
+
'application/json': components['schemas']['Error'];
|
|
1177
|
+
};
|
|
1178
|
+
};
|
|
1179
|
+
};
|
|
1180
|
+
};
|
|
1181
|
+
platformConsumerInstallCallback: {
|
|
1182
|
+
parameters: {
|
|
1183
|
+
query: {
|
|
1184
|
+
/** @description GitHub installation ID. */
|
|
1185
|
+
installation_id?: string;
|
|
1186
|
+
/** @description Temporary user authorization code. Present only when the App has "Request user authorization (OAuth) during installation" enabled; the callback exchanges it for a user-to-server token and verifies installation ownership with it. */
|
|
1187
|
+
code?: string;
|
|
1188
|
+
/** @description What GitHub did. `request` means an owner still has to approve. */
|
|
1189
|
+
setup_action?: 'install' | 'request' | 'update';
|
|
1190
|
+
/** @description Opaque install-session ID issued when the flow started. */
|
|
1191
|
+
state: string;
|
|
1192
|
+
};
|
|
1193
|
+
header?: never;
|
|
1194
|
+
path?: never;
|
|
1195
|
+
cookie?: never;
|
|
1196
|
+
};
|
|
1197
|
+
requestBody?: never;
|
|
1198
|
+
responses: {
|
|
1199
|
+
/** @description Redirect back to the `returnUrl` supplied when the flow started */
|
|
1200
|
+
302: {
|
|
1201
|
+
headers: {
|
|
1202
|
+
[name: string]: unknown;
|
|
1203
|
+
};
|
|
1204
|
+
content?: never;
|
|
1205
|
+
};
|
|
1206
|
+
400: components['responses']['400_BadRequest'];
|
|
1207
|
+
/** @description The installer is not an active owner of the GitHub organization (or not the personal account) the installation belongs to, or the App lacks "Organization members: read" */
|
|
1208
|
+
403: {
|
|
1209
|
+
headers: {
|
|
1210
|
+
[name: string]: unknown;
|
|
1211
|
+
};
|
|
1212
|
+
content: {
|
|
1213
|
+
'application/json': components['schemas']['Error'];
|
|
1214
|
+
};
|
|
1215
|
+
};
|
|
1216
|
+
/** @description This installation is already connected to the organization (under the name the message states), the install session was already completed, or this attempt was superseded by a newer start under the same name while the callback ran (nothing is written; finish the newer attempt) */
|
|
1217
|
+
409: {
|
|
1218
|
+
headers: {
|
|
1219
|
+
[name: string]: unknown;
|
|
1220
|
+
};
|
|
1221
|
+
content: {
|
|
1222
|
+
'application/json': components['schemas']['Error'];
|
|
1223
|
+
};
|
|
1224
|
+
};
|
|
1225
|
+
};
|
|
1226
|
+
};
|
|
1227
|
+
organizationCredentialsInit: {
|
|
1228
|
+
parameters: {
|
|
1229
|
+
query?: never;
|
|
1230
|
+
header?: never;
|
|
1231
|
+
path: {
|
|
1232
|
+
/** @description Numeric Keboola organization ID. Always explicit — it is never derived from the token, because a user typically belongs to projects across several organizations. */
|
|
1233
|
+
organizationId: components['parameters']['OrganizationId'];
|
|
1234
|
+
};
|
|
1235
|
+
cookie?: never;
|
|
1236
|
+
};
|
|
1237
|
+
requestBody: {
|
|
1238
|
+
content: {
|
|
1239
|
+
'application/x-www-form-urlencoded': components['schemas']['OrganizationCredentialsInitRequest'];
|
|
1240
|
+
};
|
|
1241
|
+
};
|
|
1242
|
+
responses: {
|
|
1243
|
+
/** @description Redirect to GitHub to install the App */
|
|
1244
|
+
302: {
|
|
1245
|
+
headers: {
|
|
1246
|
+
[name: string]: unknown;
|
|
1247
|
+
};
|
|
1248
|
+
content?: never;
|
|
1249
|
+
};
|
|
1250
|
+
400: components['responses']['400_BadRequest'];
|
|
1251
|
+
403: components['responses']['403_Forbidden'];
|
|
1252
|
+
/** @description A completed connection with this name already exists in the organization */
|
|
1253
|
+
409: {
|
|
1254
|
+
headers: {
|
|
1255
|
+
[name: string]: unknown;
|
|
1256
|
+
};
|
|
1257
|
+
content: {
|
|
1258
|
+
'application/json': components['schemas']['Error'];
|
|
1259
|
+
};
|
|
1260
|
+
};
|
|
1261
|
+
/** @description No GitHub App is registered for that host on this stack */
|
|
1262
|
+
412: {
|
|
1263
|
+
headers: {
|
|
1264
|
+
[name: string]: unknown;
|
|
1265
|
+
};
|
|
1266
|
+
content: {
|
|
1267
|
+
'application/json': components['schemas']['Error'];
|
|
1268
|
+
};
|
|
1269
|
+
};
|
|
1270
|
+
422: components['responses']['422_UnprocessableEntity'];
|
|
1271
|
+
503: components['responses']['503_ServiceUnavailable'];
|
|
1272
|
+
};
|
|
1273
|
+
};
|
|
1274
|
+
organizationCredentialsList: {
|
|
1275
|
+
parameters: {
|
|
1276
|
+
query?: never;
|
|
1277
|
+
header?: never;
|
|
1278
|
+
path: {
|
|
1279
|
+
/** @description Numeric Keboola organization ID. Always explicit — it is never derived from the token, because a user typically belongs to projects across several organizations. */
|
|
1280
|
+
organizationId: components['parameters']['OrganizationId'];
|
|
1281
|
+
};
|
|
1282
|
+
cookie?: never;
|
|
1283
|
+
};
|
|
1284
|
+
requestBody?: never;
|
|
1285
|
+
responses: {
|
|
1286
|
+
/** @description Connected GitHub organizations */
|
|
1287
|
+
200: {
|
|
1288
|
+
headers: {
|
|
1289
|
+
[name: string]: unknown;
|
|
1290
|
+
};
|
|
1291
|
+
content: {
|
|
1292
|
+
'application/json': components['schemas']['OrganizationCredentials'][];
|
|
1293
|
+
};
|
|
1294
|
+
};
|
|
1295
|
+
401: components['responses']['401_Unauthorized'];
|
|
1296
|
+
403: components['responses']['403_Forbidden'];
|
|
1297
|
+
503: components['responses']['503_ServiceUnavailable'];
|
|
1298
|
+
};
|
|
1299
|
+
};
|
|
1300
|
+
organizationCredentialsDelete: {
|
|
1301
|
+
parameters: {
|
|
1302
|
+
query?: never;
|
|
1303
|
+
header?: never;
|
|
1304
|
+
path: {
|
|
1305
|
+
/** @description Numeric Keboola organization ID. Always explicit — it is never derived from the token, because a user typically belongs to projects across several organizations. */
|
|
1306
|
+
organizationId: components['parameters']['OrganizationId'];
|
|
1307
|
+
/** @description Organization credentials ID. */
|
|
1308
|
+
id: string;
|
|
1309
|
+
};
|
|
1310
|
+
cookie?: never;
|
|
1311
|
+
};
|
|
1312
|
+
requestBody?: never;
|
|
1313
|
+
responses: {
|
|
1314
|
+
/** @description Connection removed */
|
|
1315
|
+
204: {
|
|
1316
|
+
headers: {
|
|
1317
|
+
[name: string]: unknown;
|
|
1318
|
+
};
|
|
1319
|
+
content?: never;
|
|
1320
|
+
};
|
|
1321
|
+
401: components['responses']['401_Unauthorized'];
|
|
1322
|
+
403: components['responses']['403_Forbidden'];
|
|
1323
|
+
404: components['responses']['404_NotFound'];
|
|
1324
|
+
503: components['responses']['503_ServiceUnavailable'];
|
|
1325
|
+
};
|
|
1326
|
+
};
|
|
1327
|
+
organizationCredentialsMintToken: {
|
|
1328
|
+
parameters: {
|
|
1329
|
+
query?: never;
|
|
1330
|
+
header?: never;
|
|
1331
|
+
path?: never;
|
|
1332
|
+
cookie?: never;
|
|
1333
|
+
};
|
|
1334
|
+
requestBody: {
|
|
1335
|
+
content: {
|
|
1336
|
+
'application/json': components['schemas']['MintTokenRequest'];
|
|
1337
|
+
};
|
|
1338
|
+
};
|
|
1339
|
+
responses: {
|
|
1340
|
+
/** @description Minted token */
|
|
1341
|
+
200: {
|
|
1342
|
+
headers: {
|
|
1343
|
+
[name: string]: unknown;
|
|
1344
|
+
};
|
|
1345
|
+
content: {
|
|
1346
|
+
'application/json': components['schemas']['MintedToken'];
|
|
1347
|
+
};
|
|
1348
|
+
};
|
|
1349
|
+
401: components['responses']['401_Unauthorized'];
|
|
1350
|
+
/** @description The application token is valid but not authorized for this endpoint (it lacks the `oauth:mint` scope). Never returned for a problem with the requested project or repository. */
|
|
1351
|
+
403: {
|
|
1352
|
+
headers: {
|
|
1353
|
+
[name: string]: unknown;
|
|
1354
|
+
};
|
|
1355
|
+
content: {
|
|
1356
|
+
'application/json': components['schemas']['Error'];
|
|
1357
|
+
};
|
|
1358
|
+
};
|
|
1359
|
+
/** @description The project was not found in the organization (it does not exist or belongs to another organization), no completed GitHub connection covers the repository's owner in that organization (the connected account login is fixed at install time, so after a GitHub organization rename this holds until the connection is reinstalled), or the GitHub installation was removed on GitHub */
|
|
1360
|
+
404: {
|
|
1361
|
+
headers: {
|
|
1362
|
+
[name: string]: unknown;
|
|
1363
|
+
};
|
|
1364
|
+
content: {
|
|
1365
|
+
'application/json': components['schemas']['Error'];
|
|
1366
|
+
};
|
|
1367
|
+
};
|
|
1368
|
+
/** @description No GitHub App is registered for that repository's host */
|
|
1369
|
+
412: {
|
|
1370
|
+
headers: {
|
|
1371
|
+
[name: string]: unknown;
|
|
1372
|
+
};
|
|
1373
|
+
content: {
|
|
1374
|
+
'application/json': components['schemas']['Error'];
|
|
1375
|
+
};
|
|
1376
|
+
};
|
|
1377
|
+
/** @description The repository is not covered by the organization's GitHub installation (GitHub answered `422`), or the request failed validation (see `context` for the failing fields) */
|
|
1378
|
+
422: {
|
|
1379
|
+
headers: {
|
|
1380
|
+
[name: string]: unknown;
|
|
1381
|
+
};
|
|
1382
|
+
content: {
|
|
1383
|
+
'application/json': components['schemas']['Error'] | components['schemas']['ValidationError'];
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
429: components['responses']['429_TooManyRequests'];
|
|
1387
|
+
/** @description GitHub failed (5xx, unreachable, malformed answer), rejected the App's own credentials, or refused to issue a token for the installation at all — a plain `403` from GitHub that is not rate limiting, i.e. the installation is suspended or lacks a permission. Retryable. */
|
|
1388
|
+
502: {
|
|
1389
|
+
headers: {
|
|
1390
|
+
[name: string]: unknown;
|
|
1391
|
+
};
|
|
1392
|
+
content: {
|
|
1393
|
+
'application/json': components['schemas']['Error'];
|
|
1394
|
+
};
|
|
1395
|
+
};
|
|
1396
|
+
503: components['responses']['503_ServiceUnavailable'];
|
|
1397
|
+
};
|
|
1398
|
+
};
|
|
1399
|
+
healthCheck: {
|
|
1400
|
+
parameters: {
|
|
1401
|
+
query?: never;
|
|
1402
|
+
header?: never;
|
|
1403
|
+
path?: never;
|
|
1404
|
+
cookie?: never;
|
|
1405
|
+
};
|
|
1406
|
+
requestBody?: never;
|
|
1407
|
+
responses: {
|
|
1408
|
+
/** @description OK */
|
|
1409
|
+
200: {
|
|
1410
|
+
headers: {
|
|
1411
|
+
[name: string]: unknown;
|
|
1412
|
+
};
|
|
1413
|
+
content: {
|
|
1414
|
+
'application/json': {
|
|
1415
|
+
api?: string;
|
|
1416
|
+
/** Format: url */
|
|
1417
|
+
documentation?: string;
|
|
1418
|
+
};
|
|
1419
|
+
};
|
|
1420
|
+
};
|
|
1421
|
+
};
|
|
1422
|
+
};
|
|
1423
|
+
}
|
|
1424
|
+
//#endregion
|
|
1425
|
+
//#region src/clients/oauth/utils.d.ts
|
|
1426
|
+
/**
|
|
1427
|
+
* Which credentials to list:
|
|
1428
|
+
*
|
|
1429
|
+
* - `all` — the whole project: branch-scoped and branchless alike.
|
|
1430
|
+
* - `branchless` — only what is tied to no branch at all, not even the default one.
|
|
1431
|
+
* - `branched` — only the branch whose id it carries.
|
|
1432
|
+
*
|
|
1433
|
+
* Discriminated on `scope`, not on `branchId` being present: a `string | 'all' | 'branchless'` union
|
|
1434
|
+
* collapses to `string`, so a mistyped scope would silently become a branch-id filter.
|
|
1435
|
+
*/
|
|
1436
|
+
type GetCredentialsInput = {
|
|
1437
|
+
scope: 'all';
|
|
1438
|
+
componentId?: string;
|
|
1439
|
+
} | {
|
|
1440
|
+
scope: 'branchless';
|
|
1441
|
+
componentId?: string;
|
|
1442
|
+
} | {
|
|
1443
|
+
scope: 'branched';
|
|
1444
|
+
branchId: string;
|
|
1445
|
+
componentId?: string;
|
|
1446
|
+
};
|
|
1447
|
+
//#endregion
|
|
1448
|
+
//#region src/clients/oauth/types.d.ts
|
|
1449
|
+
type Credential = OpenapiReturnType<paths['/credentials/{componentId}/{name}']['get']>;
|
|
1450
|
+
type CreateCredentialBody = OpenapiBodyType<paths['/credentials/{componentId}']['post']>;
|
|
1451
|
+
type CredentialPath = OpenapiPathType<paths['/credentials/{componentId}/{name}']['get']>;
|
|
1452
|
+
type ComponentPath = OpenapiPathType<paths['/credentials/{componentId}']['post']>;
|
|
1453
|
+
/** Addresses one credential. The spec calls the second segment `name`; every caller calls it `id`. */
|
|
1454
|
+
type CredentialInput = ComponentPath & {
|
|
1455
|
+
id: CredentialPath['name'];
|
|
1456
|
+
};
|
|
1457
|
+
/**
|
|
1458
|
+
* `data` is the pre-`#data` create shape, accepted only by OAuth services predating this spec, so it
|
|
1459
|
+
* has no schema to generate from. The client takes the plain object either way and picks the wire
|
|
1460
|
+
* shape the stack accepts.
|
|
1461
|
+
*/
|
|
1462
|
+
type CreateCredentialInput = ComponentPath & Omit<CreateCredentialBody, '#data'> & {
|
|
1463
|
+
data: Record<string, unknown>;
|
|
1464
|
+
};
|
|
1465
|
+
//#endregion
|
|
1466
|
+
export { CredentialInput as a, Credential as i, CreateCredentialBody as n, CredentialPath as o, CreateCredentialInput as r, GetCredentialsInput as s, ComponentPath as t };
|
|
1467
|
+
//# sourceMappingURL=types-Btb8r9iw.d.ts.map
|