@katerai/sdk 0.6.0 → 0.8.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 (321) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +23 -16
  3. package/client.d.mts +10 -13
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +10 -13
  6. package/client.d.ts.map +1 -1
  7. package/client.js +37 -15
  8. package/client.js.map +1 -1
  9. package/client.mjs +37 -15
  10. package/client.mjs.map +1 -1
  11. package/internal/utils/log.d.mts.map +1 -1
  12. package/internal/utils/log.d.ts.map +1 -1
  13. package/internal/utils/log.js +2 -1
  14. package/internal/utils/log.js.map +1 -1
  15. package/internal/utils/log.mjs +2 -1
  16. package/internal/utils/log.mjs.map +1 -1
  17. package/package.json +2 -2
  18. package/resources/index.d.mts +0 -2
  19. package/resources/index.d.mts.map +1 -1
  20. package/resources/index.d.ts +0 -2
  21. package/resources/index.d.ts.map +1 -1
  22. package/resources/index.js +1 -5
  23. package/resources/index.js.map +1 -1
  24. package/resources/index.mjs +0 -2
  25. package/resources/index.mjs.map +1 -1
  26. package/resources/v1/compiler.d.mts +1116 -0
  27. package/resources/v1/compiler.d.mts.map +1 -0
  28. package/resources/v1/compiler.d.ts +1116 -0
  29. package/resources/v1/compiler.d.ts.map +1 -0
  30. package/resources/v1/compiler.js +70 -0
  31. package/resources/v1/compiler.js.map +1 -0
  32. package/resources/v1/compiler.mjs +66 -0
  33. package/resources/v1/compiler.mjs.map +1 -0
  34. package/resources/v1/connections.d.mts +216 -1
  35. package/resources/v1/connections.d.mts.map +1 -1
  36. package/resources/v1/connections.d.ts +216 -1
  37. package/resources/v1/connections.d.ts.map +1 -1
  38. package/resources/v1/connections.js +22 -2
  39. package/resources/v1/connections.js.map +1 -1
  40. package/resources/v1/connections.mjs +20 -1
  41. package/resources/v1/connections.mjs.map +1 -1
  42. package/resources/v1/index.d.mts +3 -6
  43. package/resources/v1/index.d.mts.map +1 -1
  44. package/resources/v1/index.d.ts +3 -6
  45. package/resources/v1/index.d.ts.map +1 -1
  46. package/resources/v1/index.js +7 -13
  47. package/resources/v1/index.js.map +1 -1
  48. package/resources/v1/index.mjs +2 -5
  49. package/resources/v1/index.mjs.map +1 -1
  50. package/resources/v1/tenants/groups.d.mts +5 -5
  51. package/resources/v1/tenants/groups.d.mts.map +1 -1
  52. package/resources/v1/tenants/groups.d.ts +5 -5
  53. package/resources/v1/tenants/groups.d.ts.map +1 -1
  54. package/resources/v1/tenants/groups.js +1 -1
  55. package/resources/v1/tenants/groups.js.map +1 -1
  56. package/resources/v1/tenants/groups.mjs +1 -1
  57. package/resources/v1/tenants/groups.mjs.map +1 -1
  58. package/resources/v1/tenants/index.d.mts +2 -4
  59. package/resources/v1/tenants/index.d.mts.map +1 -1
  60. package/resources/v1/tenants/index.d.ts +2 -4
  61. package/resources/v1/tenants/index.d.ts.map +1 -1
  62. package/resources/v1/tenants/index.js +1 -5
  63. package/resources/v1/tenants/index.js.map +1 -1
  64. package/resources/v1/tenants/index.mjs +0 -2
  65. package/resources/v1/tenants/index.mjs.map +1 -1
  66. package/resources/v1/tenants/tenants.d.mts +72 -151
  67. package/resources/v1/tenants/tenants.d.mts.map +1 -1
  68. package/resources/v1/tenants/tenants.d.ts +72 -151
  69. package/resources/v1/tenants/tenants.d.ts.map +1 -1
  70. package/resources/v1/tenants/tenants.js +29 -72
  71. package/resources/v1/tenants/tenants.js.map +1 -1
  72. package/resources/v1/tenants/tenants.mjs +29 -72
  73. package/resources/v1/tenants/tenants.mjs.map +1 -1
  74. package/resources/v1/v1.d.mts +9 -21
  75. package/resources/v1/v1.d.mts.map +1 -1
  76. package/resources/v1/v1.d.ts +9 -21
  77. package/resources/v1/v1.d.ts.map +1 -1
  78. package/resources/v1/v1.js +6 -18
  79. package/resources/v1/v1.js.map +1 -1
  80. package/resources/v1/v1.mjs +6 -18
  81. package/resources/v1/v1.mjs.map +1 -1
  82. package/src/client.ts +48 -23
  83. package/src/internal/utils/log.ts +1 -0
  84. package/src/resources/index.ts +0 -2
  85. package/src/resources/v1/compiler.ts +1484 -0
  86. package/src/resources/v1/connections.ts +277 -1
  87. package/src/resources/v1/index.ts +23 -43
  88. package/src/resources/v1/tenants/groups.ts +5 -5
  89. package/src/resources/v1/tenants/index.ts +5 -24
  90. package/src/resources/v1/tenants/tenants.ts +89 -213
  91. package/src/resources/v1/v1.ts +49 -101
  92. package/src/version.ts +1 -1
  93. package/version.d.mts +1 -1
  94. package/version.d.ts +1 -1
  95. package/version.js +1 -1
  96. package/version.mjs +1 -1
  97. package/resources/healthz.d.mts +0 -16
  98. package/resources/healthz.d.mts.map +0 -1
  99. package/resources/healthz.d.ts +0 -16
  100. package/resources/healthz.d.ts.map +0 -1
  101. package/resources/healthz.js +0 -15
  102. package/resources/healthz.js.map +0 -1
  103. package/resources/healthz.mjs +0 -11
  104. package/resources/healthz.mjs.map +0 -1
  105. package/resources/readyz.d.mts +0 -16
  106. package/resources/readyz.d.mts.map +0 -1
  107. package/resources/readyz.d.ts +0 -16
  108. package/resources/readyz.d.ts.map +0 -1
  109. package/resources/readyz.js +0 -15
  110. package/resources/readyz.js.map +0 -1
  111. package/resources/readyz.mjs +0 -11
  112. package/resources/readyz.mjs.map +0 -1
  113. package/resources/v1/connections/connections.d.mts +0 -1470
  114. package/resources/v1/connections/connections.d.mts.map +0 -1
  115. package/resources/v1/connections/connections.d.ts +0 -1470
  116. package/resources/v1/connections/connections.d.ts.map +0 -1
  117. package/resources/v1/connections/connections.js +0 -163
  118. package/resources/v1/connections/connections.js.map +0 -1
  119. package/resources/v1/connections/connections.mjs +0 -158
  120. package/resources/v1/connections/connections.mjs.map +0 -1
  121. package/resources/v1/connections/databases.d.mts +0 -25
  122. package/resources/v1/connections/databases.d.mts.map +0 -1
  123. package/resources/v1/connections/databases.d.ts +0 -25
  124. package/resources/v1/connections/databases.d.ts.map +0 -1
  125. package/resources/v1/connections/databases.js +0 -26
  126. package/resources/v1/connections/databases.js.map +0 -1
  127. package/resources/v1/connections/databases.mjs +0 -22
  128. package/resources/v1/connections/databases.mjs.map +0 -1
  129. package/resources/v1/connections/index.d.mts +0 -5
  130. package/resources/v1/connections/index.d.mts.map +0 -1
  131. package/resources/v1/connections/index.d.ts +0 -5
  132. package/resources/v1/connections/index.d.ts.map +0 -1
  133. package/resources/v1/connections/index.js +0 -13
  134. package/resources/v1/connections/index.js.map +0 -1
  135. package/resources/v1/connections/index.mjs +0 -6
  136. package/resources/v1/connections/index.mjs.map +0 -1
  137. package/resources/v1/connections/views.d.mts +0 -77
  138. package/resources/v1/connections/views.d.mts.map +0 -1
  139. package/resources/v1/connections/views.d.ts +0 -77
  140. package/resources/v1/connections/views.d.ts.map +0 -1
  141. package/resources/v1/connections/views.js +0 -24
  142. package/resources/v1/connections/views.js.map +0 -1
  143. package/resources/v1/connections/views.mjs +0 -20
  144. package/resources/v1/connections/views.mjs.map +0 -1
  145. package/resources/v1/connections/yaml.d.mts +0 -57
  146. package/resources/v1/connections/yaml.d.mts.map +0 -1
  147. package/resources/v1/connections/yaml.d.ts +0 -57
  148. package/resources/v1/connections/yaml.d.ts.map +0 -1
  149. package/resources/v1/connections/yaml.js +0 -22
  150. package/resources/v1/connections/yaml.js.map +0 -1
  151. package/resources/v1/connections/yaml.mjs +0 -18
  152. package/resources/v1/connections/yaml.mjs.map +0 -1
  153. package/resources/v1/github/github.d.mts +0 -99
  154. package/resources/v1/github/github.d.mts.map +0 -1
  155. package/resources/v1/github/github.d.ts +0 -99
  156. package/resources/v1/github/github.d.ts.map +0 -1
  157. package/resources/v1/github/github.js +0 -49
  158. package/resources/v1/github/github.js.map +0 -1
  159. package/resources/v1/github/github.mjs +0 -44
  160. package/resources/v1/github/github.mjs.map +0 -1
  161. package/resources/v1/github/index.d.mts +0 -5
  162. package/resources/v1/github/index.d.mts.map +0 -1
  163. package/resources/v1/github/index.d.ts +0 -5
  164. package/resources/v1/github/index.d.ts.map +0 -1
  165. package/resources/v1/github/index.js +0 -13
  166. package/resources/v1/github/index.js.map +0 -1
  167. package/resources/v1/github/index.mjs +0 -6
  168. package/resources/v1/github/index.mjs.map +0 -1
  169. package/resources/v1/github/repos.d.mts +0 -54
  170. package/resources/v1/github/repos.d.mts.map +0 -1
  171. package/resources/v1/github/repos.d.ts +0 -54
  172. package/resources/v1/github/repos.d.ts.map +0 -1
  173. package/resources/v1/github/repos.js +0 -22
  174. package/resources/v1/github/repos.js.map +0 -1
  175. package/resources/v1/github/repos.mjs +0 -18
  176. package/resources/v1/github/repos.mjs.map +0 -1
  177. package/resources/v1/github/scaffold.d.mts +0 -29
  178. package/resources/v1/github/scaffold.d.mts.map +0 -1
  179. package/resources/v1/github/scaffold.d.ts +0 -29
  180. package/resources/v1/github/scaffold.d.ts.map +0 -1
  181. package/resources/v1/github/scaffold.js +0 -21
  182. package/resources/v1/github/scaffold.js.map +0 -1
  183. package/resources/v1/github/scaffold.mjs +0 -17
  184. package/resources/v1/github/scaffold.mjs.map +0 -1
  185. package/resources/v1/github/webhooks.d.mts +0 -28
  186. package/resources/v1/github/webhooks.d.mts.map +0 -1
  187. package/resources/v1/github/webhooks.d.ts +0 -28
  188. package/resources/v1/github/webhooks.d.ts.map +0 -1
  189. package/resources/v1/github/webhooks.js +0 -27
  190. package/resources/v1/github/webhooks.js.map +0 -1
  191. package/resources/v1/github/webhooks.mjs +0 -23
  192. package/resources/v1/github/webhooks.mjs.map +0 -1
  193. package/resources/v1/github.d.mts +0 -2
  194. package/resources/v1/github.d.mts.map +0 -1
  195. package/resources/v1/github.d.ts +0 -2
  196. package/resources/v1/github.d.ts.map +0 -1
  197. package/resources/v1/github.js +0 -6
  198. package/resources/v1/github.js.map +0 -1
  199. package/resources/v1/github.mjs +0 -3
  200. package/resources/v1/github.mjs.map +0 -1
  201. package/resources/v1/groups/groups.d.mts +0 -162
  202. package/resources/v1/groups/groups.d.mts.map +0 -1
  203. package/resources/v1/groups/groups.d.ts +0 -162
  204. package/resources/v1/groups/groups.d.ts.map +0 -1
  205. package/resources/v1/groups/groups.js +0 -81
  206. package/resources/v1/groups/groups.js.map +0 -1
  207. package/resources/v1/groups/groups.mjs +0 -76
  208. package/resources/v1/groups/groups.mjs.map +0 -1
  209. package/resources/v1/groups/index.d.mts +0 -3
  210. package/resources/v1/groups/index.d.mts.map +0 -1
  211. package/resources/v1/groups/index.d.ts +0 -3
  212. package/resources/v1/groups/index.d.ts.map +0 -1
  213. package/resources/v1/groups/index.js +0 -9
  214. package/resources/v1/groups/index.js.map +0 -1
  215. package/resources/v1/groups/index.mjs +0 -4
  216. package/resources/v1/groups/index.mjs.map +0 -1
  217. package/resources/v1/groups/tenants.d.mts +0 -55
  218. package/resources/v1/groups/tenants.d.mts.map +0 -1
  219. package/resources/v1/groups/tenants.d.ts +0 -55
  220. package/resources/v1/groups/tenants.d.ts.map +0 -1
  221. package/resources/v1/groups/tenants.js +0 -39
  222. package/resources/v1/groups/tenants.js.map +0 -1
  223. package/resources/v1/groups/tenants.mjs +0 -35
  224. package/resources/v1/groups/tenants.mjs.map +0 -1
  225. package/resources/v1/groups.d.mts +0 -2
  226. package/resources/v1/groups.d.mts.map +0 -1
  227. package/resources/v1/groups.d.ts +0 -2
  228. package/resources/v1/groups.d.ts.map +0 -1
  229. package/resources/v1/groups.js +0 -6
  230. package/resources/v1/groups.js.map +0 -1
  231. package/resources/v1/groups.mjs +0 -3
  232. package/resources/v1/groups.mjs.map +0 -1
  233. package/resources/v1/me.d.mts +0 -43
  234. package/resources/v1/me.d.mts.map +0 -1
  235. package/resources/v1/me.d.ts +0 -43
  236. package/resources/v1/me.d.ts.map +0 -1
  237. package/resources/v1/me.js +0 -20
  238. package/resources/v1/me.js.map +0 -1
  239. package/resources/v1/me.mjs +0 -16
  240. package/resources/v1/me.mjs.map +0 -1
  241. package/resources/v1/org/client.d.mts +0 -53
  242. package/resources/v1/org/client.d.mts.map +0 -1
  243. package/resources/v1/org/client.d.ts +0 -53
  244. package/resources/v1/org/client.d.ts.map +0 -1
  245. package/resources/v1/org/client.js +0 -25
  246. package/resources/v1/org/client.js.map +0 -1
  247. package/resources/v1/org/client.mjs +0 -21
  248. package/resources/v1/org/client.mjs.map +0 -1
  249. package/resources/v1/org/index.d.mts +0 -4
  250. package/resources/v1/org/index.d.mts.map +0 -1
  251. package/resources/v1/org/index.d.ts +0 -4
  252. package/resources/v1/org/index.d.ts.map +0 -1
  253. package/resources/v1/org/index.js +0 -11
  254. package/resources/v1/org/index.js.map +0 -1
  255. package/resources/v1/org/index.mjs +0 -5
  256. package/resources/v1/org/index.mjs.map +0 -1
  257. package/resources/v1/org/org.d.mts +0 -14
  258. package/resources/v1/org/org.d.mts.map +0 -1
  259. package/resources/v1/org/org.d.ts +0 -14
  260. package/resources/v1/org/org.d.ts.map +0 -1
  261. package/resources/v1/org/org.js +0 -21
  262. package/resources/v1/org/org.js.map +0 -1
  263. package/resources/v1/org/org.mjs +0 -16
  264. package/resources/v1/org/org.mjs.map +0 -1
  265. package/resources/v1/org/users.d.mts +0 -87
  266. package/resources/v1/org/users.d.mts.map +0 -1
  267. package/resources/v1/org/users.d.ts +0 -87
  268. package/resources/v1/org/users.d.ts.map +0 -1
  269. package/resources/v1/org/users.js +0 -60
  270. package/resources/v1/org/users.js.map +0 -1
  271. package/resources/v1/org/users.mjs +0 -56
  272. package/resources/v1/org/users.mjs.map +0 -1
  273. package/resources/v1/org.d.mts +0 -2
  274. package/resources/v1/org.d.mts.map +0 -1
  275. package/resources/v1/org.d.ts +0 -2
  276. package/resources/v1/org.d.ts.map +0 -1
  277. package/resources/v1/org.js +0 -6
  278. package/resources/v1/org.js.map +0 -1
  279. package/resources/v1/org.mjs +0 -3
  280. package/resources/v1/org.mjs.map +0 -1
  281. package/resources/v1/tenants/batch.d.mts +0 -159
  282. package/resources/v1/tenants/batch.d.mts.map +0 -1
  283. package/resources/v1/tenants/batch.d.ts +0 -159
  284. package/resources/v1/tenants/batch.d.ts.map +0 -1
  285. package/resources/v1/tenants/batch.js +0 -42
  286. package/resources/v1/tenants/batch.js.map +0 -1
  287. package/resources/v1/tenants/batch.mjs +0 -38
  288. package/resources/v1/tenants/batch.mjs.map +0 -1
  289. package/resources/v1/tenants/import.d.mts +0 -126
  290. package/resources/v1/tenants/import.d.mts.map +0 -1
  291. package/resources/v1/tenants/import.d.ts +0 -126
  292. package/resources/v1/tenants/import.d.ts.map +0 -1
  293. package/resources/v1/tenants/import.js +0 -50
  294. package/resources/v1/tenants/import.js.map +0 -1
  295. package/resources/v1/tenants/import.mjs +0 -46
  296. package/resources/v1/tenants/import.mjs.map +0 -1
  297. package/src/resources/healthz.ts +0 -20
  298. package/src/resources/readyz.ts +0 -20
  299. package/src/resources/v1/connections/connections.ts +0 -1905
  300. package/src/resources/v1/connections/databases.ts +0 -42
  301. package/src/resources/v1/connections/index.ts +0 -33
  302. package/src/resources/v1/connections/views.ts +0 -112
  303. package/src/resources/v1/connections/yaml.ts +0 -81
  304. package/src/resources/v1/github/github.ts +0 -165
  305. package/src/resources/v1/github/index.ts +0 -20
  306. package/src/resources/v1/github/repos.ts +0 -85
  307. package/src/resources/v1/github/scaffold.ts +0 -44
  308. package/src/resources/v1/github/webhooks.ts +0 -60
  309. package/src/resources/v1/github.ts +0 -3
  310. package/src/resources/v1/groups/groups.ts +0 -218
  311. package/src/resources/v1/groups/index.ts +0 -10
  312. package/src/resources/v1/groups/tenants.ts +0 -78
  313. package/src/resources/v1/groups.ts +0 -3
  314. package/src/resources/v1/me.ts +0 -62
  315. package/src/resources/v1/org/client.ts +0 -81
  316. package/src/resources/v1/org/index.ts +0 -11
  317. package/src/resources/v1/org/org.ts +0 -32
  318. package/src/resources/v1/org/users.ts +0 -127
  319. package/src/resources/v1/org.ts +0 -3
  320. package/src/resources/v1/tenants/batch.ts +0 -200
  321. package/src/resources/v1/tenants/import.ts +0 -158
@@ -1,240 +1,144 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../../core/resource';
4
- import * as BatchAPI from './batch';
5
- import {
6
- Batch,
7
- BatchCreateParams,
8
- BatchCreateResponse,
9
- BatchDeleteParams,
10
- BatchDeleteResponse,
11
- BatchTenantError,
12
- BatchTenantSuccess,
13
- BatchUpdateParams,
14
- BatchUpdateResponse,
15
- } from './batch';
16
4
  import * as GroupsAPI from './groups';
17
- import { GroupRetrieveSchemaResponse, Groups } from './groups';
18
- import * as ImportAPI from './import';
19
- import { Import, ImportFromCsvParams, ImportFromWarehouseParams, ImportTenants } from './import';
5
+ import { GroupGetTenantGroupsSchemaResponse, Groups } from './groups';
20
6
  import { APIPromise } from '../../../core/api-promise';
21
- import { buildHeaders } from '../../../internal/headers';
7
+ import { type Uploadable } from '../../../core/uploads';
22
8
  import { RequestOptions } from '../../../internal/request-options';
23
- import { path } from '../../../internal/utils/path';
9
+ import { multipartFormRequestOptions } from '../../../internal/uploads';
24
10
 
25
11
  export class Tenants extends APIResource {
26
- batch: BatchAPI.Batch = new BatchAPI.Batch(this._client);
27
- import: ImportAPI.Import = new ImportAPI.Import(this._client);
28
12
  groups: GroupsAPI.Groups = new GroupsAPI.Groups(this._client);
29
13
 
30
14
  /**
31
- * Create a new tenant.
32
- *
33
- * Validates the client's tenancy type and creates the tenant accordingly:
34
- *
35
- * - ROW tenancy: Creates tenant with optional group associations
36
- * - DATABASE tenancy: Requires database_name, creates tenant with database
37
- * association
38
- * - NONE tenancy: Returns error (tenant creation not allowed)
39
- *
40
- * RLS: Filtered to current client (ClientRLSDB).
41
- */
42
- create(body: TenantCreateParams, options?: RequestOptions): APIPromise<Tenant> {
43
- return this._client.post('/api/v1/tenants', { body, ...options });
44
- }
45
-
46
- /**
47
- * Get a single tenant by ID.
15
+ * Get all tenants as a TenantSchema object.
48
16
  *
49
- * Returns the tenant with associated groups and databases.
17
+ * Returns tenants in the YAML-compatible schema format with group references.
18
+ * Supports content negotiation: JSON by default, YAML with Accept:
19
+ * application/yaml.
50
20
  *
51
21
  * RLS: Filtered to current client (ClientRLSDB).
52
- *
53
- * Raises: TenantNotFoundError: If tenant doesn't exist (404)
54
22
  */
55
- retrieve(tenantID: string, options?: RequestOptions): APIPromise<Tenant> {
56
- return this._client.get(path`/api/v1/tenants/${tenantID}`, options);
23
+ getTenantsSchema(options?: RequestOptions): APIPromise<TenantGetTenantsSchemaResponse> {
24
+ return this._client.get('/api/v1/tenants/schema', options);
57
25
  }
58
26
 
59
27
  /**
60
- * Update a tenant.
61
- *
62
- * Updates tenant metadata, group associations, and/or database associations. Group
63
- * associations use replace semantics:
28
+ * Import tenants from a CSV file using upsert semantics.
64
29
  *
65
- * - Omit group_names to leave existing associations unchanged
66
- * - Pass empty list to remove all group associations
67
- * - Pass list of names to replace all associations
30
+ * Expected CSV format:
68
31
  *
69
- * Database associations (DATABASE tenancy only):
32
+ * - tenant_key (required): Unique tenant identifier
33
+ * - tenant_name (optional): Human-readable name
34
+ * - group_names (optional): Comma-separated list of group names
70
35
  *
71
- * - Both connection_id and database_name must be provided together
72
- * - Replaces existing database association
36
+ * Creates new tenants and updates existing ones with new name/groups. Groups are
37
+ * added additively (not replaced) and auto-created if needed.
73
38
  *
74
39
  * RLS: Filtered to current client (ClientRLSDB).
75
40
  *
76
- * Raises: TenantNotFoundError: If tenant doesn't exist (404)
77
- */
78
- update(tenantID: string, body: TenantUpdateParams, options?: RequestOptions): APIPromise<Tenant> {
79
- return this._client.patch(path`/api/v1/tenants/${tenantID}`, { body, ...options });
41
+ * Raises: ValidationError: If CSV format is invalid (400)
42
+ * TenantCreationNotAllowedError: If tenancy type is NONE (400)
43
+ */
44
+ importFromCsv(
45
+ body: TenantImportFromCsvParams,
46
+ options?: RequestOptions,
47
+ ): APIPromise<ImportTenantsResponse> {
48
+ return this._client.post(
49
+ '/api/v1/tenants/import/csv',
50
+ multipartFormRequestOptions({ body, ...options }, this._client),
51
+ );
80
52
  }
81
53
 
82
54
  /**
83
- * List all tenants for the client.
55
+ * Import tenants from a warehouse table using upsert semantics.
84
56
  *
85
- * Returns tenants with their associated groups and databases.
57
+ * Creates new tenants and updates existing ones with new name/groups. Groups are
58
+ * added additively (not replaced).
86
59
  *
87
- * RLS: Filtered to current client (ClientRLSDB).
88
- */
89
- list(options?: RequestOptions): APIPromise<TenantListResponse> {
90
- return this._client.get('/api/v1/tenants', options);
91
- }
92
-
93
- /**
94
- * Delete a tenant.
60
+ * Streams data from the warehouse in batches to handle large datasets without
61
+ * loading everything into memory.
95
62
  *
96
- * Soft-deletes the tenant and its group/database associations.
63
+ * For tenants with groups, groups are aggregated per tenant key and auto-created
64
+ * if they don't exist.
97
65
  *
98
66
  * RLS: Filtered to current client (ClientRLSDB).
99
67
  *
100
- * Raises: TenantNotFoundError: If tenant doesn't exist (404)
68
+ * Raises: ConnectionNotFoundError: If the connection doesn't exist (404)
69
+ * TenantCreationNotAllowedError: If tenancy type is NONE (400)
101
70
  */
102
- delete(tenantID: string, options?: RequestOptions): APIPromise<void> {
103
- return this._client.delete(path`/api/v1/tenants/${tenantID}`, {
104
- ...options,
105
- headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
106
- });
71
+ importFromWarehouse(
72
+ body: TenantImportFromWarehouseParams,
73
+ options?: RequestOptions,
74
+ ): APIPromise<ImportTenantsResponse> {
75
+ return this._client.post('/api/v1/tenants/import/warehouse', { body, ...options });
107
76
  }
108
-
109
- /**
110
- * Get all tenants as a TenantSchema object.
111
- *
112
- * Returns tenants in the YAML-compatible schema format with group references.
113
- * Supports content negotiation: JSON by default, YAML with Accept:
114
- * application/yaml.
115
- *
116
- * RLS: Filtered to current client (ClientRLSDB).
117
- */
118
- retrieveSchema(options?: RequestOptions): APIPromise<TenantRetrieveSchemaResponse> {
119
- return this._client.get('/api/v1/tenants/schema', options);
120
- }
121
- }
122
-
123
- /**
124
- * Request model for creating a single tenant.
125
- */
126
- export interface CreateTenant {
127
- /**
128
- * Unique tenant identifier within the client
129
- */
130
- tenant_key: string;
131
-
132
- /**
133
- * Connection ID (required for DATABASE tenancy type)
134
- */
135
- connection_id?: string | null;
136
-
137
- /**
138
- * Database name (required for DATABASE tenancy type)
139
- */
140
- database_name?: string | null;
141
-
142
- /**
143
- * List of group names to associate with the tenant
144
- */
145
- group_names?: Array<string> | null;
146
-
147
- /**
148
- * Human-readable tenant name
149
- */
150
- tenant_name?: string | null;
151
77
  }
152
78
 
153
79
  /**
154
- * Response model for a single tenant.
80
+ * Response model for tenant import operation.
155
81
  */
156
- export interface Tenant {
157
- /**
158
- * Tenant ID
159
- */
160
- id: string;
161
-
162
- /**
163
- * Creation timestamp
164
- */
165
- created_at: string;
166
-
82
+ export interface ImportTenantsResponse {
167
83
  /**
168
- * Associated databases
84
+ * Unique tenant keys found in source
169
85
  */
170
- databases: Array<Tenant.Database>;
86
+ total_found: number;
171
87
 
172
88
  /**
173
- * Associated groups
89
+ * New tenants created
174
90
  */
175
- groups: Array<Tenant.Group>;
91
+ total_imported: number;
176
92
 
177
93
  /**
178
- * Human-readable tenant name
94
+ * Existing tenants updated
179
95
  */
180
- name: string | null;
96
+ total_updated: number;
181
97
 
182
98
  /**
183
- * Unique tenant identifier
99
+ * Tenant-specific errors
184
100
  */
185
- tenant_key: string;
101
+ errors?: Array<ImportTenantsResponse.Error>;
186
102
 
187
103
  /**
188
- * Last update timestamp
104
+ * Groups that were auto-created
189
105
  */
190
- updated_at: string;
106
+ groups_created?: Array<string>;
191
107
  }
192
108
 
193
- export namespace Tenant {
109
+ export namespace ImportTenantsResponse {
194
110
  /**
195
- * Database information in tenant responses.
111
+ * Error for a single tenant during import.
196
112
  */
197
- export interface Database {
113
+ export interface Error {
198
114
  /**
199
- * Database ID
115
+ * Error code
200
116
  */
201
- id: string;
117
+ code: string;
202
118
 
203
119
  /**
204
- * Database name
120
+ * Error message
205
121
  */
206
- name: string;
207
- }
208
-
209
- /**
210
- * Group information in tenant responses.
211
- */
212
- export interface Group {
213
- /**
214
- * Group ID
215
- */
216
- id: string;
122
+ message: string;
217
123
 
218
124
  /**
219
- * Group name
125
+ * Tenant key that failed
220
126
  */
221
- name: string;
127
+ tenant_key: string;
222
128
  }
223
129
  }
224
130
 
225
- export type TenantListResponse = Array<Tenant>;
226
-
227
131
  /**
228
132
  * Schema for tenant configuration files
229
133
  */
230
- export interface TenantRetrieveSchemaResponse {
134
+ export interface TenantGetTenantsSchemaResponse {
231
135
  /**
232
136
  * Array of tenant configurations
233
137
  */
234
- tenants: Array<TenantRetrieveSchemaResponse.Tenant>;
138
+ tenants: Array<TenantGetTenantsSchemaResponse.Tenant>;
235
139
  }
236
140
 
237
- export namespace TenantRetrieveSchemaResponse {
141
+ export namespace TenantGetTenantsSchemaResponse {
238
142
  export interface Tenant {
239
143
  /**
240
144
  * Unique Kater identifier
@@ -258,87 +162,59 @@ export namespace TenantRetrieveSchemaResponse {
258
162
  }
259
163
  }
260
164
 
261
- export interface TenantCreateParams {
165
+ export interface TenantImportFromCsvParams {
262
166
  /**
263
- * Unique tenant identifier within the client
167
+ * CSV file with tenant data
264
168
  */
265
- tenant_key: string;
266
-
267
- /**
268
- * Connection ID (required for DATABASE tenancy type)
269
- */
270
- connection_id?: string | null;
169
+ file: Uploadable;
170
+ }
271
171
 
172
+ export interface TenantImportFromWarehouseParams {
272
173
  /**
273
- * Database name (required for DATABASE tenancy type)
174
+ * Warehouse connection ID to query
274
175
  */
275
- database_name?: string | null;
176
+ connection_id: string;
276
177
 
277
178
  /**
278
- * List of group names to associate with the tenant
179
+ * Database name containing the tenant table
279
180
  */
280
- group_names?: Array<string> | null;
181
+ database: string;
281
182
 
282
183
  /**
283
- * Human-readable tenant name
184
+ * Schema name containing the tenant table
284
185
  */
285
- tenant_name?: string | null;
286
- }
186
+ schema: string;
287
187
 
288
- export interface TenantUpdateParams {
289
188
  /**
290
- * Connection ID for database association (required with database_name)
189
+ * Table name containing tenant data
291
190
  */
292
- connection_id?: string | null;
191
+ table: string;
293
192
 
294
193
  /**
295
- * Database name for association (required with connection_id)
194
+ * Column name for tenant key
296
195
  */
297
- database_name?: string | null;
196
+ tenant_key_column: string;
298
197
 
299
198
  /**
300
- * New list of group names (replaces all existing associations)
199
+ * Column name for tenant group (optional)
301
200
  */
302
- group_names?: Array<string> | null;
201
+ tenant_group_column?: string | null;
303
202
 
304
203
  /**
305
- * New human-readable tenant name
204
+ * Column name for tenant display name (optional)
306
205
  */
307
- tenant_name?: string | null;
206
+ tenant_name_column?: string | null;
308
207
  }
309
208
 
310
- Tenants.Batch = Batch;
311
- Tenants.Import = Import;
312
209
  Tenants.Groups = Groups;
313
210
 
314
211
  export declare namespace Tenants {
315
212
  export {
316
- type CreateTenant as CreateTenant,
317
- type Tenant as Tenant,
318
- type TenantListResponse as TenantListResponse,
319
- type TenantRetrieveSchemaResponse as TenantRetrieveSchemaResponse,
320
- type TenantCreateParams as TenantCreateParams,
321
- type TenantUpdateParams as TenantUpdateParams,
322
- };
323
-
324
- export {
325
- Batch as Batch,
326
- type BatchTenantError as BatchTenantError,
327
- type BatchTenantSuccess as BatchTenantSuccess,
328
- type BatchCreateResponse as BatchCreateResponse,
329
- type BatchUpdateResponse as BatchUpdateResponse,
330
- type BatchDeleteResponse as BatchDeleteResponse,
331
- type BatchCreateParams as BatchCreateParams,
332
- type BatchUpdateParams as BatchUpdateParams,
333
- type BatchDeleteParams as BatchDeleteParams,
334
- };
335
-
336
- export {
337
- Import as Import,
338
- type ImportTenants as ImportTenants,
339
- type ImportFromCsvParams as ImportFromCsvParams,
340
- type ImportFromWarehouseParams as ImportFromWarehouseParams,
213
+ type ImportTenantsResponse as ImportTenantsResponse,
214
+ type TenantGetTenantsSchemaResponse as TenantGetTenantsSchemaResponse,
215
+ type TenantImportFromCsvParams as TenantImportFromCsvParams,
216
+ type TenantImportFromWarehouseParams as TenantImportFromWarehouseParams,
341
217
  };
342
218
 
343
- export { Groups as Groups, type GroupRetrieveSchemaResponse as GroupRetrieveSchemaResponse };
219
+ export { Groups as Groups, type GroupGetTenantGroupsSchemaResponse as GroupGetTenantGroupsSchemaResponse };
344
220
  }
@@ -1,131 +1,79 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
- import * as MeAPI from './me';
5
- import { ClientUser, ClientUserRole, Me } from './me';
6
- import * as ConnectionsAPI from './connections/connections';
4
+ import * as CompilerAPI from './compiler';
5
+ import {
6
+ ChartConfig,
7
+ Compiler,
8
+ CompilerCompileParams,
9
+ CompilerCompileResponse,
10
+ CompilerErrorItem,
11
+ CompilerResolveParams,
12
+ CompilerResolveResponse,
13
+ CompilerValidateParams,
14
+ CompilerValidateResponse,
15
+ InlineField,
16
+ Manifest,
17
+ ManifestEntry,
18
+ RefWithLabel,
19
+ SubqueryCondition,
20
+ } from './compiler';
21
+ import * as ConnectionsAPI from './connections';
7
22
  import {
8
23
  Connection,
9
- ConnectionApproveSyncParams,
10
- ConnectionApproveSyncResponse,
11
- ConnectionCreateParams,
12
- ConnectionListParams,
13
- ConnectionListResponse,
14
- ConnectionListSyncsParams,
15
- ConnectionListSyncsResponse,
16
- ConnectionRetrieveCredentialResponse,
17
- ConnectionRetrieveSchemaResponse,
18
- ConnectionRetrieveSyncStatusParams,
19
- ConnectionRetrieveSyncStatusResponse,
20
- ConnectionStreamSyncProgressParams,
21
- ConnectionStreamSyncProgressResponse,
22
- ConnectionSyncResponse,
23
- ConnectionUpdateCredentialsParams,
24
- ConnectionUpdateCredentialsResponse,
25
- ConnectionUpdateParams,
24
+ ConnectionListConnectionsParams,
25
+ ConnectionListConnectionsResponse,
26
26
  Connections,
27
- DatabaseConfig,
28
- } from './connections/connections';
29
- import * as GitHubAPI from './github/github';
30
- import {
31
- GitHub,
32
- GitHubCallbackParams,
33
- GitHubCallbackResponse,
34
- GitHubConnectParams,
35
- GitHubConnectResponse,
36
- GitHubGetInstallationLinkResponse,
37
- GitHubGetStatusResponse,
38
- } from './github/github';
39
- import * as GroupsAPI from './groups/groups';
40
- import {
41
- GroupCreateParams,
42
- GroupDetail,
43
- GroupListResponse,
44
- GroupUpdateParams,
45
- Groups,
46
- } from './groups/groups';
47
- import * as OrgAPI from './org/org';
48
- import { Org } from './org/org';
27
+ } from './connections';
49
28
  import * as TenantsAPI from './tenants/tenants';
50
29
  import {
51
- CreateTenant,
52
- Tenant,
53
- TenantCreateParams,
54
- TenantListResponse,
55
- TenantRetrieveSchemaResponse,
56
- TenantUpdateParams,
30
+ ImportTenantsResponse,
31
+ TenantGetTenantsSchemaResponse,
32
+ TenantImportFromCsvParams,
33
+ TenantImportFromWarehouseParams,
57
34
  Tenants,
58
35
  } from './tenants/tenants';
59
36
 
60
37
  export class V1 extends APIResource {
38
+ compiler: CompilerAPI.Compiler = new CompilerAPI.Compiler(this._client);
61
39
  connections: ConnectionsAPI.Connections = new ConnectionsAPI.Connections(this._client);
62
- github: GitHubAPI.GitHub = new GitHubAPI.GitHub(this._client);
63
- groups: GroupsAPI.Groups = new GroupsAPI.Groups(this._client);
64
- me: MeAPI.Me = new MeAPI.Me(this._client);
65
- org: OrgAPI.Org = new OrgAPI.Org(this._client);
66
40
  tenants: TenantsAPI.Tenants = new TenantsAPI.Tenants(this._client);
67
41
  }
68
42
 
43
+ V1.Compiler = Compiler;
69
44
  V1.Connections = Connections;
70
- V1.GitHub = GitHub;
71
- V1.Groups = Groups;
72
- V1.Me = Me;
73
- V1.Org = Org;
74
45
  V1.Tenants = Tenants;
75
46
 
76
47
  export declare namespace V1 {
77
48
  export {
78
- Connections as Connections,
79
- type Connection as Connection,
80
- type DatabaseConfig as DatabaseConfig,
81
- type ConnectionListResponse as ConnectionListResponse,
82
- type ConnectionApproveSyncResponse as ConnectionApproveSyncResponse,
83
- type ConnectionListSyncsResponse as ConnectionListSyncsResponse,
84
- type ConnectionRetrieveCredentialResponse as ConnectionRetrieveCredentialResponse,
85
- type ConnectionRetrieveSchemaResponse as ConnectionRetrieveSchemaResponse,
86
- type ConnectionRetrieveSyncStatusResponse as ConnectionRetrieveSyncStatusResponse,
87
- type ConnectionStreamSyncProgressResponse as ConnectionStreamSyncProgressResponse,
88
- type ConnectionSyncResponse as ConnectionSyncResponse,
89
- type ConnectionUpdateCredentialsResponse as ConnectionUpdateCredentialsResponse,
90
- type ConnectionCreateParams as ConnectionCreateParams,
91
- type ConnectionUpdateParams as ConnectionUpdateParams,
92
- type ConnectionListParams as ConnectionListParams,
93
- type ConnectionApproveSyncParams as ConnectionApproveSyncParams,
94
- type ConnectionListSyncsParams as ConnectionListSyncsParams,
95
- type ConnectionRetrieveSyncStatusParams as ConnectionRetrieveSyncStatusParams,
96
- type ConnectionStreamSyncProgressParams as ConnectionStreamSyncProgressParams,
97
- type ConnectionUpdateCredentialsParams as ConnectionUpdateCredentialsParams,
98
- };
99
-
100
- export {
101
- GitHub as GitHub,
102
- type GitHubCallbackResponse as GitHubCallbackResponse,
103
- type GitHubConnectResponse as GitHubConnectResponse,
104
- type GitHubGetInstallationLinkResponse as GitHubGetInstallationLinkResponse,
105
- type GitHubGetStatusResponse as GitHubGetStatusResponse,
106
- type GitHubCallbackParams as GitHubCallbackParams,
107
- type GitHubConnectParams as GitHubConnectParams,
49
+ Compiler as Compiler,
50
+ type ChartConfig as ChartConfig,
51
+ type CompilerErrorItem as CompilerErrorItem,
52
+ type InlineField as InlineField,
53
+ type Manifest as Manifest,
54
+ type ManifestEntry as ManifestEntry,
55
+ type RefWithLabel as RefWithLabel,
56
+ type SubqueryCondition as SubqueryCondition,
57
+ type CompilerCompileResponse as CompilerCompileResponse,
58
+ type CompilerResolveResponse as CompilerResolveResponse,
59
+ type CompilerValidateResponse as CompilerValidateResponse,
60
+ type CompilerCompileParams as CompilerCompileParams,
61
+ type CompilerResolveParams as CompilerResolveParams,
62
+ type CompilerValidateParams as CompilerValidateParams,
108
63
  };
109
64
 
110
65
  export {
111
- Groups as Groups,
112
- type GroupDetail as GroupDetail,
113
- type GroupListResponse as GroupListResponse,
114
- type GroupCreateParams as GroupCreateParams,
115
- type GroupUpdateParams as GroupUpdateParams,
66
+ Connections as Connections,
67
+ type Connection as Connection,
68
+ type ConnectionListConnectionsResponse as ConnectionListConnectionsResponse,
69
+ type ConnectionListConnectionsParams as ConnectionListConnectionsParams,
116
70
  };
117
71
 
118
- export { Me as Me, type ClientUser as ClientUser, type ClientUserRole as ClientUserRole };
119
-
120
- export { Org as Org };
121
-
122
72
  export {
123
73
  Tenants as Tenants,
124
- type CreateTenant as CreateTenant,
125
- type Tenant as Tenant,
126
- type TenantListResponse as TenantListResponse,
127
- type TenantRetrieveSchemaResponse as TenantRetrieveSchemaResponse,
128
- type TenantCreateParams as TenantCreateParams,
129
- type TenantUpdateParams as TenantUpdateParams,
74
+ type ImportTenantsResponse as ImportTenantsResponse,
75
+ type TenantGetTenantsSchemaResponse as TenantGetTenantsSchemaResponse,
76
+ type TenantImportFromCsvParams as TenantImportFromCsvParams,
77
+ type TenantImportFromWarehouseParams as TenantImportFromWarehouseParams,
130
78
  };
131
79
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.6.0'; // x-release-please-version
1
+ export const VERSION = '0.8.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.6.0";
1
+ export declare const VERSION = "0.8.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.6.0";
1
+ export declare const VERSION = "0.8.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.6.0'; // x-release-please-version
4
+ exports.VERSION = '0.8.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.6.0'; // x-release-please-version
1
+ export const VERSION = '0.8.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map
@@ -1,16 +0,0 @@
1
- import { APIResource } from "../core/resource.mjs";
2
- import { APIPromise } from "../core/api-promise.mjs";
3
- import { RequestOptions } from "../internal/request-options.mjs";
4
- export declare class Healthz extends APIResource {
5
- /**
6
- * Returns 200 if the service is alive. Used by Kubernetes liveness probe.
7
- */
8
- check(options?: RequestOptions): APIPromise<HealthzCheckResponse>;
9
- }
10
- export type HealthzCheckResponse = {
11
- [key: string]: string;
12
- };
13
- export declare namespace Healthz {
14
- export { type HealthzCheckResponse as HealthzCheckResponse };
15
- }
16
- //# sourceMappingURL=healthz.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthz.d.mts","sourceRoot":"","sources":["../src/resources/healthz.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,OAAQ,SAAQ,WAAW;IACtC;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC;CAGlE;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,OAAO,EAAE,KAAK,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;CAC9D"}
@@ -1,16 +0,0 @@
1
- import { APIResource } from "../core/resource.js";
2
- import { APIPromise } from "../core/api-promise.js";
3
- import { RequestOptions } from "../internal/request-options.js";
4
- export declare class Healthz extends APIResource {
5
- /**
6
- * Returns 200 if the service is alive. Used by Kubernetes liveness probe.
7
- */
8
- check(options?: RequestOptions): APIPromise<HealthzCheckResponse>;
9
- }
10
- export type HealthzCheckResponse = {
11
- [key: string]: string;
12
- };
13
- export declare namespace Healthz {
14
- export { type HealthzCheckResponse as HealthzCheckResponse };
15
- }
16
- //# sourceMappingURL=healthz.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healthz.d.ts","sourceRoot":"","sources":["../src/resources/healthz.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,OAAQ,SAAQ,WAAW;IACtC;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC;CAGlE;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,OAAO,EAAE,KAAK,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;CAC9D"}