api.tsx 20 KB

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