@keboola/api-client 42.0.0 → 43.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.
Files changed (127) hide show
  1. package/API-SURFACE.md +2 -1
  2. package/CHANGELOG.md +12 -0
  3. package/dist/collect-97WhfEpt.js +30 -0
  4. package/dist/collect-97WhfEpt.js.map +1 -0
  5. package/dist/collect-B5TCNiT1.cjs +35 -0
  6. package/dist/collect-B5TCNiT1.cjs.map +1 -0
  7. package/dist/createAbortError-BxupOt-6.js +6 -0
  8. package/dist/createAbortError-BxupOt-6.js.map +1 -0
  9. package/dist/createAbortError-RendOpo7.cjs +11 -0
  10. package/dist/createAbortError-RendOpo7.cjs.map +1 -0
  11. package/dist/dataScience/index.d.cts +1 -1
  12. package/dist/dataScience/index.d.ts +1 -1
  13. package/dist/dataScience/types.d.cts +1 -1
  14. package/dist/dataScience/types.d.ts +1 -1
  15. package/dist/developerPortal/index.d.cts +2 -2
  16. package/dist/developerPortal/index.d.ts +2 -2
  17. package/dist/developerPortal/types.d.cts +1 -1
  18. package/dist/developerPortal/types.d.ts +1 -1
  19. package/dist/{index-VnJCp8IL.d.cts → index-04pgr-EO.d.cts} +3 -2
  20. package/dist/{index-CcMHJcuP.d.cts → index-BHWTa4YN.d.cts} +3 -2
  21. package/dist/{index-CpE_NWuq.d.ts → index-BQZ9njUC.d.ts} +28 -10
  22. package/dist/{index-Cz0MXhzs.d.cts → index-C7KThHI3.d.cts} +6 -2
  23. package/dist/{index-D-VMgpGc.d.ts → index-CAvT_ahE.d.ts} +6 -2
  24. package/dist/{index-C11JSxBY.d.ts → index-CX8GAP2g.d.ts} +13 -8
  25. package/dist/{index-CKENwClW.d.cts → index-CdS-c6sC.d.cts} +3 -3
  26. package/dist/{index-B2-7WJ-E.d.cts → index-Cm04GKm9.d.cts} +28 -10
  27. package/dist/{index-C4TNAA8-.d.cts → index-Cvkrjh--.d.cts} +13 -8
  28. package/dist/{index-Cw-d6vV3.d.ts → index-D7of2MMN.d.ts} +3 -3
  29. package/dist/{index-DwM1EpnZ.d.ts → index-R-w0Zncz.d.ts} +3 -2
  30. package/dist/{index-D_-4uQF8.d.ts → index-zyxZVJnd.d.ts} +3 -2
  31. package/dist/index.cjs +6 -5
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +5 -4
  36. package/dist/index.js.map +1 -1
  37. package/dist/{jobStatus-CfRtsIpv.js → jobStatus-CDp4r5JQ.js} +3 -5
  38. package/dist/jobStatus-CDp4r5JQ.js.map +1 -0
  39. package/dist/{jobStatus-BMlsyXWI.cjs → jobStatus-CcNlIy5R.cjs} +5 -13
  40. package/dist/{jobStatus-CfRtsIpv.js.map → jobStatus-CcNlIy5R.cjs.map} +1 -1
  41. package/dist/kaiAgent/index.d.cts +1 -1
  42. package/dist/kaiAgent/index.d.ts +1 -1
  43. package/dist/kaiAgent/types.d.cts +1 -1
  44. package/dist/kaiAgent/types.d.ts +1 -1
  45. package/dist/microsoftGraph/index.d.cts +2 -1
  46. package/dist/microsoftGraph/index.d.ts +2 -1
  47. package/dist/microsoftGraph/types.d.cts +1 -1
  48. package/dist/microsoftGraph/types.d.ts +1 -1
  49. package/dist/oauth/index.d.cts +1 -1
  50. package/dist/oauth/index.d.ts +1 -1
  51. package/dist/oauth/types.d.cts +1 -1
  52. package/dist/oauth/types.d.ts +1 -1
  53. package/dist/omnisearch/index.d.cts +1 -1
  54. package/dist/omnisearch/index.d.ts +1 -1
  55. package/dist/omnisearch/types.d.cts +1 -1
  56. package/dist/omnisearch/types.d.ts +1 -1
  57. package/dist/queryService/index.cjs +1 -1
  58. package/dist/queryService/index.d.cts +1 -1
  59. package/dist/queryService/index.d.ts +1 -1
  60. package/dist/queryService/index.js +1 -1
  61. package/dist/{queryService-Dx6AdxOl.cjs → queryService-DSww_TJp.cjs} +2 -2
  62. package/dist/{queryService-Dx6AdxOl.cjs.map → queryService-DSww_TJp.cjs.map} +1 -1
  63. package/dist/{queryService-CdtogGr7.js → queryService-Drvy1ztW.js} +2 -2
  64. package/dist/{queryService-CdtogGr7.js.map → queryService-Drvy1ztW.js.map} +1 -1
  65. package/dist/queue/index.cjs +1 -1
  66. package/dist/queue/index.d.cts +1 -1
  67. package/dist/queue/index.d.ts +1 -1
  68. package/dist/queue/index.js +1 -1
  69. package/dist/{queue-f2xsjy0o.js → queue-Ci_f_5TI.js} +4 -29
  70. package/dist/queue-Ci_f_5TI.js.map +1 -0
  71. package/dist/{queue-wIdnMtaZ.cjs → queue-DpMvv8C-.cjs} +4 -35
  72. package/dist/{queue-f2xsjy0o.js.map → queue-DpMvv8C-.cjs.map} +1 -1
  73. package/dist/scheduler/index.d.cts +13 -1
  74. package/dist/scheduler/index.d.ts +13 -1
  75. package/dist/scheduler/types.d.cts +1 -1
  76. package/dist/scheduler/types.d.ts +1 -1
  77. package/dist/{schema-D1oxyn1O.d.cts → schema-DJa9WBjR.d.cts} +28 -1
  78. package/dist/{schema-D1oxyn1O.d.ts → schema-DJa9WBjR.d.ts} +28 -1
  79. package/dist/sdk/configurations/index.d.cts +1 -1
  80. package/dist/sdk/configurations/index.d.ts +1 -1
  81. package/dist/sdk/developerPortal/index.d.cts +13 -8
  82. package/dist/sdk/developerPortal/index.d.ts +13 -8
  83. package/dist/sdk/queryService/index.cjs +1 -1
  84. package/dist/sdk/queryService/index.d.cts +1 -1
  85. package/dist/sdk/queryService/index.d.ts +1 -1
  86. package/dist/sdk/queryService/index.js +1 -1
  87. package/dist/sdk/storage/index.d.cts +1 -1
  88. package/dist/sdk/storage/index.d.ts +1 -1
  89. package/dist/sdk/vault/index.d.cts +1 -1
  90. package/dist/sdk/vault/index.d.ts +1 -1
  91. package/dist/storage/index.cjs +1 -1
  92. package/dist/storage/index.d.cts +1 -1
  93. package/dist/storage/index.d.ts +1 -1
  94. package/dist/storage/index.js +1 -1
  95. package/dist/{storage-BkdjgtCU.js → storage-C-lyo_iX.js} +2 -2
  96. package/dist/{storage-BkdjgtCU.js.map → storage-C-lyo_iX.js.map} +1 -1
  97. package/dist/{storage-CXQTTVXl.cjs → storage-DAJquqEw.cjs} +2 -2
  98. package/dist/{storage-CXQTTVXl.cjs.map → storage-DAJquqEw.cjs.map} +1 -1
  99. package/dist/{types-n4PTnLii.d.ts → types-AYX7VtS6.d.ts} +179 -2
  100. package/dist/{types-DIiOMV-t.d.ts → types-B3P5yAuI.d.ts} +5 -1
  101. package/dist/{types-BLNB882w.d.cts → types-B3i04d_A.d.cts} +5 -1
  102. package/dist/{types-CZXPu3gn.d.ts → types-BBUZ9EHs.d.ts} +4 -1
  103. package/dist/{types-CP_LBmw3.d.cts → types-BhOUS9j1.d.cts} +26 -3
  104. package/dist/{types-tKkeLa2B.d.cts → types-BiEh5c_t.d.cts} +60 -8
  105. package/dist/{types-RbrfiY8T.d.ts → types-CAp1VexS.d.ts} +3 -3
  106. package/dist/{types-DinIJ1D_.d.cts → types-CBPKpLTf.d.cts} +179 -2
  107. package/dist/{types-DE9hgr7i.d.cts → types-CgBzm1YR.d.cts} +106 -1
  108. package/dist/{types-B61aCifg.d.cts → types-D9axmt5o.d.cts} +4 -1
  109. package/dist/{types-CWyXTMwy.d.ts → types-DaMmgW-O.d.ts} +106 -1
  110. package/dist/{types-q-1r_9d1.d.ts → types-DzV6LaZq.d.ts} +60 -8
  111. package/dist/{types-6kuMW4JW.d.cts → types-c_bsDkV6.d.cts} +3 -3
  112. package/dist/{types-DgJeO9Nd.d.ts → types-gcAb6olM.d.ts} +26 -3
  113. package/dist/vault/index.cjs +27 -2
  114. package/dist/vault/index.cjs.map +1 -1
  115. package/dist/vault/index.d.cts +1 -1
  116. package/dist/vault/index.d.ts +1 -1
  117. package/dist/vault/index.js +27 -2
  118. package/dist/vault/index.js.map +1 -1
  119. package/dist/vault/types.d.cts +1 -1
  120. package/dist/vault/types.d.ts +1 -1
  121. package/package.json +1 -1
  122. package/surface/dataScience.md +2 -2
  123. package/surface/kaiAgent.md +1 -1
  124. package/surface/scheduler.md +3 -3
  125. package/surface/vault.md +1 -0
  126. package/dist/jobStatus-BMlsyXWI.cjs.map +0 -1
  127. package/dist/queue-wIdnMtaZ.cjs.map +0 -1
@@ -352,6 +352,26 @@ type paths = {
352
352
  };
353
353
  };
354
354
  };
355
+ /** @description Request body exceeds `CHAT_BODY_LIMIT_BYTES`. A question carries its attachments inside this JSON as base64, so the raw-file ceiling is roughly three quarters of it. Answered before auth runs, so an unauthenticated caller sees this rather than a 401. */
356
+ 413: {
357
+ headers: {
358
+ [name: string]: unknown;
359
+ };
360
+ content: {
361
+ 'application/json': {
362
+ error: {
363
+ /** @enum {string} */
364
+ type: 'bad_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'payload_too_large' | 'rate_limit' | 'offline' | 'bad_response' | 'internal';
365
+ /** @enum {string} */
366
+ surface: 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'history' | 'vote' | 'artifact';
367
+ message: string;
368
+ /** @enum {string} */
369
+ subtype?: 'burst' | 'monthly_messages' | 'monthly_credits_user' | 'monthly_credits_project' | 'resolved' | 'timed_out' | 'chat_cancelled' | 'swept' | 'shutdown';
370
+ exceptionId?: string;
371
+ };
372
+ };
373
+ };
374
+ };
355
375
  /** @description Rate limit exceeded */
356
376
  429: {
357
377
  headers: {
@@ -992,6 +1012,8 @@ type paths = {
992
1012
  createdAt?: string;
993
1013
  hidden?: boolean;
994
1014
  autoForwarded?: boolean;
1015
+ /** @enum {string} */
1016
+ pausedReason?: 'turn-budget';
995
1017
  requestContext?: {
996
1018
  path?: string;
997
1019
  sqlEditorActive?: boolean;
@@ -1844,7 +1866,7 @@ type paths = {
1844
1866
  };
1845
1867
  };
1846
1868
  };
1847
- /** @description The approval slot existed and is gone. `error.subtype` carries the reason (resolved | timed_out | chat_cancelled | swept | shutdown); the decision is final, so the client must not retry. */
1869
+ /** @description The approval cannot be applied here: the slot existed and is gone, or the pending turn is owned by another process (rolling deploy). `error.subtype` carries the reason (resolved | timed_out | chat_cancelled | swept | shutdown); the decision is final, so the client must not retry. */
1848
1870
  409: {
1849
1871
  headers: {
1850
1872
  [name: string]: unknown;
@@ -2604,6 +2626,11 @@ type paths = {
2604
2626
  /** @enum {string|null} */
2605
2627
  ppuLimitScope: 'user' | 'project' | null;
2606
2628
  projectPpuPercentage: number | null;
2629
+ /** @description The organization's one-time free Kai allowance in PPU — shared by every project and user in the organization, non-expiring, granted once and never refilled. NOT the monthly spend cap (`ppuLimit`/`projectPpuPercentage` above), and clients must not blend the two. `null` when the organization has no allowance at all (created before the rollout boundary, or no billing account resolved); clients hide the allowance UI for null. `remainingPpu` is clamped at zero. */
2630
+ freeAllowance: {
2631
+ grantedPpu: number;
2632
+ remainingPpu: number;
2633
+ } | null;
2607
2634
  /** Format: date-time */
2608
2635
  resetDate: string;
2609
2636
  };
@@ -2708,6 +2735,10 @@ type paths = {
2708
2735
  'application/json': {
2709
2736
  projectId: string;
2710
2737
  customInstructions: string | null;
2738
+ toolPermissions: {
2739
+ [key: string]: 'always_ask' | 'blocked';
2740
+ } | null;
2741
+ canWriteToolPolicy: boolean;
2711
2742
  createdAt: string;
2712
2743
  updatedAt: string;
2713
2744
  };
@@ -2788,6 +2819,10 @@ type paths = {
2788
2819
  'application/json': {
2789
2820
  projectId: string;
2790
2821
  customInstructions: string | null;
2822
+ toolPermissions: {
2823
+ [key: string]: 'always_ask' | 'blocked';
2824
+ } | null;
2825
+ canWriteToolPolicy: boolean;
2791
2826
  createdAt: string;
2792
2827
  updatedAt: string;
2793
2828
  };
@@ -2877,6 +2912,142 @@ type paths = {
2877
2912
  };
2878
2913
  trace?: never;
2879
2914
  };
2915
+ '/api/settings/tool-permissions': {
2916
+ parameters: {
2917
+ query?: never;
2918
+ header?: never;
2919
+ path?: never;
2920
+ cookie?: never;
2921
+ };
2922
+ get?: never;
2923
+ /**
2924
+ * Replace the project Kai tool policy
2925
+ * @description Organization-admin only. Replaces the project-level Kai tool policy.
2926
+ */
2927
+ put: {
2928
+ parameters: {
2929
+ query?: never;
2930
+ header?: never;
2931
+ path?: never;
2932
+ cookie?: never;
2933
+ };
2934
+ requestBody?: {
2935
+ content: {
2936
+ 'application/json': {
2937
+ toolPermissions: {
2938
+ [key: string]: 'always_ask' | 'blocked';
2939
+ };
2940
+ };
2941
+ };
2942
+ };
2943
+ responses: {
2944
+ /** @description Updated project tool policy */
2945
+ 200: {
2946
+ headers: {
2947
+ [name: string]: unknown;
2948
+ };
2949
+ content: {
2950
+ 'application/json': {
2951
+ projectId: string;
2952
+ customInstructions: string | null;
2953
+ toolPermissions: {
2954
+ [key: string]: 'always_ask' | 'blocked';
2955
+ } | null;
2956
+ canWriteToolPolicy: boolean;
2957
+ createdAt: string;
2958
+ updatedAt: string;
2959
+ };
2960
+ };
2961
+ };
2962
+ /** @description Bad request */
2963
+ 400: {
2964
+ headers: {
2965
+ [name: string]: unknown;
2966
+ };
2967
+ content: {
2968
+ 'application/json': {
2969
+ error: {
2970
+ /** @enum {string} */
2971
+ type: 'bad_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'payload_too_large' | 'rate_limit' | 'offline' | 'bad_response' | 'internal';
2972
+ /** @enum {string} */
2973
+ surface: 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'history' | 'vote' | 'artifact';
2974
+ message: string;
2975
+ /** @enum {string} */
2976
+ subtype?: 'burst' | 'monthly_messages' | 'monthly_credits_user' | 'monthly_credits_project' | 'resolved' | 'timed_out' | 'chat_cancelled' | 'swept' | 'shutdown';
2977
+ exceptionId?: string;
2978
+ };
2979
+ };
2980
+ };
2981
+ };
2982
+ /** @description Unauthorized */
2983
+ 401: {
2984
+ headers: {
2985
+ [name: string]: unknown;
2986
+ };
2987
+ content: {
2988
+ 'application/json': {
2989
+ error: {
2990
+ /** @enum {string} */
2991
+ type: 'bad_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'payload_too_large' | 'rate_limit' | 'offline' | 'bad_response' | 'internal';
2992
+ /** @enum {string} */
2993
+ surface: 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'history' | 'vote' | 'artifact';
2994
+ message: string;
2995
+ /** @enum {string} */
2996
+ subtype?: 'burst' | 'monthly_messages' | 'monthly_credits_user' | 'monthly_credits_project' | 'resolved' | 'timed_out' | 'chat_cancelled' | 'swept' | 'shutdown';
2997
+ exceptionId?: string;
2998
+ };
2999
+ };
3000
+ };
3001
+ };
3002
+ /** @description Forbidden — only an organization admin may write the project tool policy */
3003
+ 403: {
3004
+ headers: {
3005
+ [name: string]: unknown;
3006
+ };
3007
+ content: {
3008
+ 'application/json': {
3009
+ error: {
3010
+ /** @enum {string} */
3011
+ type: 'bad_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'payload_too_large' | 'rate_limit' | 'offline' | 'bad_response' | 'internal';
3012
+ /** @enum {string} */
3013
+ surface: 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'history' | 'vote' | 'artifact';
3014
+ message: string;
3015
+ /** @enum {string} */
3016
+ subtype?: 'burst' | 'monthly_messages' | 'monthly_credits_user' | 'monthly_credits_project' | 'resolved' | 'timed_out' | 'chat_cancelled' | 'swept' | 'shutdown';
3017
+ exceptionId?: string;
3018
+ };
3019
+ };
3020
+ };
3021
+ };
3022
+ /** @description Service unavailable — an upstream dependency is unreachable */
3023
+ 503: {
3024
+ headers: {
3025
+ [name: string]: unknown;
3026
+ };
3027
+ content: {
3028
+ 'application/json': {
3029
+ error: {
3030
+ /** @enum {string} */
3031
+ type: 'bad_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'payload_too_large' | 'rate_limit' | 'offline' | 'bad_response' | 'internal';
3032
+ /** @enum {string} */
3033
+ surface: 'chat' | 'auth' | 'api' | 'stream' | 'database' | 'history' | 'vote' | 'artifact';
3034
+ message: string;
3035
+ /** @enum {string} */
3036
+ subtype?: 'burst' | 'monthly_messages' | 'monthly_credits_user' | 'monthly_credits_project' | 'resolved' | 'timed_out' | 'chat_cancelled' | 'swept' | 'shutdown';
3037
+ exceptionId?: string;
3038
+ };
3039
+ };
3040
+ };
3041
+ };
3042
+ };
3043
+ };
3044
+ post?: never;
3045
+ delete?: never;
3046
+ options?: never;
3047
+ head?: never;
3048
+ patch?: never;
3049
+ trace?: never;
3050
+ };
2880
3051
  '/api/settings/user': {
2881
3052
  parameters: {
2882
3053
  query?: never;
@@ -2910,6 +3081,9 @@ type paths = {
2910
3081
  toolPermissions: {
2911
3082
  [key: string]: 'always_allow' | 'always_ask' | 'blocked';
2912
3083
  } | null;
3084
+ projectToolPermissions: {
3085
+ [key: string]: 'always_ask' | 'blocked';
3086
+ } | null;
2913
3087
  createdAt: string;
2914
3088
  updatedAt: string;
2915
3089
  };
@@ -2997,6 +3171,9 @@ type paths = {
2997
3171
  toolPermissions: {
2998
3172
  [key: string]: 'always_allow' | 'always_ask' | 'blocked';
2999
3173
  } | null;
3174
+ projectToolPermissions: {
3175
+ [key: string]: 'always_ask' | 'blocked';
3176
+ } | null;
3000
3177
  createdAt: string;
3001
3178
  updatedAt: string;
3002
3179
  };
@@ -3945,4 +4122,4 @@ type ArtifactResponse = OpenapiReturnType<paths['/api/artifacts/{id}']['get']>;
3945
4122
  type ArtifactListResponse = OpenapiReturnType<paths['/api/artifacts']['get']>;
3946
4123
  //#endregion
3947
4124
  export { ChatWithMessages as a, GetChatPath as c, PrepareChatRequest as d, UsageResponse as f, ChatRequest as i, GetHistoryQuery as l, ArtifactListResponse as n, GetArtifactPath as o, VoteRequest as p, ArtifactResponse as r, GetArtifactsQuery as s, ApprovalBody as t, GetVotesQuery as u };
3948
- //# sourceMappingURL=types-DinIJ1D_.d.cts.map
4125
+ //# sourceMappingURL=types-CBPKpLTf.d.cts.map
@@ -62,6 +62,32 @@ type paths = {
62
62
  patch?: never;
63
63
  trace?: never;
64
64
  };
65
+ '/schedules/migrate': {
66
+ parameters: {
67
+ query?: never;
68
+ header?: never;
69
+ path?: never;
70
+ cookie?: never;
71
+ };
72
+ get?: never;
73
+ put?: never;
74
+ /**
75
+ * Activate Schedule With A Reused Token
76
+ * @description Activates a configuration of `keboola.scheduler` so that it becomes an active schedule, reusing the Storage token of an already activated schedule instead of creating a new one.
77
+ *
78
+ * Restricted to migrating a schedule from `keboola.orchestrator` to `keboola.flow`: the source schedule must target `keboola.orchestrator` and the activated configuration must target `keboola.flow`, otherwise the request is rejected with `400`. No Storage token is created, so the caller does not have to be allowed to create tokens - and because this endpoint accepts a role-less token where `POST /schedules` does not, the allowed component pair is deliberately narrow. The token is shared, not moved - the source schedule keeps running under it, and the token is dropped only once the last schedule using it is deleted.
79
+ *
80
+ * If there already is a schedule for the given `configurationId`, it is updated and `sourceConfigurationId` is ignored, so repeated calls stay idempotent.
81
+ *
82
+ * Unlike `POST /schedules`, this endpoint also accepts a role-less (machine-minted) project token, because it mints no token of its own. Everything else about the authorization is the same.
83
+ */
84
+ post: operations['migrateSchedule'];
85
+ delete?: never;
86
+ options?: never;
87
+ head?: never;
88
+ patch?: never;
89
+ trace?: never;
90
+ };
65
91
  '/schedules/{scheduleId}': {
66
92
  parameters: {
67
93
  query?: never;
@@ -160,6 +186,38 @@ type components = {
160
186
  timezone: string;
161
187
  /** @enum {string} */
162
188
  state: 'enabled' | 'disabled';
189
+ /**
190
+ * Format: date-time
191
+ * @description ISO-8601 timestamp of the next firing, evaluated in the schedule's timezone.
192
+ * Null when the schedule is not enabled or the expression can not be evaluated.
193
+ * Reflects the schedule's own state only: a schedule pointing at a disabled target
194
+ * configuration still reports its next fire time even though the run would be skipped.
195
+ * @example 2021-03-13T06:30:00+00:00
196
+ */
197
+ nextRunAt: string | null;
198
+ /**
199
+ * @description The next four firings, same semantics as nextRunAt (which is the first element).
200
+ * Empty when the schedule is not enabled or the expression can not be evaluated.
201
+ * @example [
202
+ * "2021-03-13T06:30:00+00:00",
203
+ * "2021-03-14T06:30:00+00:00",
204
+ * "2021-03-15T06:30:00+00:00",
205
+ * "2021-03-16T06:30:00+00:00"
206
+ * ]
207
+ */
208
+ nextRunsAt: string[];
209
+ /**
210
+ * @description Human-readable prose describing the cron expression, with the timezone appended.
211
+ * Falls back to the raw cron expression when it can not be parsed.
212
+ * @example Every 2 minutes (UTC)
213
+ */
214
+ humanCron: string;
215
+ /**
216
+ * @description Coarse grouping of the schedule cadence for display purposes.
217
+ * @example custom
218
+ * @enum {string}
219
+ */
220
+ periodLabel: 'daily' | 'weekly' | 'monthly' | 'custom';
163
221
  };
164
222
  target: {
165
223
  /** @example keboola.ex-db-snowflake */
@@ -237,6 +295,53 @@ interface operations {
237
295
  };
238
296
  };
239
297
  };
298
+ migrateSchedule: {
299
+ parameters: {
300
+ query?: never;
301
+ header?: never;
302
+ path?: never;
303
+ cookie?: never;
304
+ };
305
+ requestBody?: {
306
+ content: {
307
+ 'application/json': {
308
+ /** @description Id of the `keboola.scheduler` configuration to activate. */
309
+ configurationId: string;
310
+ /** @description Id of the `keboola.scheduler` configuration whose schedule owns the Storage token the new schedule will run under. That configuration must already have a schedule in the same project as the caller's token - it is the schedule row that is looked up, so a configuration that was never activated is rejected - and that schedule must target `keboola.orchestrator`. Its state does not matter: a disabled schedule still owns a usable token. */
311
+ sourceConfigurationId: string;
312
+ };
313
+ };
314
+ };
315
+ responses: {
316
+ /** @description Schedule Activated */
317
+ 200: {
318
+ headers: {
319
+ [name: string]: unknown;
320
+ };
321
+ content: {
322
+ 'application/json': components['schemas']['Schedule'];
323
+ };
324
+ };
325
+ /** @description There is no schedule for the given `sourceConfigurationId` in this project, or the component pair is not `keboola.orchestrator` to `keboola.flow` */
326
+ 400: {
327
+ headers: {
328
+ [name: string]: unknown;
329
+ };
330
+ content: {
331
+ 'application/json': components['schemas']['Error'];
332
+ };
333
+ };
334
+ /** @description Error response */
335
+ default: {
336
+ headers: {
337
+ [name: string]: unknown;
338
+ };
339
+ content: {
340
+ 'application/json': components['schemas']['Error'];
341
+ };
342
+ };
343
+ };
344
+ };
240
345
  getSchedule: {
241
346
  parameters: {
242
347
  query?: never;
@@ -370,4 +475,4 @@ type SchedulePath = OpenapiPathType<paths['/schedules/{scheduleId}']['get']>;
370
475
  type ConfigurationPath = OpenapiPathType<paths['/configurations/{configurationId}']['delete']>;
371
476
  //#endregion
372
477
  export { SchedulePath as a, Schedule as i, ConfigurationPath as n, Schedules as o, GetSchedulesQuery as r, ActivateScheduleBody as t };
373
- //# sourceMappingURL=types-DE9hgr7i.d.cts.map
478
+ //# sourceMappingURL=types-CgBzm1YR.d.cts.map
@@ -150,6 +150,9 @@ type components = {
150
150
  *
151
151
  * Attributes are part of the variable identity, so two variables with the same key but different attributes
152
152
  * are considered different.
153
+ *
154
+ * The attribute names `key` and `projectId` are reserved and are rejected with a 422 when creating a
155
+ * variable. Existing variables that already contain such attributes are still returned unchanged.
153
156
  * @default {}
154
157
  */
155
158
  attributes: {
@@ -383,4 +386,4 @@ type VariableWithHash = Omit<VariableWithHashRaw, 'hash'> & {
383
386
  type AnyVariable = VariableWithHash | CreateVariableBody;
384
387
  //#endregion
385
388
  export { GetVariablesQuery as a, GetVariablesByBranchId as i, CreateVariableBody as n, VariableWithHash as o, DeleteVariablePath as r, AnyVariable as t };
386
- //# sourceMappingURL=types-B61aCifg.d.cts.map
389
+ //# sourceMappingURL=types-D9axmt5o.d.cts.map
@@ -62,6 +62,32 @@ type paths = {
62
62
  patch?: never;
63
63
  trace?: never;
64
64
  };
65
+ '/schedules/migrate': {
66
+ parameters: {
67
+ query?: never;
68
+ header?: never;
69
+ path?: never;
70
+ cookie?: never;
71
+ };
72
+ get?: never;
73
+ put?: never;
74
+ /**
75
+ * Activate Schedule With A Reused Token
76
+ * @description Activates a configuration of `keboola.scheduler` so that it becomes an active schedule, reusing the Storage token of an already activated schedule instead of creating a new one.
77
+ *
78
+ * Restricted to migrating a schedule from `keboola.orchestrator` to `keboola.flow`: the source schedule must target `keboola.orchestrator` and the activated configuration must target `keboola.flow`, otherwise the request is rejected with `400`. No Storage token is created, so the caller does not have to be allowed to create tokens - and because this endpoint accepts a role-less token where `POST /schedules` does not, the allowed component pair is deliberately narrow. The token is shared, not moved - the source schedule keeps running under it, and the token is dropped only once the last schedule using it is deleted.
79
+ *
80
+ * If there already is a schedule for the given `configurationId`, it is updated and `sourceConfigurationId` is ignored, so repeated calls stay idempotent.
81
+ *
82
+ * Unlike `POST /schedules`, this endpoint also accepts a role-less (machine-minted) project token, because it mints no token of its own. Everything else about the authorization is the same.
83
+ */
84
+ post: operations['migrateSchedule'];
85
+ delete?: never;
86
+ options?: never;
87
+ head?: never;
88
+ patch?: never;
89
+ trace?: never;
90
+ };
65
91
  '/schedules/{scheduleId}': {
66
92
  parameters: {
67
93
  query?: never;
@@ -160,6 +186,38 @@ type components = {
160
186
  timezone: string;
161
187
  /** @enum {string} */
162
188
  state: 'enabled' | 'disabled';
189
+ /**
190
+ * Format: date-time
191
+ * @description ISO-8601 timestamp of the next firing, evaluated in the schedule's timezone.
192
+ * Null when the schedule is not enabled or the expression can not be evaluated.
193
+ * Reflects the schedule's own state only: a schedule pointing at a disabled target
194
+ * configuration still reports its next fire time even though the run would be skipped.
195
+ * @example 2021-03-13T06:30:00+00:00
196
+ */
197
+ nextRunAt: string | null;
198
+ /**
199
+ * @description The next four firings, same semantics as nextRunAt (which is the first element).
200
+ * Empty when the schedule is not enabled or the expression can not be evaluated.
201
+ * @example [
202
+ * "2021-03-13T06:30:00+00:00",
203
+ * "2021-03-14T06:30:00+00:00",
204
+ * "2021-03-15T06:30:00+00:00",
205
+ * "2021-03-16T06:30:00+00:00"
206
+ * ]
207
+ */
208
+ nextRunsAt: string[];
209
+ /**
210
+ * @description Human-readable prose describing the cron expression, with the timezone appended.
211
+ * Falls back to the raw cron expression when it can not be parsed.
212
+ * @example Every 2 minutes (UTC)
213
+ */
214
+ humanCron: string;
215
+ /**
216
+ * @description Coarse grouping of the schedule cadence for display purposes.
217
+ * @example custom
218
+ * @enum {string}
219
+ */
220
+ periodLabel: 'daily' | 'weekly' | 'monthly' | 'custom';
163
221
  };
164
222
  target: {
165
223
  /** @example keboola.ex-db-snowflake */
@@ -237,6 +295,53 @@ interface operations {
237
295
  };
238
296
  };
239
297
  };
298
+ migrateSchedule: {
299
+ parameters: {
300
+ query?: never;
301
+ header?: never;
302
+ path?: never;
303
+ cookie?: never;
304
+ };
305
+ requestBody?: {
306
+ content: {
307
+ 'application/json': {
308
+ /** @description Id of the `keboola.scheduler` configuration to activate. */
309
+ configurationId: string;
310
+ /** @description Id of the `keboola.scheduler` configuration whose schedule owns the Storage token the new schedule will run under. That configuration must already have a schedule in the same project as the caller's token - it is the schedule row that is looked up, so a configuration that was never activated is rejected - and that schedule must target `keboola.orchestrator`. Its state does not matter: a disabled schedule still owns a usable token. */
311
+ sourceConfigurationId: string;
312
+ };
313
+ };
314
+ };
315
+ responses: {
316
+ /** @description Schedule Activated */
317
+ 200: {
318
+ headers: {
319
+ [name: string]: unknown;
320
+ };
321
+ content: {
322
+ 'application/json': components['schemas']['Schedule'];
323
+ };
324
+ };
325
+ /** @description There is no schedule for the given `sourceConfigurationId` in this project, or the component pair is not `keboola.orchestrator` to `keboola.flow` */
326
+ 400: {
327
+ headers: {
328
+ [name: string]: unknown;
329
+ };
330
+ content: {
331
+ 'application/json': components['schemas']['Error'];
332
+ };
333
+ };
334
+ /** @description Error response */
335
+ default: {
336
+ headers: {
337
+ [name: string]: unknown;
338
+ };
339
+ content: {
340
+ 'application/json': components['schemas']['Error'];
341
+ };
342
+ };
343
+ };
344
+ };
240
345
  getSchedule: {
241
346
  parameters: {
242
347
  query?: never;
@@ -370,4 +475,4 @@ type SchedulePath = OpenapiPathType<paths['/schedules/{scheduleId}']['get']>;
370
475
  type ConfigurationPath = OpenapiPathType<paths['/configurations/{configurationId}']['delete']>;
371
476
  //#endregion
372
477
  export { SchedulePath as a, Schedule as i, ConfigurationPath as n, Schedules as o, GetSchedulesQuery as r, ActivateScheduleBody as t };
373
- //# sourceMappingURL=types-CWyXTMwy.d.ts.map
478
+ //# sourceMappingURL=types-DaMmgW-O.d.ts.map
@@ -1116,7 +1116,29 @@ type paths = {
1116
1116
  put?: never;
1117
1117
  /**
1118
1118
  * Create app
1119
- * @description Create a new app under the vendor. After creation, the app id is prefixed by the vendor id (e.g. `keboola.ex-adwords`).
1119
+ * @description Create a new app under the vendor. After creation, the app id is
1120
+ * prefixed by the vendor id (e.g. `keboola.ex-adwords`).
1121
+ *
1122
+ * The body is open on purpose: alongside the properties below it takes every
1123
+ * other writable app field — the same set `PATCH /vendors/{vendor}/apps/{app}`
1124
+ * takes, with `id` additionally required — so an app can be registered fully
1125
+ * configured in one request. The properties below are the ones a registration
1126
+ * typically sets, not the limit.
1127
+ *
1128
+ * Two things the open schema cannot express:
1129
+ *
1130
+ * - These keys are **rejected with `422`**, not merely ignored — sending one
1131
+ * fails the whole request. Set by the service itself: `version`,
1132
+ * `isPublished`, `createdOn`, `createdBy`, `updatedOn`, `updatedBy`,
1133
+ * `icon32`, `icon64`, `icon128`, `publishRequestOn`, `publishRequestBy`,
1134
+ * `publishRequestRejectionReason`. Reserved to an admin, over
1135
+ * `PATCH /admin/apps/{id}`: `vendor`, `isPublic`, `legacyUri`,
1136
+ * `repository.digest`, `category`, `categories`, `complexity`, `features`,
1137
+ * `forwardToken`, `forwardTokenDetails`, `injectEnvironment`,
1138
+ * `processTimeout`, `requiredMemory`.
1139
+ *
1140
+ * - Any other unrecognised key is **accepted and then dropped** — validation
1141
+ * lets it through, the insert filters it out, so it is never stored.
1120
1142
  */
1121
1143
  post: {
1122
1144
  parameters: {
@@ -1133,7 +1155,16 @@ type paths = {
1133
1155
  * @example {
1134
1156
  * "id": "ex-adwords",
1135
1157
  * "name": "AdWords Reports",
1136
- * "shortDescription": "Reads reports defined by awql queries"
1158
+ * "type": "extractor",
1159
+ * "shortDescription": "Reads reports defined by awql queries",
1160
+ * "uiOptions": [
1161
+ * "genericDockerUI"
1162
+ * ],
1163
+ * "defaultBucket": true,
1164
+ * "defaultBucketStage": "in",
1165
+ * "repository": {
1166
+ * "type": "ecr"
1167
+ * }
1137
1168
  * }
1138
1169
  */
1139
1170
  'application/json': {
@@ -1144,6 +1175,13 @@ type paths = {
1144
1175
  type: 'extractor' | 'application' | 'writer' | 'processor' | 'code-pattern' | 'other' | 'transformation' | 'data-app';
1145
1176
  shortDescription?: string;
1146
1177
  longDescription?: string;
1178
+ /** @description Null clears the list, and reads back as `[]`. */
1179
+ uiOptions?: string[] | null;
1180
+ /** @description Null clears the list, and reads back as `[]`. */
1181
+ actions?: string[] | null;
1182
+ defaultBucket?: boolean;
1183
+ /** @enum {string} */
1184
+ defaultBucketStage?: 'in' | 'out';
1147
1185
  repository?: {
1148
1186
  /** @enum {string} */
1149
1187
  type?: 'dockerhub' | 'quay' | 'builder' | 'ecr';
@@ -1152,6 +1190,8 @@ type paths = {
1152
1190
  } & {
1153
1191
  [key: string]: unknown;
1154
1192
  };
1193
+ } & {
1194
+ [key: string]: unknown;
1155
1195
  };
1156
1196
  };
1157
1197
  };
@@ -2283,13 +2323,25 @@ type paths = {
2283
2323
  };
2284
2324
  content: {
2285
2325
  'application/json': ({
2286
- id?: string;
2326
+ /** @description The app id the change belongs to. */
2327
+ id: string;
2287
2328
  /** Format: date-time */
2288
- createdOn?: string;
2289
- createdBy?: string;
2290
- changes?: {
2329
+ createdOn: string;
2330
+ /** @description Who made the change. Null for a version stored without an author. */
2331
+ createdBy: string | null;
2332
+ /** @description One entry per attribute that differs from the previous version. Empty for a write that changed nothing — a save with no edits still produces a version. */
2333
+ changes: ({
2334
+ /** @description The `App` property that changed. */
2335
+ attribute: string;
2336
+ /** @description The value in the previous version, of whatever type that property has. Null when the attribute was added. */
2337
+ oldValue: unknown;
2338
+ /** @description The value in this version. Null when the attribute was deleted. */
2339
+ newValue: unknown;
2340
+ /** @description A ready-to-render sentence — `Attribute <name> added/changed/deleted`, or `App <id> created` for the synthetic first-version entry. */
2341
+ description: string;
2342
+ } & {
2291
2343
  [key: string]: unknown;
2292
- }[];
2344
+ })[];
2293
2345
  } & {
2294
2346
  [key: string]: unknown;
2295
2347
  })[];
@@ -2832,4 +2884,4 @@ type RefreshTokensResult = OpenapiReturnType<paths['/auth/token']['get']>;
2832
2884
  type MfaSetupResult = OpenapiReturnType<paths['/auth/mfa']['post']>;
2833
2885
  //#endregion
2834
2886
  export { ResetPasswordConfirmInput as A, UserRequest as B, MfaConfirmInput as C, Profile as D, PaginationQuery as E, UpdateAppAsAdminInput as F, paths as G, VendorListItem as H, UpdateAppInput as I, UpdateVendorAsAdminInput as L, ServiceIndex as M, SignUpInput as N, RefreshTokensResult as O, Stack as P, UpdateVendorInput as R, LoginSuccess as S, MfaSetupResult as T, Version as U, Vendor as V, components as W, GetVendorUsersQuery as _, AppRepository as a, LoginInput as b, ConfirmAccountInput as c, CreateVendorAsAdminInput as d, CreateVendorInput as f, GetChangesQuery as g, GetAppsQuery as h, AppChange as i, ServiceAccount as j, RejectAppInput as k, CreateAppInput as l, DeveloperPortalError as m, AdminVendor as n, AppVendor as o, DeprecateAppInput as p, App as r, ApproveVendorInput as s, AdminPaginationQuery as t, CreateServiceAccountInput as u, IconUploadLink as v, MfaSetupInput as w, LoginResult as x, LoginChallenge as y, User as z };
2835
- //# sourceMappingURL=types-q-1r_9d1.d.ts.map
2887
+ //# sourceMappingURL=types-DzV6LaZq.d.ts.map
@@ -389,7 +389,7 @@ type components = {
389
389
  headers: never;
390
390
  pathItems: never;
391
391
  };
392
- type operations = {
392
+ interface operations {
393
393
  _get_root_get: {
394
394
  parameters: {
395
395
  query?: never;
@@ -558,7 +558,7 @@ type operations = {
558
558
  };
559
559
  };
560
560
  };
561
- };
561
+ }
562
562
  //#endregion
563
563
  //#region src/clients/omnisearch/types.d.ts
564
564
  type GetProjectsLineageQuery = OpenapiQueryType<paths['/v1/lineage/projects']['get']>;
@@ -599,4 +599,4 @@ type LineageTable = components['schemas']['TableNode'] & {
599
599
  };
600
600
  //#endregion
601
601
  export { LineageMetadata as a, LineageTable as c, ProjectsLineageResponse as d, TableLineageRelation as f, components as h, LineageConfiguration as i, ProjectLineageRelation as l, TablesLineageResponse as m, GetTablesLineageQuery as n, LineageProject as o, TablesLineage as p, LineageBucket as r, LineageSource as s, GetProjectsLineageQuery as t, ProjectsLineage as u };
602
- //# sourceMappingURL=types-6kuMW4JW.d.cts.map
602
+ //# sourceMappingURL=types-c_bsDkV6.d.cts.map