api.tsx 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884
  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 deleteProject = baseApi<{}, { id: number }>("DELETE", (pathParams) => {
  209. return `/api/projects/${pathParams.id}`;
  210. });
  211. const deleteRegistryIntegration = baseApi<
  212. {},
  213. {
  214. project_id: number;
  215. registry_id: number;
  216. }
  217. >("DELETE", (pathParams) => {
  218. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}`;
  219. });
  220. const deployTemplate = baseApi<
  221. {
  222. templateName: string;
  223. imageURL?: string;
  224. formValues?: any;
  225. storage: StorageType;
  226. namespace: string;
  227. name: string;
  228. },
  229. {
  230. id: number;
  231. cluster_id: number;
  232. name: string;
  233. version: string;
  234. repo_url?: string;
  235. }
  236. >("POST", (pathParams) => {
  237. let { cluster_id, id, name, version, repo_url } = pathParams;
  238. if (repo_url) {
  239. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}&repo_url=${repo_url}`;
  240. }
  241. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}`;
  242. });
  243. const destroyCluster = baseApi<
  244. {
  245. eks_name: string;
  246. },
  247. {
  248. project_id: number;
  249. infra_id: number;
  250. }
  251. >("POST", (pathParams) => {
  252. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  253. });
  254. const getBranchContents = baseApi<
  255. {
  256. dir: string;
  257. },
  258. {
  259. project_id: number;
  260. git_repo_id: number;
  261. kind: string;
  262. owner: string;
  263. name: string;
  264. branch: string;
  265. }
  266. >("GET", (pathParams) => {
  267. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/contents`;
  268. });
  269. const getProcfileContents = baseApi<
  270. {
  271. path: string;
  272. },
  273. {
  274. project_id: number;
  275. git_repo_id: number;
  276. kind: string;
  277. owner: string;
  278. name: string;
  279. branch: string;
  280. }
  281. >("GET", (pathParams) => {
  282. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/procfile`;
  283. });
  284. const getBranches = baseApi<
  285. {},
  286. {
  287. project_id: number;
  288. git_repo_id: number;
  289. kind: string;
  290. owner: string;
  291. name: string;
  292. }
  293. >("GET", (pathParams) => {
  294. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/branches`;
  295. });
  296. const getChart = baseApi<
  297. {
  298. namespace: string;
  299. cluster_id: number;
  300. storage: StorageType;
  301. },
  302. { id: number; name: string; revision: number }
  303. >("GET", (pathParams) => {
  304. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}`;
  305. });
  306. const getCharts = baseApi<
  307. {
  308. namespace: string;
  309. cluster_id: number;
  310. storage: StorageType;
  311. limit: number;
  312. skip: number;
  313. byDate: boolean;
  314. statusFilter: string[];
  315. },
  316. { id: number }
  317. >("GET", (pathParams) => {
  318. return `/api/projects/${pathParams.id}/releases`;
  319. });
  320. const getChartComponents = baseApi<
  321. {
  322. namespace: string;
  323. cluster_id: number;
  324. storage: StorageType;
  325. },
  326. { id: number; name: string; revision: number }
  327. >("GET", (pathParams) => {
  328. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}/components`;
  329. });
  330. const getChartControllers = baseApi<
  331. {
  332. namespace: string;
  333. cluster_id: number;
  334. storage: StorageType;
  335. },
  336. { id: number; name: string; revision: number }
  337. >("GET", (pathParams) => {
  338. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/${pathParams.revision}/controllers`;
  339. });
  340. const getClusterIntegrations = baseApi("GET", "/api/integrations/cluster");
  341. const getClusters = baseApi<{}, { id: number }>("GET", (pathParams) => {
  342. return `/api/projects/${pathParams.id}/clusters`;
  343. });
  344. const getGitRepoList = baseApi<
  345. {},
  346. {
  347. project_id: number;
  348. git_repo_id: number;
  349. }
  350. >("GET", (pathParams) => {
  351. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos`;
  352. });
  353. const getGitRepos = baseApi<
  354. {},
  355. {
  356. project_id: number;
  357. }
  358. >("GET", (pathParams) => {
  359. return `/api/projects/${pathParams.project_id}/gitrepos`;
  360. });
  361. const getImageRepos = baseApi<
  362. {},
  363. {
  364. project_id: number;
  365. registry_id: number;
  366. }
  367. >("GET", (pathParams) => {
  368. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories`;
  369. });
  370. const getImageTags = baseApi<
  371. {},
  372. {
  373. project_id: number;
  374. registry_id: number;
  375. repo_name: string;
  376. }
  377. >("GET", (pathParams) => {
  378. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories/${pathParams.repo_name}`;
  379. });
  380. const getInfra = baseApi<
  381. {},
  382. {
  383. project_id: number;
  384. }
  385. >("GET", (pathParams) => {
  386. return `/api/projects/${pathParams.project_id}/infra`;
  387. });
  388. const getIngress = baseApi<
  389. {
  390. cluster_id: number;
  391. },
  392. { name: string; namespace: string; id: number }
  393. >("GET", (pathParams) => {
  394. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/ingress/${pathParams.name}`;
  395. });
  396. const getInvites = baseApi<{}, { id: number }>("GET", (pathParams) => {
  397. return `/api/projects/${pathParams.id}/invites`;
  398. });
  399. const getJobs = baseApi<
  400. {
  401. cluster_id: number;
  402. },
  403. { chart: string; namespace: string; release_name: string; id: number }
  404. >("GET", (pathParams) => {
  405. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/${pathParams.chart}/${pathParams.release_name}/jobs`;
  406. });
  407. const getJobPods = baseApi<
  408. {
  409. cluster_id: number;
  410. },
  411. { name: string; namespace: string; id: number }
  412. >("GET", (pathParams) => {
  413. return `/api/projects/${pathParams.id}/k8s/jobs/${pathParams.namespace}/${pathParams.name}/pods`;
  414. });
  415. const getMatchingPods = baseApi<
  416. {
  417. cluster_id: number;
  418. selectors: string[];
  419. },
  420. { id: number }
  421. >("GET", (pathParams) => {
  422. return `/api/projects/${pathParams.id}/k8s/pods`;
  423. });
  424. const getMetrics = baseApi<
  425. {
  426. cluster_id: number;
  427. metric: string;
  428. shouldsum: boolean;
  429. pods: string[];
  430. namespace: string;
  431. startrange: number;
  432. endrange: number;
  433. resolution: string;
  434. },
  435. { id: number }
  436. >("GET", (pathParams) => {
  437. return `/api/projects/${pathParams.id}/k8s/metrics`;
  438. });
  439. const getNamespaces = baseApi<
  440. {
  441. cluster_id: number;
  442. },
  443. { id: number }
  444. >("GET", (pathParams) => {
  445. return `/api/projects/${pathParams.id}/k8s/namespaces`;
  446. });
  447. const getNGINXIngresses = baseApi<
  448. {
  449. cluster_id: number;
  450. },
  451. { id: number }
  452. >("GET", (pathParams) => {
  453. return `/api/projects/${pathParams.id}/k8s/prometheus/ingresses`;
  454. });
  455. const getOAuthIds = baseApi<
  456. {},
  457. {
  458. project_id: number;
  459. }
  460. >("GET", (pathParams) => {
  461. return `/api/projects/${pathParams.project_id}/integrations/oauth`;
  462. });
  463. const getProjectClusters = baseApi<{}, { id: number }>("GET", (pathParams) => {
  464. return `/api/projects/${pathParams.id}/clusters`;
  465. });
  466. const getProjectRegistries = baseApi<{}, { id: number }>(
  467. "GET",
  468. (pathParams) => {
  469. return `/api/projects/${pathParams.id}/registries`;
  470. }
  471. );
  472. const getProjectRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  473. return `/api/projects/${pathParams.id}/repos`;
  474. });
  475. const getProjects = baseApi<{}, { id: number }>("GET", (pathParams) => {
  476. return `/api/users/${pathParams.id}/projects`;
  477. });
  478. const getPrometheusIsInstalled = baseApi<
  479. {
  480. cluster_id: number;
  481. },
  482. { id: number }
  483. >("GET", (pathParams) => {
  484. return `/api/projects/${pathParams.id}/k8s/prometheus/detect`;
  485. });
  486. const getRegistryIntegrations = baseApi("GET", "/api/integrations/registry");
  487. const getReleaseToken = baseApi<
  488. {
  489. namespace: string;
  490. cluster_id: number;
  491. storage: StorageType;
  492. },
  493. { name: string; id: number }
  494. >("GET", (pathParams) => {
  495. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/webhook_token`;
  496. });
  497. const destroyEKS = baseApi<
  498. {
  499. eks_name: string;
  500. },
  501. {
  502. project_id: number;
  503. infra_id: number;
  504. }
  505. >("POST", (pathParams) => {
  506. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  507. });
  508. const destroyGKE = baseApi<
  509. {
  510. gke_name: string;
  511. },
  512. {
  513. project_id: number;
  514. infra_id: number;
  515. }
  516. >("POST", (pathParams) => {
  517. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/gke/destroy`;
  518. });
  519. const destroyDOKS = baseApi<
  520. {
  521. doks_name: string;
  522. },
  523. {
  524. project_id: number;
  525. infra_id: number;
  526. }
  527. >("POST", (pathParams) => {
  528. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/doks/destroy`;
  529. });
  530. const getRepoIntegrations = baseApi("GET", "/api/integrations/repo");
  531. const getRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  532. return `/api/projects/${pathParams.id}/repos`;
  533. });
  534. const getRevisions = baseApi<
  535. {
  536. namespace: string;
  537. cluster_id: number;
  538. storage: StorageType;
  539. },
  540. { id: number; name: string }
  541. >("GET", (pathParams) => {
  542. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/history`;
  543. });
  544. const getTemplateInfo = baseApi<
  545. {
  546. repo_url?: string;
  547. },
  548. { name: string; version: string }
  549. >("GET", (pathParams) => {
  550. return `/api/templates/${pathParams.name}/${pathParams.version}`;
  551. });
  552. const getAddonTemplates = baseApi("GET", "/api/templates");
  553. const getApplicationTemplates = baseApi<
  554. {
  555. repo_url?: string;
  556. },
  557. {}
  558. >("GET", "/api/templates");
  559. const getUser = baseApi<{}, { id: number }>("GET", (pathParams) => {
  560. return `/api/users/${pathParams.id}`;
  561. });
  562. const getCapabilities = baseApi<{}, {}>("GET", () => {
  563. return `/api/capabilities`;
  564. });
  565. const linkGithubProject = baseApi<
  566. {},
  567. {
  568. project_id: number;
  569. }
  570. >("GET", (pathParams) => {
  571. return `/api/oauth/projects/${pathParams.project_id}/github`;
  572. });
  573. const logInUser = baseApi<{
  574. email: string;
  575. password: string;
  576. }>("POST", "/api/login");
  577. const logOutUser = baseApi("POST", "/api/logout");
  578. const provisionECR = baseApi<
  579. {
  580. ecr_name: string;
  581. aws_integration_id: string;
  582. },
  583. { id: number }
  584. >("POST", (pathParams) => {
  585. return `/api/projects/${pathParams.id}/provision/ecr`;
  586. });
  587. const provisionEKS = baseApi<
  588. {
  589. eks_name: string;
  590. aws_integration_id: string;
  591. machine_type: string;
  592. },
  593. { id: number }
  594. >("POST", (pathParams) => {
  595. return `/api/projects/${pathParams.id}/provision/eks`;
  596. });
  597. const registerUser = baseApi<{
  598. email: string;
  599. password: string;
  600. }>("POST", "/api/users");
  601. const rollbackChart = baseApi<
  602. {
  603. namespace: string;
  604. storage: StorageType;
  605. revision: number;
  606. },
  607. {
  608. id: number;
  609. name: string;
  610. cluster_id: number;
  611. }
  612. >("POST", (pathParams) => {
  613. let { id, name, cluster_id } = pathParams;
  614. return `/api/projects/${id}/releases/${name}/rollback?cluster_id=${cluster_id}`;
  615. });
  616. const uninstallTemplate = baseApi<
  617. {},
  618. {
  619. id: number;
  620. name: string;
  621. cluster_id: number;
  622. namespace: string;
  623. storage: StorageType;
  624. }
  625. >("POST", (pathParams) => {
  626. let { id, name, cluster_id, storage, namespace } = pathParams;
  627. return `/api/projects/${id}/delete/${name}?cluster_id=${cluster_id}&namespace=${namespace}&storage=${storage}`;
  628. });
  629. const updateUser = baseApi<
  630. {
  631. rawKubeConfig?: string;
  632. allowedContexts?: string[];
  633. },
  634. { id: number }
  635. >("PUT", (pathParams) => {
  636. return `/api/users/${pathParams.id}`;
  637. });
  638. const upgradeChartValues = baseApi<
  639. {
  640. namespace: string;
  641. storage: StorageType;
  642. values: string;
  643. },
  644. {
  645. id: number;
  646. name: string;
  647. cluster_id: number;
  648. }
  649. >("POST", (pathParams) => {
  650. let { id, name, cluster_id } = pathParams;
  651. return `/api/projects/${id}/releases/${name}/upgrade?cluster_id=${cluster_id}`;
  652. });
  653. const listConfigMaps = baseApi<
  654. {
  655. namespace: string;
  656. cluster_id: number;
  657. },
  658. { id: number }
  659. >("GET", (pathParams) => {
  660. return `/api/projects/${pathParams.id}/k8s/configmap/list`;
  661. });
  662. const getConfigMap = baseApi<
  663. {
  664. name: string;
  665. namespace: string;
  666. cluster_id: number;
  667. },
  668. { id: number }
  669. >("GET", (pathParams) => {
  670. return `/api/projects/${pathParams.id}/k8s/configmap`;
  671. });
  672. const createConfigMap = baseApi<
  673. {
  674. name: string;
  675. namespace: string;
  676. variables: Record<string, string>;
  677. secret_variables?: Record<string, string>;
  678. },
  679. { id: number; cluster_id: number }
  680. >("POST", (pathParams) => {
  681. let { id, cluster_id } = pathParams;
  682. return `/api/projects/${id}/k8s/configmap/create?cluster_id=${cluster_id}`;
  683. });
  684. const updateConfigMap = baseApi<
  685. {
  686. name: string;
  687. namespace: string;
  688. variables: Record<string, string>;
  689. secret_variables?: Record<string, string>;
  690. },
  691. { id: number; cluster_id: number }
  692. >("POST", (pathParams) => {
  693. let { id, cluster_id } = pathParams;
  694. return `/api/projects/${id}/k8s/configmap/update?cluster_id=${cluster_id}`;
  695. });
  696. const deleteConfigMap = baseApi<
  697. {
  698. name: string;
  699. namespace: string;
  700. cluster_id: number;
  701. },
  702. { id: number }
  703. >("DELETE", (pathParams) => {
  704. return `/api/projects/${pathParams.id}/k8s/configmap/delete`;
  705. });
  706. const stopJob = baseApi<
  707. {},
  708. { name: string; namespace: string; id: number, cluster_id: number }
  709. >("POST", (pathParams) => {
  710. let { id, name, namespace, cluster_id } = pathParams
  711. return `/api/projects/${id}/k8s/jobs/${namespace}/${name}/stop?cluster_id=${cluster_id}`;
  712. });
  713. // Bundle export to allow default api import (api.<method> is more readable)
  714. export default {
  715. checkAuth,
  716. connectECRRegistry,
  717. connectGCRRegistry,
  718. createAWSIntegration,
  719. createDOCR,
  720. createDOKS,
  721. createEmailVerification,
  722. createGCPIntegration,
  723. createGCR,
  724. createGHAction,
  725. createGKE,
  726. createInvite,
  727. createPasswordReset,
  728. createPasswordResetVerify,
  729. createPasswordResetFinalize,
  730. createProject,
  731. createConfigMap,
  732. deleteCluster,
  733. deleteConfigMap,
  734. deleteGitRepoIntegration,
  735. deleteInvite,
  736. deletePod,
  737. deleteProject,
  738. deleteRegistryIntegration,
  739. createSubdomain,
  740. deployTemplate,
  741. destroyEKS,
  742. destroyGKE,
  743. destroyDOKS,
  744. getBranchContents,
  745. getBranches,
  746. getCapabilities,
  747. getChart,
  748. getCharts,
  749. getChartComponents,
  750. getChartControllers,
  751. getClusterIntegrations,
  752. getClusters,
  753. getConfigMap,
  754. getGitRepoList,
  755. getGitRepos,
  756. getImageRepos,
  757. getImageTags,
  758. getInfra,
  759. getIngress,
  760. getInvites,
  761. getJobs,
  762. getJobPods,
  763. getMatchingPods,
  764. getMetrics,
  765. getNamespaces,
  766. getNGINXIngresses,
  767. getOAuthIds,
  768. getProcfileContents,
  769. getProjectClusters,
  770. getProjectRegistries,
  771. getProjectRepos,
  772. getProjects,
  773. getPrometheusIsInstalled,
  774. getRegistryIntegrations,
  775. getReleaseToken,
  776. getRepoIntegrations,
  777. getRepos,
  778. getRevisions,
  779. getTemplateInfo,
  780. getAddonTemplates,
  781. getApplicationTemplates,
  782. getUser,
  783. linkGithubProject,
  784. listConfigMaps,
  785. logInUser,
  786. logOutUser,
  787. provisionECR,
  788. provisionEKS,
  789. registerUser,
  790. rollbackChart,
  791. uninstallTemplate,
  792. updateUser,
  793. updateConfigMap,
  794. upgradeChartValues,
  795. stopJob,
  796. };