api.tsx 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961
  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 overwriteAWSIntegration = baseApi<
  42. {
  43. aws_access_key_id: string;
  44. aws_secret_access_key: string;
  45. },
  46. {
  47. projectID: number;
  48. awsIntegrationID: number;
  49. cluster_id: number;
  50. }
  51. >("POST", (pathParams) => {
  52. return `/api/projects/${pathParams.projectID}/integrations/aws/${pathParams.awsIntegrationID}/overwrite?cluster_id=${pathParams.cluster_id}`;
  53. });
  54. const createDOCR = baseApi<
  55. {
  56. do_integration_id: number;
  57. docr_name: string;
  58. docr_subscription_tier: string;
  59. },
  60. {
  61. project_id: number;
  62. }
  63. >("POST", (pathParams) => {
  64. return `/api/projects/${pathParams.project_id}/provision/docr`;
  65. });
  66. const createDOKS = baseApi<
  67. {
  68. do_integration_id: number;
  69. doks_name: string;
  70. do_region: string;
  71. },
  72. {
  73. project_id: number;
  74. }
  75. >("POST", (pathParams) => {
  76. return `/api/projects/${pathParams.project_id}/provision/doks`;
  77. });
  78. const createEmailVerification = baseApi<{}, {}>("POST", (pathParams) => {
  79. return `/api/email/verify/initiate`;
  80. });
  81. const createGCPIntegration = baseApi<
  82. {
  83. gcp_region: string;
  84. gcp_key_data: string;
  85. gcp_project_id: string;
  86. },
  87. {
  88. project_id: number;
  89. }
  90. >("POST", (pathParams) => {
  91. return `/api/projects/${pathParams.project_id}/integrations/gcp`;
  92. });
  93. const createGCR = baseApi<
  94. {
  95. gcp_integration_id: number;
  96. },
  97. {
  98. project_id: number;
  99. }
  100. >("POST", (pathParams) => {
  101. return `/api/projects/${pathParams.project_id}/provision/gcr`;
  102. });
  103. const createGHAction = baseApi<
  104. {
  105. git_repo: string;
  106. git_branch: string;
  107. registry_id: number;
  108. image_repo_uri: string;
  109. dockerfile_path: string;
  110. folder_path: string;
  111. git_repo_id: number;
  112. env: any;
  113. },
  114. {
  115. project_id: number;
  116. CLUSTER_ID: number;
  117. RELEASE_NAME: string;
  118. RELEASE_NAMESPACE: string;
  119. }
  120. >("POST", (pathParams) => {
  121. let { project_id, CLUSTER_ID, RELEASE_NAME, RELEASE_NAMESPACE } = pathParams;
  122. return `/api/projects/${project_id}/ci/actions?cluster_id=${CLUSTER_ID}&name=${RELEASE_NAME}&namespace=${RELEASE_NAMESPACE}`;
  123. });
  124. const createGKE = baseApi<
  125. {
  126. gcp_integration_id: number;
  127. gke_name: string;
  128. },
  129. {
  130. project_id: number;
  131. }
  132. >("POST", (pathParams) => {
  133. return `/api/projects/${pathParams.project_id}/provision/gke`;
  134. });
  135. const createInvite = baseApi<
  136. {
  137. email: string;
  138. },
  139. {
  140. id: number;
  141. }
  142. >("POST", (pathParams) => {
  143. return `/api/projects/${pathParams.id}/invites`;
  144. });
  145. const createPasswordReset = baseApi<
  146. {
  147. email: string;
  148. },
  149. {}
  150. >("POST", (pathParams) => {
  151. return `/api/password/reset/initiate`;
  152. });
  153. const createPasswordResetVerify = baseApi<
  154. {
  155. email: string;
  156. token: string;
  157. token_id: number;
  158. },
  159. {}
  160. >("POST", (pathParams) => {
  161. return `/api/password/reset/verify`;
  162. });
  163. const createPasswordResetFinalize = baseApi<
  164. {
  165. email: string;
  166. token: string;
  167. token_id: number;
  168. new_password: string;
  169. },
  170. {}
  171. >("POST", (pathParams) => {
  172. return `/api/password/reset/finalize`;
  173. });
  174. const createProject = baseApi<{ name: string }, {}>("POST", (pathParams) => {
  175. return `/api/projects`;
  176. });
  177. const createSubdomain = baseApi<
  178. {
  179. release_name: string;
  180. },
  181. {
  182. id: number;
  183. cluster_id: number;
  184. }
  185. >("POST", (pathParams) => {
  186. let { cluster_id, id } = pathParams;
  187. return `/api/projects/${id}/k8s/subdomain?cluster_id=${cluster_id}`;
  188. });
  189. const deleteCluster = baseApi<
  190. {},
  191. {
  192. project_id: number;
  193. cluster_id: number;
  194. }
  195. >("DELETE", (pathParams) => {
  196. return `/api/projects/${pathParams.project_id}/clusters/${pathParams.cluster_id}`;
  197. });
  198. const deleteGitRepoIntegration = baseApi<
  199. {},
  200. {
  201. project_id: number;
  202. git_repo_id: number;
  203. }
  204. >("DELETE", (pathParams) => {
  205. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}`;
  206. });
  207. const deleteInvite = baseApi<{}, { id: number; invId: number }>(
  208. "DELETE",
  209. (pathParams) => {
  210. return `/api/projects/${pathParams.id}/invites/${pathParams.invId}`;
  211. }
  212. );
  213. const deletePod = baseApi<
  214. {
  215. cluster_id: number;
  216. },
  217. { name: string; namespace: string; id: number }
  218. >("DELETE", (pathParams) => {
  219. return `/api/projects/${pathParams.id}/k8s/pods/${pathParams.namespace}/${pathParams.name}`;
  220. });
  221. const getPodEvents = baseApi<
  222. {
  223. cluster_id: number;
  224. },
  225. { name: string; namespace: string; id: number }
  226. >("GET", (pathParams) => {
  227. return `/api/projects/${pathParams.id}/k8s/pods/${pathParams.namespace}/${pathParams.name}/events/list`;
  228. });
  229. const deleteProject = baseApi<{}, { id: number }>("DELETE", (pathParams) => {
  230. return `/api/projects/${pathParams.id}`;
  231. });
  232. const deleteRegistryIntegration = baseApi<
  233. {},
  234. {
  235. project_id: number;
  236. registry_id: number;
  237. }
  238. >("DELETE", (pathParams) => {
  239. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}`;
  240. });
  241. const deployTemplate = baseApi<
  242. {
  243. templateName: string;
  244. imageURL?: string;
  245. formValues?: any;
  246. storage: StorageType;
  247. namespace: string;
  248. name: string;
  249. },
  250. {
  251. id: number;
  252. cluster_id: number;
  253. name: string;
  254. version: string;
  255. repo_url?: string;
  256. }
  257. >("POST", (pathParams) => {
  258. let { cluster_id, id, name, version, repo_url } = pathParams;
  259. if (repo_url) {
  260. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}&repo_url=${repo_url}`;
  261. }
  262. return `/api/projects/${id}/deploy/${name}/${version}?cluster_id=${cluster_id}`;
  263. });
  264. const destroyCluster = baseApi<
  265. {
  266. eks_name: string;
  267. },
  268. {
  269. project_id: number;
  270. infra_id: number;
  271. }
  272. >("POST", (pathParams) => {
  273. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  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 getCluster = baseApi<
  366. {},
  367. {
  368. project_id: number;
  369. cluster_id: number;
  370. }
  371. >("GET", (pathParams) => {
  372. return `/api/projects/${pathParams.project_id}/clusters/${pathParams.cluster_id}`;
  373. });
  374. const getClusterNodes = baseApi<
  375. {},
  376. {
  377. project_id: number;
  378. cluster_id: number;
  379. }
  380. >("GET", (pathParams) => {
  381. return `/api/projects/${pathParams.project_id}/clusters/${pathParams.cluster_id}/nodes`;
  382. });
  383. const getGitRepoList = baseApi<
  384. {},
  385. {
  386. project_id: number;
  387. git_repo_id: number;
  388. }
  389. >("GET", (pathParams) => {
  390. return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos`;
  391. });
  392. const getGitRepos = baseApi<
  393. {},
  394. {
  395. project_id: number;
  396. }
  397. >("GET", (pathParams) => {
  398. return `/api/projects/${pathParams.project_id}/gitrepos`;
  399. });
  400. const getImageRepos = baseApi<
  401. {},
  402. {
  403. project_id: number;
  404. registry_id: number;
  405. }
  406. >("GET", (pathParams) => {
  407. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories`;
  408. });
  409. const getImageTags = baseApi<
  410. {},
  411. {
  412. project_id: number;
  413. registry_id: number;
  414. repo_name: string;
  415. }
  416. >("GET", (pathParams) => {
  417. return `/api/projects/${pathParams.project_id}/registries/${pathParams.registry_id}/repositories/${pathParams.repo_name}`;
  418. });
  419. const getInfra = baseApi<
  420. {},
  421. {
  422. project_id: number;
  423. }
  424. >("GET", (pathParams) => {
  425. return `/api/projects/${pathParams.project_id}/infra`;
  426. });
  427. const getIngress = baseApi<
  428. {
  429. cluster_id: number;
  430. },
  431. { name: string; namespace: string; id: number }
  432. >("GET", (pathParams) => {
  433. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/ingress/${pathParams.name}`;
  434. });
  435. const getInvites = baseApi<{}, { id: number }>("GET", (pathParams) => {
  436. return `/api/projects/${pathParams.id}/invites`;
  437. });
  438. const getJobs = baseApi<
  439. {
  440. cluster_id: number;
  441. },
  442. { chart: string; namespace: string; release_name: string; id: number }
  443. >("GET", (pathParams) => {
  444. return `/api/projects/${pathParams.id}/k8s/${pathParams.namespace}/${pathParams.chart}/${pathParams.release_name}/jobs`;
  445. });
  446. const getJobPods = baseApi<
  447. {
  448. cluster_id: number;
  449. },
  450. { name: string; namespace: string; id: number }
  451. >("GET", (pathParams) => {
  452. return `/api/projects/${pathParams.id}/k8s/jobs/${pathParams.namespace}/${pathParams.name}/pods`;
  453. });
  454. const getMatchingPods = baseApi<
  455. {
  456. cluster_id: number;
  457. namespace: string;
  458. selectors: string[];
  459. },
  460. { id: number }
  461. >("GET", (pathParams) => {
  462. return `/api/projects/${pathParams.id}/k8s/pods`;
  463. });
  464. const getMetrics = baseApi<
  465. {
  466. cluster_id: number;
  467. metric: string;
  468. shouldsum: boolean;
  469. pods: string[];
  470. namespace: string;
  471. startrange: number;
  472. endrange: number;
  473. resolution: string;
  474. },
  475. { id: number }
  476. >("GET", (pathParams) => {
  477. return `/api/projects/${pathParams.id}/k8s/metrics`;
  478. });
  479. const getNamespaces = baseApi<
  480. {
  481. cluster_id: number;
  482. },
  483. { id: number }
  484. >("GET", (pathParams) => {
  485. return `/api/projects/${pathParams.id}/k8s/namespaces`;
  486. });
  487. const getNGINXIngresses = baseApi<
  488. {
  489. cluster_id: number;
  490. },
  491. { id: number }
  492. >("GET", (pathParams) => {
  493. return `/api/projects/${pathParams.id}/k8s/prometheus/ingresses`;
  494. });
  495. const getOAuthIds = baseApi<
  496. {},
  497. {
  498. project_id: number;
  499. }
  500. >("GET", (pathParams) => {
  501. return `/api/projects/${pathParams.project_id}/integrations/oauth`;
  502. });
  503. const getProjectClusters = baseApi<{}, { id: number }>("GET", (pathParams) => {
  504. return `/api/projects/${pathParams.id}/clusters`;
  505. });
  506. const getProjectRegistries = baseApi<{}, { id: number }>(
  507. "GET",
  508. (pathParams) => {
  509. return `/api/projects/${pathParams.id}/registries`;
  510. }
  511. );
  512. const getProjectRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  513. return `/api/projects/${pathParams.id}/repos`;
  514. });
  515. const getProjects = baseApi<{}, { id: number }>("GET", (pathParams) => {
  516. return `/api/users/${pathParams.id}/projects`;
  517. });
  518. const getPrometheusIsInstalled = baseApi<
  519. {
  520. cluster_id: number;
  521. },
  522. { id: number }
  523. >("GET", (pathParams) => {
  524. return `/api/projects/${pathParams.id}/k8s/prometheus/detect`;
  525. });
  526. const getRegistryIntegrations = baseApi("GET", "/api/integrations/registry");
  527. const getReleaseToken = baseApi<
  528. {
  529. namespace: string;
  530. cluster_id: number;
  531. storage: StorageType;
  532. },
  533. { name: string; id: number }
  534. >("GET", (pathParams) => {
  535. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/webhook_token`;
  536. });
  537. const destroyEKS = baseApi<
  538. {
  539. eks_name: string;
  540. },
  541. {
  542. project_id: number;
  543. infra_id: number;
  544. }
  545. >("POST", (pathParams) => {
  546. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/eks/destroy`;
  547. });
  548. const destroyGKE = baseApi<
  549. {
  550. gke_name: string;
  551. },
  552. {
  553. project_id: number;
  554. infra_id: number;
  555. }
  556. >("POST", (pathParams) => {
  557. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/gke/destroy`;
  558. });
  559. const destroyDOKS = baseApi<
  560. {
  561. doks_name: string;
  562. },
  563. {
  564. project_id: number;
  565. infra_id: number;
  566. }
  567. >("POST", (pathParams) => {
  568. return `/api/projects/${pathParams.project_id}/infra/${pathParams.infra_id}/doks/destroy`;
  569. });
  570. const getRepoIntegrations = baseApi("GET", "/api/integrations/repo");
  571. const getRepos = baseApi<{}, { id: number }>("GET", (pathParams) => {
  572. return `/api/projects/${pathParams.id}/repos`;
  573. });
  574. const getRevisions = baseApi<
  575. {
  576. namespace: string;
  577. cluster_id: number;
  578. storage: StorageType;
  579. },
  580. { id: number; name: string }
  581. >("GET", (pathParams) => {
  582. return `/api/projects/${pathParams.id}/releases/${pathParams.name}/history`;
  583. });
  584. const getTemplateInfo = baseApi<
  585. {
  586. repo_url?: string;
  587. },
  588. { name: string; version: string }
  589. >("GET", (pathParams) => {
  590. return `/api/templates/${pathParams.name}/${pathParams.version}`;
  591. });
  592. const getTemplates = baseApi<
  593. {
  594. repo_url?: string;
  595. },
  596. {}
  597. >("GET", "/api/templates");
  598. const getUser = baseApi<{}, { id: number }>("GET", (pathParams) => {
  599. return `/api/users/${pathParams.id}`;
  600. });
  601. const getCapabilities = baseApi<{}, {}>("GET", () => {
  602. return `/api/capabilities`;
  603. });
  604. const linkGithubProject = baseApi<
  605. {},
  606. {
  607. project_id: number;
  608. }
  609. >("GET", (pathParams) => {
  610. return `/api/oauth/projects/${pathParams.project_id}/github`;
  611. });
  612. const logInUser = baseApi<{
  613. email: string;
  614. password: string;
  615. }>("POST", "/api/login");
  616. const logOutUser = baseApi("POST", "/api/logout");
  617. const provisionECR = baseApi<
  618. {
  619. ecr_name: string;
  620. aws_integration_id: string;
  621. },
  622. { id: number }
  623. >("POST", (pathParams) => {
  624. return `/api/projects/${pathParams.id}/provision/ecr`;
  625. });
  626. const provisionEKS = baseApi<
  627. {
  628. eks_name: string;
  629. aws_integration_id: string;
  630. machine_type: string;
  631. },
  632. { id: number }
  633. >("POST", (pathParams) => {
  634. return `/api/projects/${pathParams.id}/provision/eks`;
  635. });
  636. const registerUser = baseApi<{
  637. email: string;
  638. password: string;
  639. }>("POST", "/api/users");
  640. const rollbackChart = baseApi<
  641. {
  642. namespace: string;
  643. storage: StorageType;
  644. revision: number;
  645. },
  646. {
  647. id: number;
  648. name: string;
  649. cluster_id: number;
  650. }
  651. >("POST", (pathParams) => {
  652. let { id, name, cluster_id } = pathParams;
  653. return `/api/projects/${id}/releases/${name}/rollback?cluster_id=${cluster_id}`;
  654. });
  655. const uninstallTemplate = baseApi<
  656. {},
  657. {
  658. id: number;
  659. name: string;
  660. cluster_id: number;
  661. namespace: string;
  662. storage: StorageType;
  663. }
  664. >("POST", (pathParams) => {
  665. let { id, name, cluster_id, storage, namespace } = pathParams;
  666. return `/api/projects/${id}/delete/${name}?cluster_id=${cluster_id}&namespace=${namespace}&storage=${storage}`;
  667. });
  668. const updateUser = baseApi<
  669. {
  670. rawKubeConfig?: string;
  671. allowedContexts?: string[];
  672. },
  673. { id: number }
  674. >("PUT", (pathParams) => {
  675. return `/api/users/${pathParams.id}`;
  676. });
  677. const upgradeChartValues = baseApi<
  678. {
  679. namespace: string;
  680. storage: StorageType;
  681. values: string;
  682. version?: string;
  683. },
  684. {
  685. id: number;
  686. name: string;
  687. cluster_id: number;
  688. }
  689. >("POST", (pathParams) => {
  690. let { id, name, cluster_id } = pathParams;
  691. return `/api/projects/${id}/releases/${name}/upgrade?cluster_id=${cluster_id}`;
  692. });
  693. const listConfigMaps = baseApi<
  694. {
  695. namespace: string;
  696. cluster_id: number;
  697. },
  698. { id: number }
  699. >("GET", (pathParams) => {
  700. return `/api/projects/${pathParams.id}/k8s/configmap/list`;
  701. });
  702. const getConfigMap = baseApi<
  703. {
  704. name: string;
  705. namespace: string;
  706. cluster_id: number;
  707. },
  708. { id: number }
  709. >("GET", (pathParams) => {
  710. return `/api/projects/${pathParams.id}/k8s/configmap`;
  711. });
  712. const createConfigMap = baseApi<
  713. {
  714. name: string;
  715. namespace: string;
  716. variables: Record<string, string>;
  717. secret_variables?: Record<string, string>;
  718. },
  719. { id: number; cluster_id: number }
  720. >("POST", (pathParams) => {
  721. let { id, cluster_id } = pathParams;
  722. return `/api/projects/${id}/k8s/configmap/create?cluster_id=${cluster_id}`;
  723. });
  724. const updateConfigMap = baseApi<
  725. {
  726. name: string;
  727. namespace: string;
  728. variables: Record<string, string>;
  729. secret_variables?: Record<string, string>;
  730. },
  731. { id: number; cluster_id: number }
  732. >("POST", (pathParams) => {
  733. let { id, cluster_id } = pathParams;
  734. return `/api/projects/${id}/k8s/configmap/update?cluster_id=${cluster_id}`;
  735. });
  736. const deleteConfigMap = baseApi<
  737. {
  738. name: string;
  739. namespace: string;
  740. cluster_id: number;
  741. },
  742. { id: number }
  743. >("DELETE", (pathParams) => {
  744. return `/api/projects/${pathParams.id}/k8s/configmap/delete`;
  745. });
  746. const createNamespace = baseApi<
  747. {
  748. name: string;
  749. },
  750. { id: number; cluster_id: number }
  751. >("POST", (pathParams) => {
  752. let { id, cluster_id } = pathParams;
  753. return `/api/projects/${id}/k8s/namespaces/create?cluster_id=${cluster_id}`;
  754. });
  755. const deleteNamespace = baseApi<
  756. {
  757. name: string;
  758. cluster_id: number;
  759. },
  760. { id: number }
  761. >("DELETE", (pathParams) => {
  762. let { id } = pathParams;
  763. return `/api/projects/${id}/k8s/namespaces/delete`;
  764. });
  765. const deleteJob = baseApi<
  766. { cluster_id: number },
  767. { name: string; namespace: string; id: number }
  768. >("DELETE", (pathParams) => {
  769. let { id, name, namespace } = pathParams;
  770. return `/api/projects/${id}/k8s/jobs/${namespace}/${name}`;
  771. });
  772. const stopJob = baseApi<
  773. {},
  774. { name: string; namespace: string; id: number; cluster_id: number }
  775. >("POST", (pathParams) => {
  776. let { id, name, namespace, cluster_id } = pathParams;
  777. return `/api/projects/${id}/k8s/jobs/${namespace}/${name}/stop?cluster_id=${cluster_id}`;
  778. });
  779. // Bundle export to allow default api import (api.<method> is more readable)
  780. export default {
  781. checkAuth,
  782. connectECRRegistry,
  783. connectGCRRegistry,
  784. createAWSIntegration,
  785. overwriteAWSIntegration,
  786. createDOCR,
  787. createDOKS,
  788. createEmailVerification,
  789. createGCPIntegration,
  790. createGCR,
  791. createGHAction,
  792. createGKE,
  793. createInvite,
  794. createNamespace,
  795. createPasswordReset,
  796. createPasswordResetVerify,
  797. createPasswordResetFinalize,
  798. createProject,
  799. createConfigMap,
  800. deleteCluster,
  801. deleteConfigMap,
  802. deleteGitRepoIntegration,
  803. deleteInvite,
  804. deleteNamespace,
  805. deletePod,
  806. deleteProject,
  807. deleteRegistryIntegration,
  808. createSubdomain,
  809. deployTemplate,
  810. destroyEKS,
  811. destroyGKE,
  812. destroyDOKS,
  813. getBranchContents,
  814. getBranches,
  815. getCapabilities,
  816. getChart,
  817. getCharts,
  818. getChartComponents,
  819. getChartControllers,
  820. getClusterIntegrations,
  821. getClusters,
  822. getCluster,
  823. getClusterNodes,
  824. getConfigMap,
  825. getGitRepoList,
  826. getGitRepos,
  827. getImageRepos,
  828. getImageTags,
  829. getInfra,
  830. getIngress,
  831. getInvites,
  832. getJobs,
  833. getJobPods,
  834. getMatchingPods,
  835. getMetrics,
  836. getNamespaces,
  837. getNGINXIngresses,
  838. getOAuthIds,
  839. getPodEvents,
  840. getProcfileContents,
  841. getProjectClusters,
  842. getProjectRegistries,
  843. getProjectRepos,
  844. getProjects,
  845. getPrometheusIsInstalled,
  846. getRegistryIntegrations,
  847. getReleaseToken,
  848. getRepoIntegrations,
  849. getRepos,
  850. getRevisions,
  851. getTemplateInfo,
  852. getTemplates,
  853. getUser,
  854. linkGithubProject,
  855. listConfigMaps,
  856. logInUser,
  857. logOutUser,
  858. provisionECR,
  859. provisionEKS,
  860. registerUser,
  861. rollbackChart,
  862. uninstallTemplate,
  863. updateUser,
  864. updateConfigMap,
  865. upgradeChartValues,
  866. deleteJob,
  867. stopJob,
  868. };