api.tsx 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891
  1. import { baseApi } from "./baseApi";
  2. import { StorageType } from "./types";
  3. /**
  4. * Generic api call format
  5. * @param {string} token - Bearer token.
  6. * @param {Object} params - Body params.
  7. * @param {Object} pathParams - Path params.
  8. * @param {(err: Object, res: Object) => void} callback - Callback function.
  9. */
  10. const checkAuth = baseApi("GET", "/api/auth/check");
  11. const connectECRRegistry = baseApi<
  12. {
  13. name: string;
  14. aws_integration_id: string;
  15. },
  16. { id: number }
  17. >("POST", (pathParams) => {
  18. return `/api/projects/${pathParams.id}/registries`;
  19. });
  20. const connectGCRRegistry = baseApi<
  21. {
  22. name: string;
  23. gcp_integration_id: string;
  24. url: string;
  25. },
  26. { id: number }
  27. >("POST", (pathParams) => {
  28. return `/api/projects/${pathParams.id}/registries`;
  29. });
  30. const createAWSIntegration = baseApi<
  31. {
  32. aws_region: string;
  33. aws_cluster_id?: string;
  34. aws_access_key_id: string;
  35. aws_secret_access_key: string;
  36. },
  37. { id: number }
  38. >("POST", (pathParams) => {
  39. return `/api/projects/${pathParams.id}/integrations/aws`;
  40. });
  41. const createDOCR = baseApi<
  42. {
  43. do_integration_id: number;
  44. docr_name: string;
  45. docr_subscription_tier: string;
  46. },
  47. {
  48. project_id: number;
  49. }
  50. >("POST", (pathParams) => {
  51. return `/api/projects/${pathParams.project_id}/provision/docr`;
  52. });
  53. const createDOKS = baseApi<
  54. {
  55. do_integration_id: number;
  56. doks_name: string;
  57. do_region: string;
  58. },
  59. {
  60. project_id: number;
  61. }
  62. >("POST", (pathParams) => {
  63. return `/api/projects/${pathParams.project_id}/provision/doks`;
  64. });
  65. const createEmailVerification = baseApi<{}, {}>("POST", (pathParams) => {
  66. return `/api/email/verify/initiate`;
  67. });
  68. const createGCPIntegration = baseApi<
  69. {
  70. gcp_region: string;
  71. gcp_key_data: string;
  72. gcp_project_id: string;
  73. },
  74. {
  75. project_id: number;
  76. }
  77. >("POST", (pathParams) => {
  78. return `/api/projects/${pathParams.project_id}/integrations/gcp`;
  79. });
  80. const createGCR = baseApi<
  81. {
  82. gcp_integration_id: number;
  83. },
  84. {
  85. project_id: number;
  86. }
  87. >("POST", (pathParams) => {
  88. return `/api/projects/${pathParams.project_id}/provision/gcr`;
  89. });
  90. const createGHAction = baseApi<
  91. {
  92. git_repo: string;
  93. git_branch: string;
  94. registry_id: number;
  95. image_repo_uri: string;
  96. dockerfile_path: string;
  97. folder_path: string;
  98. git_repo_id: number;
  99. env: any;
  100. },
  101. {
  102. project_id: number;
  103. CLUSTER_ID: number;
  104. RELEASE_NAME: string;
  105. RELEASE_NAMESPACE: string;
  106. }
  107. >("POST", (pathParams) => {
  108. let { project_id, CLUSTER_ID, RELEASE_NAME, RELEASE_NAMESPACE } = pathParams;
  109. return `/api/projects/${project_id}/ci/actions?cluster_id=${CLUSTER_ID}&name=${RELEASE_NAME}&namespace=${RELEASE_NAMESPACE}`;
  110. });
  111. const createGKE = baseApi<
  112. {
  113. gcp_integration_id: number;
  114. gke_name: string;
  115. },
  116. {
  117. project_id: number;
  118. }
  119. >("POST", (pathParams) => {
  120. return `/api/projects/${pathParams.project_id}/provision/gke`;
  121. });
  122. const createInvite = baseApi<
  123. {
  124. email: string;
  125. },
  126. {
  127. id: number;
  128. }
  129. >("POST", (pathParams) => {
  130. return `/api/projects/${pathParams.id}/invites`;
  131. });
  132. const createPasswordReset = baseApi<
  133. {
  134. email: string;
  135. },
  136. {}
  137. >("POST", (pathParams) => {
  138. return `/api/password/reset/initiate`;
  139. });
  140. const createPasswordResetVerify = baseApi<
  141. {
  142. email: string;
  143. token: string;
  144. token_id: number;
  145. },
  146. {}
  147. >("POST", (pathParams) => {
  148. return `/api/password/reset/verify`;
  149. });
  150. const createPasswordResetFinalize = baseApi<
  151. {
  152. email: string;
  153. token: string;
  154. token_id: number;
  155. new_password: string;
  156. },
  157. {}
  158. >("POST", (pathParams) => {
  159. return `/api/password/reset/finalize`;
  160. });
  161. const createProject = baseApi<{ name: string }, {}>("POST", (pathParams) => {
  162. return `/api/projects`;
  163. });
  164. const createSubdomain = baseApi<
  165. {
  166. release_name: string;
  167. },
  168. {
  169. id: number;
  170. cluster_id: number;
  171. }
  172. >("POST", (pathParams) => {
  173. let { cluster_id, id } = pathParams;
  174. return `/api/projects/${id}/k8s/subdomain?cluster_id=${cluster_id}`;
  175. });
  176. const deleteCluster = baseApi<
  177. {},
  178. {
  179. project_id: number;
  180. cluster_id: number;
  181. }
  182. >("DELETE", (pathParams) => {
  183. return `/api/projects/${pathParams.project_id}/clusters/${pathParams.cluster_id}`;
  184. });
  185. const deleteGitRepoIntegration = baseApi<
  186. {},
  187. {
  188. project_id: number;
  189. git_repo_id: number;
  190. }
  191. >("DELETE", (pathParams) => {
  192. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}`;
  193. });
  194. const deleteInvite = baseApi<{}, { id: number; invId: number }>(
  195. "DELETE",
  196. (pathParams) => {
  197. return `/api/projects/${pathParams.id}/invites/${pathParams.invId}`;
  198. }
  199. );
  200. const deletePod = baseApi<
  201. {
  202. cluster_id: number;
  203. },
  204. { name: string; namespace: string; id: number }
  205. >("DELETE", (pathParams) => {
  206. return `/api/projects/${pathParams.id}/k8s/pods/${pathParams.namespace}/${pathParams.name}`;
  207. });
  208. const getPodEvents = baseApi<
  209. {
  210. cluster_id: number;
  211. },
  212. { name: string; namespace: string; id: number }
  213. >("GET", (pathParams) => {
  214. return `/api/projects/${pathParams.id}/k8s/pods/${pathParams.namespace}/${pathParams.name}/events/list`;
  215. });
  216. const deleteProject = baseApi<{}, { id: number }>("DELETE", (pathParams) => {
  217. return `/api/projects/${pathParams.id}`;
  218. });
  219. const deleteRegistryIntegration = baseApi<
  220. {},
  221. {
  222. project_id: number;
  223. registry_id: number;
  224. }
  225. >("DELETE", (pathParams) => {
  226. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}`;
  227. });
  228. const deployTemplate = baseApi<
  229. {
  230. templateName: string;
  231. imageURL?: string;
  232. formValues?: any;
  233. storage: StorageType;
  234. namespace: string;
  235. name: string;
  236. },
  237. {
  238. id: number;
  239. cluster_id: number;
  240. name: string;
  241. version: string;
  242. repo_url?: string;
  243. }
  244. >("POST", (pathParams) => {
  245. let { cluster_id, id, name, version, repo_url } = pathParams;
  246. if (repo_url) {
  247. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}&repo_url=${repo_url}`;
  248. }
  249. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}`;
  250. });
  251. const destroyCluster = baseApi<
  252. {
  253. eks_name: string;
  254. },
  255. {
  256. project_id: number;
  257. infra_id: number;
  258. }
  259. >("POST", (pathParams) => {
  260. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  261. });
  262. const getBranchContents = baseApi<
  263. {
  264. dir: string;
  265. },
  266. {
  267. project_id: number;
  268. git_repo_id: number;
  269. kind: string;
  270. owner: string;
  271. name: string;
  272. branch: string;
  273. }
  274. >("GET", (pathParams) => {
  275. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/contents`;
  276. });
  277. const getProcfileContents = baseApi<
  278. {
  279. path: string;
  280. },
  281. {
  282. project_id: number;
  283. git_repo_id: number;
  284. kind: string;
  285. owner: string;
  286. name: string;
  287. branch: string;
  288. }
  289. >("GET", (pathParams) => {
  290. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/procfile`;
  291. });
  292. const getBranches = baseApi<
  293. {},
  294. {
  295. project_id: number;
  296. git_repo_id: number;
  297. kind: string;
  298. owner: string;
  299. name: string;
  300. }
  301. >("GET", (pathParams) => {
  302. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/branches`;
  303. });
  304. const getChart = baseApi<
  305. {
  306. namespace: string;
  307. cluster_id: number;
  308. storage: StorageType;
  309. },
  310. { id: number; name: string; revision: number }
  311. >("GET", (pathParams) => {
  312. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}`;
  313. });
  314. const getCharts = baseApi<
  315. {
  316. namespace: string;
  317. cluster_id: number;
  318. storage: StorageType;
  319. limit: number;
  320. skip: number;
  321. byDate: boolean;
  322. statusFilter: string[];
  323. },
  324. { id: number }
  325. >("GET", (pathParams) => {
  326. return `/api/projects/${pathParams.id}/releases`;
  327. });
  328. const getChartComponents = baseApi<
  329. {
  330. namespace: string;
  331. cluster_id: number;
  332. storage: StorageType;
  333. },
  334. { id: number; name: string; revision: number }
  335. >("GET", (pathParams) => {
  336. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}/components`;
  337. });
  338. const getChartControllers = baseApi<
  339. {
  340. namespace: string;
  341. cluster_id: number;
  342. storage: StorageType;
  343. },
  344. { id: number; name: string; revision: number }
  345. >("GET", (pathParams) => {
  346. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}/controllers`;
  347. });
  348. const getClusterIntegrations = baseApi("GET", "/api/integrations/cluster");
  349. const getClusters = baseApi<{}, { id: number }>("GET", (pathParams) => {
  350. return `/api/projects/${pathParams.id}/clusters`;
  351. });
  352. const getGitRepoList = baseApi<
  353. {},
  354. {
  355. project_id: number;
  356. git_repo_id: number;
  357. }
  358. >("GET", (pathParams) => {
  359. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos`;
  360. });
  361. const getGitRepos = baseApi<
  362. {},
  363. {
  364. project_id: number;
  365. }
  366. >("GET", (pathParams) => {
  367. return `/api/projects/${pathParams.project_id}/gitrepos`;
  368. });
  369. const getImageRepos = baseApi<
  370. {},
  371. {
  372. project_id: number;
  373. registry_id: number;
  374. }
  375. >("GET", (pathParams) => {
  376. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories`;
  377. });
  378. const getImageTags = baseApi<
  379. {},
  380. {
  381. project_id: number;
  382. registry_id: number;
  383. repo_name: string;
  384. }
  385. >("GET", (pathParams) => {
  386. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories/${pathParams.repo_name}`;
  387. });
  388. const getInfra = baseApi<
  389. {},
  390. {
  391. project_id: number;
  392. }
  393. >("GET", (pathParams) => {
  394. return `/api/projects/${pathParams.project_id}/infra`;
  395. });
  396. const getIngress = baseApi<
  397. {
  398. cluster_id: number;
  399. },
  400. { name: string; namespace: string; id: number }
  401. >("GET", (pathParams) => {
  402. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/ingress/${pathParams.name}`;
  403. });
  404. const getInvites = baseApi<{}, { id: number }>("GET", (pathParams) => {
  405. return `/api/projects/${pathParams.id}/invites`;
  406. });
  407. const getJobs = baseApi<
  408. {
  409. cluster_id: number;
  410. },
  411. { chart: string; namespace: string; release_name: string; id: number }
  412. >("GET", (pathParams) => {
  413. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/${pathParams.chart}/${pathParams.release_name}/jobs`;
  414. });
  415. const getJobPods = baseApi<
  416. {
  417. cluster_id: number;
  418. },
  419. { name: string; namespace: string; id: number }
  420. >("GET", (pathParams) => {
  421. return `/api/projects/${pathParams.id}/k8s/jobs/${pathParams.namespace}/${pathParams.name}/pods`;
  422. });
  423. const getMatchingPods = baseApi<
  424. {
  425. cluster_id: number;
  426. selectors: string[];
  427. },
  428. { id: number }
  429. >("GET", (pathParams) => {
  430. return `/api/projects/${pathParams.id}/k8s/pods`;
  431. });
  432. const getMetrics = baseApi<
  433. {
  434. cluster_id: number;
  435. metric: string;
  436. shouldsum: boolean;
  437. pods: string[];
  438. namespace: string;
  439. startrange: number;
  440. endrange: number;
  441. resolution: string;
  442. },
  443. { id: number }
  444. >("GET", (pathParams) => {
  445. return `/api/projects/${pathParams.id}/k8s/metrics`;
  446. });
  447. const getNamespaces = baseApi<
  448. {
  449. cluster_id: number;
  450. },
  451. { id: number }
  452. >("GET", (pathParams) => {
  453. return `/api/projects/${pathParams.id}/k8s/namespaces`;
  454. });
  455. const getNGINXIngresses = baseApi<
  456. {
  457. cluster_id: number;
  458. },
  459. { id: number }
  460. >("GET", (pathParams) => {
  461. return `/api/projects/${pathParams.id}/k8s/prometheus/ingresses`;
  462. });
  463. const getOAuthIds = baseApi<
  464. {},
  465. {
  466. project_id: number;
  467. }
  468. >("GET", (pathParams) => {
  469. return `/api/projects/${pathParams.project_id}/integrations/oauth`;
  470. });
  471. const getProjectClusters = baseApi<{}, { id: number }>("GET", (pathParams) => {
  472. return `/api/projects/${pathParams.id}/clusters`;
  473. });
  474. const getProjectRegistries = baseApi<{}, { id: number }>(
  475. "GET",
  476. (pathParams) => {
  477. return `/api/projects/${pathParams.id}/registries`;
  478. }
  479. );
  480. const getProjectRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  481. return `/api/projects/${pathParams.id}/repos`;
  482. });
  483. const getProjects = baseApi<{}, { id: number }>("GET", (pathParams) => {
  484. return `/api/users/${pathParams.id}/projects`;
  485. });
  486. const getPrometheusIsInstalled = baseApi<
  487. {
  488. cluster_id: number;
  489. },
  490. { id: number }
  491. >("GET", (pathParams) => {
  492. return `/api/projects/${pathParams.id}/k8s/prometheus/detect`;
  493. });
  494. const getRegistryIntegrations = baseApi("GET", "/api/integrations/registry");
  495. const getReleaseToken = baseApi<
  496. {
  497. namespace: string;
  498. cluster_id: number;
  499. storage: StorageType;
  500. },
  501. { name: string; id: number }
  502. >("GET", (pathParams) => {
  503. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/webhook_token`;
  504. });
  505. const destroyEKS = baseApi<
  506. {
  507. eks_name: string;
  508. },
  509. {
  510. project_id: number;
  511. infra_id: number;
  512. }
  513. >("POST", (pathParams) => {
  514. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  515. });
  516. const destroyGKE = baseApi<
  517. {
  518. gke_name: string;
  519. },
  520. {
  521. project_id: number;
  522. infra_id: number;
  523. }
  524. >("POST", (pathParams) => {
  525. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/gke/destroy`;
  526. });
  527. const destroyDOKS = baseApi<
  528. {
  529. doks_name: string;
  530. },
  531. {
  532. project_id: number;
  533. infra_id: number;
  534. }
  535. >("POST", (pathParams) => {
  536. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/doks/destroy`;
  537. });
  538. const getRepoIntegrations = baseApi("GET", "/api/integrations/repo");
  539. const getRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  540. return `/api/projects/${pathParams.id}/repos`;
  541. });
  542. const getRevisions = baseApi<
  543. {
  544. namespace: string;
  545. cluster_id: number;
  546. storage: StorageType;
  547. },
  548. { id: number; name: string }
  549. >("GET", (pathParams) => {
  550. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/history`;
  551. });
  552. const getTemplateInfo = baseApi<
  553. {
  554. repo_url?: string;
  555. },
  556. { name: string; version: string }
  557. >("GET", (pathParams) => {
  558. return `/api/templates/${pathParams.name}/${pathParams.version}`;
  559. });
  560. const getTemplates = baseApi<
  561. {
  562. repo_url?: string;
  563. },
  564. {}
  565. >("GET", "/api/templates");
  566. const getUser = baseApi<{}, { id: number }>("GET", (pathParams) => {
  567. return `/api/users/${pathParams.id}`;
  568. });
  569. const getCapabilities = baseApi<{}, {}>("GET", () => {
  570. return `/api/capabilities`;
  571. });
  572. const linkGithubProject = baseApi<
  573. {},
  574. {
  575. project_id: number;
  576. }
  577. >("GET", (pathParams) => {
  578. return `/api/oauth/projects/${pathParams.project_id}/github`;
  579. });
  580. const logInUser = baseApi<{
  581. email: string;
  582. password: string;
  583. }>("POST", "/api/login");
  584. const logOutUser = baseApi("POST", "/api/logout");
  585. const provisionECR = baseApi<
  586. {
  587. ecr_name: string;
  588. aws_integration_id: string;
  589. },
  590. { id: number }
  591. >("POST", (pathParams) => {
  592. return `/api/projects/${pathParams.id}/provision/ecr`;
  593. });
  594. const provisionEKS = baseApi<
  595. {
  596. eks_name: string;
  597. aws_integration_id: string;
  598. machine_type: string;
  599. },
  600. { id: number }
  601. >("POST", (pathParams) => {
  602. return `/api/projects/${pathParams.id}/provision/eks`;
  603. });
  604. const registerUser = baseApi<{
  605. email: string;
  606. password: string;
  607. }>("POST", "/api/users");
  608. const rollbackChart = baseApi<
  609. {
  610. namespace: string;
  611. storage: StorageType;
  612. revision: number;
  613. },
  614. {
  615. id: number;
  616. name: string;
  617. cluster_id: number;
  618. }
  619. >("POST", (pathParams) => {
  620. let { id, name, cluster_id } = pathParams;
  621. return `/api/projects/${id}/releases/${name}/rollback?cluster_id=${cluster_id}`;
  622. });
  623. const uninstallTemplate = baseApi<
  624. {},
  625. {
  626. id: number;
  627. name: string;
  628. cluster_id: number;
  629. namespace: string;
  630. storage: StorageType;
  631. }
  632. >("POST", (pathParams) => {
  633. let { id, name, cluster_id, storage, namespace } = pathParams;
  634. return `/api/projects/${id}/delete/${name}?cluster_id=${cluster_id}&namespace=${namespace}&storage=${storage}`;
  635. });
  636. const updateUser = baseApi<
  637. {
  638. rawKubeConfig?: string;
  639. allowedContexts?: string[];
  640. },
  641. { id: number }
  642. >("PUT", (pathParams) => {
  643. return `/api/users/${pathParams.id}`;
  644. });
  645. const upgradeChartValues = baseApi<
  646. {
  647. namespace: string;
  648. storage: StorageType;
  649. values: string;
  650. version?: string;
  651. },
  652. {
  653. id: number;
  654. name: string;
  655. cluster_id: number;
  656. }
  657. >("POST", (pathParams) => {
  658. let { id, name, cluster_id } = pathParams;
  659. return `/api/projects/${id}/releases/${name}/upgrade?cluster_id=${cluster_id}`;
  660. });
  661. const listConfigMaps = baseApi<
  662. {
  663. namespace: string;
  664. cluster_id: number;
  665. },
  666. { id: number }
  667. >("GET", (pathParams) => {
  668. return `/api/projects/${pathParams.id}/k8s/configmap/list`;
  669. });
  670. const getConfigMap = baseApi<
  671. {
  672. name: string;
  673. namespace: string;
  674. cluster_id: number;
  675. },
  676. { id: number }
  677. >("GET", (pathParams) => {
  678. return `/api/projects/${pathParams.id}/k8s/configmap`;
  679. });
  680. const createConfigMap = baseApi<
  681. {
  682. name: string;
  683. namespace: string;
  684. variables: Record<string, string>;
  685. secret_variables?: Record<string, string>;
  686. },
  687. { id: number; cluster_id: number }
  688. >("POST", (pathParams) => {
  689. let { id, cluster_id } = pathParams;
  690. return `/api/projects/${id}/k8s/configmap/create?cluster_id=${cluster_id}`;
  691. });
  692. const updateConfigMap = baseApi<
  693. {
  694. name: string;
  695. namespace: string;
  696. variables: Record<string, string>;
  697. secret_variables?: Record<string, string>;
  698. },
  699. { id: number; cluster_id: number }
  700. >("POST", (pathParams) => {
  701. let { id, cluster_id } = pathParams;
  702. return `/api/projects/${id}/k8s/configmap/update?cluster_id=${cluster_id}`;
  703. });
  704. const deleteConfigMap = baseApi<
  705. {
  706. name: string;
  707. namespace: string;
  708. cluster_id: number;
  709. },
  710. { id: number }
  711. >("DELETE", (pathParams) => {
  712. return `/api/projects/${pathParams.id}/k8s/configmap/delete`;
  713. });
  714. const stopJob = baseApi<
  715. {},
  716. { name: string; namespace: string; id: number; cluster_id: number }
  717. >("POST", (pathParams) => {
  718. let { id, name, namespace, cluster_id } = pathParams;
  719. return `/api/projects/${id}/k8s/jobs/${namespace}/${name}/stop?cluster_id=${cluster_id}`;
  720. });
  721. // Bundle export to allow default api import (api.<method> is more readable)
  722. export default {
  723. checkAuth,
  724. connectECRRegistry,
  725. connectGCRRegistry,
  726. createAWSIntegration,
  727. createDOCR,
  728. createDOKS,
  729. createEmailVerification,
  730. createGCPIntegration,
  731. createGCR,
  732. createGHAction,
  733. createGKE,
  734. createInvite,
  735. createPasswordReset,
  736. createPasswordResetVerify,
  737. createPasswordResetFinalize,
  738. createProject,
  739. createConfigMap,
  740. deleteCluster,
  741. deleteConfigMap,
  742. deleteGitRepoIntegration,
  743. deleteInvite,
  744. deletePod,
  745. deleteProject,
  746. deleteRegistryIntegration,
  747. createSubdomain,
  748. deployTemplate,
  749. destroyEKS,
  750. destroyGKE,
  751. destroyDOKS,
  752. getBranchContents,
  753. getBranches,
  754. getCapabilities,
  755. getChart,
  756. getCharts,
  757. getChartComponents,
  758. getChartControllers,
  759. getClusterIntegrations,
  760. getClusters,
  761. getConfigMap,
  762. getGitRepoList,
  763. getGitRepos,
  764. getImageRepos,
  765. getImageTags,
  766. getInfra,
  767. getIngress,
  768. getInvites,
  769. getJobs,
  770. getJobPods,
  771. getMatchingPods,
  772. getMetrics,
  773. getNamespaces,
  774. getNGINXIngresses,
  775. getOAuthIds,
  776. getPodEvents,
  777. getProcfileContents,
  778. getProjectClusters,
  779. getProjectRegistries,
  780. getProjectRepos,
  781. getProjects,
  782. getPrometheusIsInstalled,
  783. getRegistryIntegrations,
  784. getReleaseToken,
  785. getRepoIntegrations,
  786. getRepos,
  787. getRevisions,
  788. getTemplateInfo,
  789. getTemplates,
  790. getUser,
  791. linkGithubProject,
  792. listConfigMaps,
  793. logInUser,
  794. logOutUser,
  795. provisionECR,
  796. provisionEKS,
  797. registerUser,
  798. rollbackChart,
  799. uninstallTemplate,
  800. updateUser,
  801. updateConfigMap,
  802. upgradeChartValues,
  803. stopJob,
  804. };