@flui-cloud/cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (873) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +124 -0
  3. package/bin/run +17 -0
  4. package/lib/cli/src/background/cluster-worker.d.ts +11 -0
  5. package/lib/cli/src/background/cluster-worker.js +90 -0
  6. package/lib/cli/src/cli-providers.module.d.ts +2 -0
  7. package/lib/cli/src/cli-providers.module.js +118 -0
  8. package/lib/cli/src/cli.module.d.ts +13 -0
  9. package/lib/cli/src/cli.module.js +80 -0
  10. package/lib/cli/src/commands/_diag-oidc.d.ts +6 -0
  11. package/lib/cli/src/commands/_diag-oidc.js +132 -0
  12. package/lib/cli/src/commands/app/backup/create.d.ts +20 -0
  13. package/lib/cli/src/commands/app/backup/create.js +128 -0
  14. package/lib/cli/src/commands/app/backup/delete.d.ts +19 -0
  15. package/lib/cli/src/commands/app/backup/delete.js +95 -0
  16. package/lib/cli/src/commands/app/build.d.ts +17 -0
  17. package/lib/cli/src/commands/app/build.js +133 -0
  18. package/lib/cli/src/commands/app/builds.d.ts +14 -0
  19. package/lib/cli/src/commands/app/builds.js +82 -0
  20. package/lib/cli/src/commands/app/crash.d.ts +16 -0
  21. package/lib/cli/src/commands/app/crash.js +106 -0
  22. package/lib/cli/src/commands/app/crashes.d.ts +15 -0
  23. package/lib/cli/src/commands/app/crashes.js +99 -0
  24. package/lib/cli/src/commands/app/delete.d.ts +16 -0
  25. package/lib/cli/src/commands/app/delete.js +149 -0
  26. package/lib/cli/src/commands/app/image/delete.d.ts +18 -0
  27. package/lib/cli/src/commands/app/image/delete.js +72 -0
  28. package/lib/cli/src/commands/app/init.d.ts +40 -0
  29. package/lib/cli/src/commands/app/init.js +436 -0
  30. package/lib/cli/src/commands/app/list.d.ts +11 -0
  31. package/lib/cli/src/commands/app/list.js +84 -0
  32. package/lib/cli/src/commands/app/logs.d.ts +18 -0
  33. package/lib/cli/src/commands/app/logs.js +121 -0
  34. package/lib/cli/src/commands/app/metrics.d.ts +17 -0
  35. package/lib/cli/src/commands/app/metrics.js +100 -0
  36. package/lib/cli/src/commands/app/redeploy.d.ts +14 -0
  37. package/lib/cli/src/commands/app/redeploy.js +60 -0
  38. package/lib/cli/src/commands/app/releases.d.ts +15 -0
  39. package/lib/cli/src/commands/app/releases.js +117 -0
  40. package/lib/cli/src/commands/app/restart.d.ts +12 -0
  41. package/lib/cli/src/commands/app/restart.js +44 -0
  42. package/lib/cli/src/commands/app/scale.d.ts +13 -0
  43. package/lib/cli/src/commands/app/scale.js +58 -0
  44. package/lib/cli/src/commands/app/snapshot/create.d.ts +14 -0
  45. package/lib/cli/src/commands/app/snapshot/create.js +85 -0
  46. package/lib/cli/src/commands/app/snapshot/delete.d.ts +14 -0
  47. package/lib/cli/src/commands/app/snapshot/delete.js +63 -0
  48. package/lib/cli/src/commands/app/snapshot/list.d.ts +11 -0
  49. package/lib/cli/src/commands/app/snapshot/list.js +82 -0
  50. package/lib/cli/src/commands/app/snapshot/restore.d.ts +15 -0
  51. package/lib/cli/src/commands/app/snapshot/restore.js +74 -0
  52. package/lib/cli/src/commands/app/snapshot/swap.d.ts +15 -0
  53. package/lib/cli/src/commands/app/snapshot/swap.js +68 -0
  54. package/lib/cli/src/commands/app/start.d.ts +12 -0
  55. package/lib/cli/src/commands/app/start.js +45 -0
  56. package/lib/cli/src/commands/app/status.d.ts +15 -0
  57. package/lib/cli/src/commands/app/status.js +108 -0
  58. package/lib/cli/src/commands/app/stop.d.ts +12 -0
  59. package/lib/cli/src/commands/app/stop.js +45 -0
  60. package/lib/cli/src/commands/app/versions.d.ts +14 -0
  61. package/lib/cli/src/commands/app/versions.js +80 -0
  62. package/lib/cli/src/commands/auth/generate-api-key.d.ts +12 -0
  63. package/lib/cli/src/commands/auth/generate-api-key.js +90 -0
  64. package/lib/cli/src/commands/auth/login.d.ts +11 -0
  65. package/lib/cli/src/commands/auth/login.js +296 -0
  66. package/lib/cli/src/commands/auth/reset-password.d.ts +15 -0
  67. package/lib/cli/src/commands/auth/reset-password.js +253 -0
  68. package/lib/cli/src/commands/backup/destination/create.d.ts +22 -0
  69. package/lib/cli/src/commands/backup/destination/create.js +102 -0
  70. package/lib/cli/src/commands/backup/destination/delete.d.ts +11 -0
  71. package/lib/cli/src/commands/backup/destination/delete.js +46 -0
  72. package/lib/cli/src/commands/backup/destination/list.d.ts +9 -0
  73. package/lib/cli/src/commands/backup/destination/list.js +42 -0
  74. package/lib/cli/src/commands/backup/destination/show.d.ts +11 -0
  75. package/lib/cli/src/commands/backup/destination/show.js +45 -0
  76. package/lib/cli/src/commands/backup/destination/test.d.ts +8 -0
  77. package/lib/cli/src/commands/backup/destination/test.js +39 -0
  78. package/lib/cli/src/commands/backup/job/list.d.ts +9 -0
  79. package/lib/cli/src/commands/backup/job/list.js +38 -0
  80. package/lib/cli/src/commands/backup/job/run.d.ts +8 -0
  81. package/lib/cli/src/commands/backup/job/run.js +32 -0
  82. package/lib/cli/src/commands/backup/job/show.d.ts +11 -0
  83. package/lib/cli/src/commands/backup/job/show.js +38 -0
  84. package/lib/cli/src/commands/backup/policy/create.d.ts +21 -0
  85. package/lib/cli/src/commands/backup/policy/create.js +97 -0
  86. package/lib/cli/src/commands/backup/policy/delete.d.ts +11 -0
  87. package/lib/cli/src/commands/backup/policy/delete.js +42 -0
  88. package/lib/cli/src/commands/backup/policy/list.d.ts +9 -0
  89. package/lib/cli/src/commands/backup/policy/list.js +40 -0
  90. package/lib/cli/src/commands/backup/policy/show.d.ts +11 -0
  91. package/lib/cli/src/commands/backup/policy/show.js +45 -0
  92. package/lib/cli/src/commands/backup/restore/create.d.ts +14 -0
  93. package/lib/cli/src/commands/backup/restore/create.js +68 -0
  94. package/lib/cli/src/commands/backup/restore/list.d.ts +8 -0
  95. package/lib/cli/src/commands/backup/restore/list.js +33 -0
  96. package/lib/cli/src/commands/backup/restore/preview.d.ts +9 -0
  97. package/lib/cli/src/commands/backup/restore/preview.js +29 -0
  98. package/lib/cli/src/commands/backup/restore/show.d.ts +11 -0
  99. package/lib/cli/src/commands/backup/restore/show.js +40 -0
  100. package/lib/cli/src/commands/catalog/validate.d.ts +14 -0
  101. package/lib/cli/src/commands/catalog/validate.js +155 -0
  102. package/lib/cli/src/commands/cluster/destroy.d.ts +15 -0
  103. package/lib/cli/src/commands/cluster/destroy.js +137 -0
  104. package/lib/cli/src/commands/config/get.d.ts +9 -0
  105. package/lib/cli/src/commands/config/get.js +47 -0
  106. package/lib/cli/src/commands/config/list.d.ts +15 -0
  107. package/lib/cli/src/commands/config/list.js +109 -0
  108. package/lib/cli/src/commands/config/remove.d.ts +12 -0
  109. package/lib/cli/src/commands/config/remove.js +92 -0
  110. package/lib/cli/src/commands/config/set.d.ts +15 -0
  111. package/lib/cli/src/commands/config/set.js +152 -0
  112. package/lib/cli/src/commands/config/show.d.ts +6 -0
  113. package/lib/cli/src/commands/config/show.js +15 -0
  114. package/lib/cli/src/commands/context/create.d.ts +12 -0
  115. package/lib/cli/src/commands/context/create.js +46 -0
  116. package/lib/cli/src/commands/context/delete.d.ts +12 -0
  117. package/lib/cli/src/commands/context/delete.js +53 -0
  118. package/lib/cli/src/commands/context/list.d.ts +6 -0
  119. package/lib/cli/src/commands/context/list.js +29 -0
  120. package/lib/cli/src/commands/context/show.d.ts +6 -0
  121. package/lib/cli/src/commands/context/show.js +12 -0
  122. package/lib/cli/src/commands/context/use.d.ts +9 -0
  123. package/lib/cli/src/commands/context/use.js +30 -0
  124. package/lib/cli/src/commands/deploy.d.ts +49 -0
  125. package/lib/cli/src/commands/deploy.js +542 -0
  126. package/lib/cli/src/commands/dev/creds.d.ts +19 -0
  127. package/lib/cli/src/commands/dev/creds.js +290 -0
  128. package/lib/cli/src/commands/dev/tunnel.d.ts +15 -0
  129. package/lib/cli/src/commands/dev/tunnel.js +268 -0
  130. package/lib/cli/src/commands/dns/cleanup.d.ts +11 -0
  131. package/lib/cli/src/commands/dns/cleanup.js +93 -0
  132. package/lib/cli/src/commands/env/capacity.d.ts +12 -0
  133. package/lib/cli/src/commands/env/capacity.js +177 -0
  134. package/lib/cli/src/commands/env/create.d.ts +21 -0
  135. package/lib/cli/src/commands/env/create.js +721 -0
  136. package/lib/cli/src/commands/env/credentials.d.ts +21 -0
  137. package/lib/cli/src/commands/env/credentials.js +435 -0
  138. package/lib/cli/src/commands/env/destroy.d.ts +9 -0
  139. package/lib/cli/src/commands/env/destroy.js +145 -0
  140. package/lib/cli/src/commands/env/diag-ca.d.ts +14 -0
  141. package/lib/cli/src/commands/env/diag-ca.js +192 -0
  142. package/lib/cli/src/commands/env/export-config.d.ts +39 -0
  143. package/lib/cli/src/commands/env/export-config.js +386 -0
  144. package/lib/cli/src/commands/env/force-ready.d.ts +10 -0
  145. package/lib/cli/src/commands/env/force-ready.js +222 -0
  146. package/lib/cli/src/commands/env/inspect.d.ts +12 -0
  147. package/lib/cli/src/commands/env/inspect.js +192 -0
  148. package/lib/cli/src/commands/env/kubectl.d.ts +9 -0
  149. package/lib/cli/src/commands/env/kubectl.js +33 -0
  150. package/lib/cli/src/commands/env/logs.d.ts +12 -0
  151. package/lib/cli/src/commands/env/logs.js +136 -0
  152. package/lib/cli/src/commands/env/orphan-volumes.d.ts +11 -0
  153. package/lib/cli/src/commands/env/orphan-volumes.js +153 -0
  154. package/lib/cli/src/commands/env/refresh-kubeconfig.d.ts +6 -0
  155. package/lib/cli/src/commands/env/refresh-kubeconfig.js +66 -0
  156. package/lib/cli/src/commands/env/repair-ssh-ca.d.ts +11 -0
  157. package/lib/cli/src/commands/env/repair-ssh-ca.js +137 -0
  158. package/lib/cli/src/commands/env/restart.d.ts +10 -0
  159. package/lib/cli/src/commands/env/restart.js +187 -0
  160. package/lib/cli/src/commands/env/scale-master.d.ts +11 -0
  161. package/lib/cli/src/commands/env/scale-master.js +160 -0
  162. package/lib/cli/src/commands/env/scale-node.d.ts +14 -0
  163. package/lib/cli/src/commands/env/scale-node.js +139 -0
  164. package/lib/cli/src/commands/env/status.d.ts +10 -0
  165. package/lib/cli/src/commands/env/status.js +182 -0
  166. package/lib/cli/src/commands/env/stop.d.ts +6 -0
  167. package/lib/cli/src/commands/env/stop.js +147 -0
  168. package/lib/cli/src/commands/env/storage-expand.d.ts +10 -0
  169. package/lib/cli/src/commands/env/storage-expand.js +124 -0
  170. package/lib/cli/src/commands/env/storage.d.ts +8 -0
  171. package/lib/cli/src/commands/env/storage.js +92 -0
  172. package/lib/cli/src/commands/env/sync.d.ts +17 -0
  173. package/lib/cli/src/commands/env/sync.js +225 -0
  174. package/lib/cli/src/commands/env/uncordon.d.ts +9 -0
  175. package/lib/cli/src/commands/env/uncordon.js +73 -0
  176. package/lib/cli/src/commands/env/update-firewall.d.ts +9 -0
  177. package/lib/cli/src/commands/env/update-firewall.js +185 -0
  178. package/lib/cli/src/commands/integration/connect.d.ts +13 -0
  179. package/lib/cli/src/commands/integration/connect.js +161 -0
  180. package/lib/cli/src/commands/integration/ghcr-pat/revoke.d.ts +9 -0
  181. package/lib/cli/src/commands/integration/ghcr-pat/revoke.js +61 -0
  182. package/lib/cli/src/commands/integration/ghcr-pat/set.d.ts +12 -0
  183. package/lib/cli/src/commands/integration/ghcr-pat/set.js +141 -0
  184. package/lib/cli/src/commands/integration/ghcr-pat/status.d.ts +6 -0
  185. package/lib/cli/src/commands/integration/ghcr-pat/status.js +69 -0
  186. package/lib/cli/src/commands/integration/installations.d.ts +6 -0
  187. package/lib/cli/src/commands/integration/installations.js +45 -0
  188. package/lib/cli/src/commands/integration/list.d.ts +8 -0
  189. package/lib/cli/src/commands/integration/list.js +67 -0
  190. package/lib/cli/src/commands/integration/remove-installation.d.ts +12 -0
  191. package/lib/cli/src/commands/integration/remove-installation.js +71 -0
  192. package/lib/cli/src/commands/integration/setup-github-app.d.ts +10 -0
  193. package/lib/cli/src/commands/integration/setup-github-app.js +162 -0
  194. package/lib/cli/src/commands/node/add.d.ts +11 -0
  195. package/lib/cli/src/commands/node/add.js +103 -0
  196. package/lib/cli/src/commands/node/list.d.ts +11 -0
  197. package/lib/cli/src/commands/node/list.js +83 -0
  198. package/lib/cli/src/commands/node/remove.d.ts +16 -0
  199. package/lib/cli/src/commands/node/remove.js +161 -0
  200. package/lib/cli/src/commands/reconcile.d.ts +19 -0
  201. package/lib/cli/src/commands/reconcile.js +171 -0
  202. package/lib/cli/src/commands/repo/connect.d.ts +12 -0
  203. package/lib/cli/src/commands/repo/connect.js +133 -0
  204. package/lib/cli/src/commands/repo/disconnect.d.ts +12 -0
  205. package/lib/cli/src/commands/repo/disconnect.js +73 -0
  206. package/lib/cli/src/commands/repo/list.d.ts +9 -0
  207. package/lib/cli/src/commands/repo/list.js +66 -0
  208. package/lib/cli/src/commands/server-types/list.d.ts +12 -0
  209. package/lib/cli/src/commands/server-types/list.js +205 -0
  210. package/lib/cli/src/commands/ssh.d.ts +9 -0
  211. package/lib/cli/src/commands/ssh.js +94 -0
  212. package/lib/cli/src/commands/standalone/install.d.ts +27 -0
  213. package/lib/cli/src/commands/standalone/install.js +330 -0
  214. package/lib/cli/src/commands/template/use.d.ts +16 -0
  215. package/lib/cli/src/commands/template/use.js +111 -0
  216. package/lib/cli/src/commands/update.d.ts +6 -0
  217. package/lib/cli/src/commands/update.js +87 -0
  218. package/lib/cli/src/config/bootstrap.config.d.ts +37 -0
  219. package/lib/cli/src/config/bootstrap.config.js +33 -0
  220. package/lib/cli/src/config/defaults.d.ts +46 -0
  221. package/lib/cli/src/config/defaults.js +79 -0
  222. package/lib/cli/src/config/key-router.d.ts +22 -0
  223. package/lib/cli/src/config/key-router.js +45 -0
  224. package/lib/cli/src/config/preferences-echo.d.ts +9 -0
  225. package/lib/cli/src/config/preferences-echo.js +61 -0
  226. package/lib/cli/src/config/preferences-resolver.d.ts +43 -0
  227. package/lib/cli/src/config/preferences-resolver.js +100 -0
  228. package/lib/cli/src/config/preferences-schema.d.ts +32 -0
  229. package/lib/cli/src/config/preferences-schema.js +53 -0
  230. package/lib/cli/src/hooks/command_not_found.d.ts +3 -0
  231. package/lib/cli/src/hooks/command_not_found.js +44 -0
  232. package/lib/cli/src/lib/api-client.d.ts +58 -0
  233. package/lib/cli/src/lib/api-client.js +162 -0
  234. package/lib/cli/src/lib/backup-client.d.ts +131 -0
  235. package/lib/cli/src/lib/backup-client.js +78 -0
  236. package/lib/cli/src/lib/browser-callback.d.ts +3 -0
  237. package/lib/cli/src/lib/browser-callback.js +83 -0
  238. package/lib/cli/src/lib/byos-precheck.d.ts +29 -0
  239. package/lib/cli/src/lib/byos-precheck.js +162 -0
  240. package/lib/cli/src/lib/ca-utils.d.ts +13 -0
  241. package/lib/cli/src/lib/ca-utils.js +72 -0
  242. package/lib/cli/src/lib/cli-credential-provider.service.d.ts +31 -0
  243. package/lib/cli/src/lib/cli-credential-provider.service.js +86 -0
  244. package/lib/cli/src/lib/config-storage.d.ts +128 -0
  245. package/lib/cli/src/lib/config-storage.js +349 -0
  246. package/lib/cli/src/lib/config.d.ts +23 -0
  247. package/lib/cli/src/lib/config.js +113 -0
  248. package/lib/cli/src/lib/context-banner.d.ts +12 -0
  249. package/lib/cli/src/lib/context-banner.js +25 -0
  250. package/lib/cli/src/lib/format-bytes.d.ts +1 -0
  251. package/lib/cli/src/lib/format-bytes.js +18 -0
  252. package/lib/cli/src/lib/framework-detector.d.ts +12 -0
  253. package/lib/cli/src/lib/framework-detector.js +216 -0
  254. package/lib/cli/src/lib/framework-postchecks.d.ts +11 -0
  255. package/lib/cli/src/lib/framework-postchecks.js +152 -0
  256. package/lib/cli/src/lib/nest-app.d.ts +17 -0
  257. package/lib/cli/src/lib/nest-app.js +69 -0
  258. package/lib/cli/src/lib/nip-base-domain.util.d.ts +8 -0
  259. package/lib/cli/src/lib/nip-base-domain.util.js +17 -0
  260. package/lib/cli/src/lib/profile-manager.d.ts +56 -0
  261. package/lib/cli/src/lib/profile-manager.js +207 -0
  262. package/lib/cli/src/lib/prompts.d.ts +67 -0
  263. package/lib/cli/src/lib/prompts.js +475 -0
  264. package/lib/cli/src/lib/provider-credential-schemas.d.ts +29 -0
  265. package/lib/cli/src/lib/provider-credential-schemas.js +48 -0
  266. package/lib/cli/src/lib/repositories/cli-cluster.repository.d.ts +56 -0
  267. package/lib/cli/src/lib/repositories/cli-cluster.repository.js +216 -0
  268. package/lib/cli/src/lib/repositories/cli-firewall.repository.d.ts +13 -0
  269. package/lib/cli/src/lib/repositories/cli-firewall.repository.js +147 -0
  270. package/lib/cli/src/lib/repositories/cli-node.repository.d.ts +26 -0
  271. package/lib/cli/src/lib/repositories/cli-node.repository.js +164 -0
  272. package/lib/cli/src/lib/repositories/cli-operation.repository.d.ts +57 -0
  273. package/lib/cli/src/lib/repositories/cli-operation.repository.js +226 -0
  274. package/lib/cli/src/lib/repositories/cli-vnet.repository.d.ts +22 -0
  275. package/lib/cli/src/lib/repositories/cli-vnet.repository.js +175 -0
  276. package/lib/cli/src/lib/repositories/index.d.ts +5 -0
  277. package/lib/cli/src/lib/repositories/index.js +21 -0
  278. package/lib/cli/src/lib/resolve-cluster.d.ts +16 -0
  279. package/lib/cli/src/lib/resolve-cluster.js +34 -0
  280. package/lib/cli/src/lib/scaleway-validator.d.ts +5 -0
  281. package/lib/cli/src/lib/scaleway-validator.js +87 -0
  282. package/lib/cli/src/lib/server-utils.d.ts +8 -0
  283. package/lib/cli/src/lib/server-utils.js +19 -0
  284. package/lib/cli/src/lib/services/cli-app.service.d.ts +294 -0
  285. package/lib/cli/src/lib/services/cli-app.service.js +162 -0
  286. package/lib/cli/src/lib/services/cli-node.service.d.ts +43 -0
  287. package/lib/cli/src/lib/services/cli-node.service.js +34 -0
  288. package/lib/cli/src/lib/services/provider-sync.service.d.ts +90 -0
  289. package/lib/cli/src/lib/services/provider-sync.service.js +178 -0
  290. package/lib/cli/src/lib/services/reconciliation.service.d.ts +40 -0
  291. package/lib/cli/src/lib/services/reconciliation.service.js +119 -0
  292. package/lib/cli/src/lib/services/vnet-provisioning.service.d.ts +37 -0
  293. package/lib/cli/src/lib/services/vnet-provisioning.service.js +164 -0
  294. package/lib/cli/src/lib/ssh-key.d.ts +23 -0
  295. package/lib/cli/src/lib/ssh-key.js +126 -0
  296. package/lib/cli/src/lib/template-fetcher.d.ts +25 -0
  297. package/lib/cli/src/lib/template-fetcher.js +48 -0
  298. package/lib/cli/src/lib/templates/firewall-rules.d.ts +8 -0
  299. package/lib/cli/src/lib/templates/firewall-rules.js +17 -0
  300. package/lib/cli/src/lib/typeorm-shim.d.ts +12 -0
  301. package/lib/cli/src/lib/typeorm-shim.js +17 -0
  302. package/lib/cli/src/lib/utils/env-file.d.ts +2 -0
  303. package/lib/cli/src/lib/utils/env-file.js +40 -0
  304. package/lib/cli/src/lib/utils/ip-detection.d.ts +27 -0
  305. package/lib/cli/src/lib/utils/ip-detection.js +144 -0
  306. package/lib/cli/src/modules/cli-infrastructure.module.d.ts +14 -0
  307. package/lib/cli/src/modules/cli-infrastructure.module.js +249 -0
  308. package/lib/cli/src/services/cli-ca.service.d.ts +62 -0
  309. package/lib/cli/src/services/cli-ca.service.js +281 -0
  310. package/lib/cli/src/services/cli-cluster-creator.service.d.ts +78 -0
  311. package/lib/cli/src/services/cli-cluster-creator.service.js +655 -0
  312. package/lib/cli/src/services/cli-clusters.service.d.ts +74 -0
  313. package/lib/cli/src/services/cli-clusters.service.js +762 -0
  314. package/lib/cli/src/services/cli-endpoint-resolver.service.d.ts +33 -0
  315. package/lib/cli/src/services/cli-endpoint-resolver.service.js +195 -0
  316. package/lib/cli/src/services/cli-k3s-script.service.d.ts +114 -0
  317. package/lib/cli/src/services/cli-k3s-script.service.js +288 -0
  318. package/lib/cli/src/services/cli-logger.service.d.ts +56 -0
  319. package/lib/cli/src/services/cli-logger.service.js +188 -0
  320. package/lib/cli/src/services/cli-observability-cluster.service.d.ts +128 -0
  321. package/lib/cli/src/services/cli-observability-cluster.service.js +525 -0
  322. package/lib/cli/src/services/cli-ssh.service.d.ts +90 -0
  323. package/lib/cli/src/services/cli-ssh.service.js +457 -0
  324. package/lib/cli/src/services/server-type-cache.service.d.ts +34 -0
  325. package/lib/cli/src/services/server-type-cache.service.js +156 -0
  326. package/lib/cli/src/services/server-type-validator.service.d.ts +80 -0
  327. package/lib/cli/src/services/server-type-validator.service.js +366 -0
  328. package/lib/cli/src/types/index.d.ts +41 -0
  329. package/lib/cli/src/types/index.js +2 -0
  330. package/lib/src/common/utils/project-root.util.d.ts +22 -0
  331. package/lib/src/common/utils/project-root.util.js +78 -0
  332. package/lib/src/modules/access/access.controller.d.ts +30 -0
  333. package/lib/src/modules/access/access.controller.js +336 -0
  334. package/lib/src/modules/access/access.module.d.ts +2 -0
  335. package/lib/src/modules/access/access.module.js +92 -0
  336. package/lib/src/modules/access/controllers/ca.controller.d.ts +22 -0
  337. package/lib/src/modules/access/controllers/ca.controller.js +242 -0
  338. package/lib/src/modules/access/dto/api-token.dto.d.ts +11 -0
  339. package/lib/src/modules/access/dto/api-token.dto.js +74 -0
  340. package/lib/src/modules/access/dto/bearer-token.dto.d.ts +7 -0
  341. package/lib/src/modules/access/dto/bearer-token.dto.js +36 -0
  342. package/lib/src/modules/access/dto/ca-public-key.dto.d.ts +7 -0
  343. package/lib/src/modules/access/dto/ca-public-key.dto.js +52 -0
  344. package/lib/src/modules/access/dto/create-api-token.dto.d.ts +7 -0
  345. package/lib/src/modules/access/dto/create-api-token.dto.js +64 -0
  346. package/lib/src/modules/access/dto/create-bearer-token.dto.d.ts +9 -0
  347. package/lib/src/modules/access/dto/create-bearer-token.dto.js +58 -0
  348. package/lib/src/modules/access/dto/create-ssh-key.dto.d.ts +7 -0
  349. package/lib/src/modules/access/dto/create-ssh-key.dto.js +61 -0
  350. package/lib/src/modules/access/dto/refresh-token.dto.d.ts +7 -0
  351. package/lib/src/modules/access/dto/refresh-token.dto.js +46 -0
  352. package/lib/src/modules/access/dto/register-ca.dto.d.ts +16 -0
  353. package/lib/src/modules/access/dto/register-ca.dto.js +111 -0
  354. package/lib/src/modules/access/dto/ssh-key.dto.d.ts +20 -0
  355. package/lib/src/modules/access/dto/ssh-key.dto.js +124 -0
  356. package/lib/src/modules/access/dto/update-ssh-key.dto.d.ts +7 -0
  357. package/lib/src/modules/access/dto/update-ssh-key.dto.js +73 -0
  358. package/lib/src/modules/access/entities/api-token.entity.d.ts +30 -0
  359. package/lib/src/modules/access/entities/api-token.entity.js +87 -0
  360. package/lib/src/modules/access/entities/ca-keypair.entity.d.ts +13 -0
  361. package/lib/src/modules/access/entities/ca-keypair.entity.js +63 -0
  362. package/lib/src/modules/access/entities/credentials.entity.d.ts +18 -0
  363. package/lib/src/modules/access/entities/credentials.entity.js +87 -0
  364. package/lib/src/modules/access/entities/ssh-key.entity.d.ts +15 -0
  365. package/lib/src/modules/access/entities/ssh-key.entity.js +81 -0
  366. package/lib/src/modules/access/enums/credential-purpose.enum.d.ts +4 -0
  367. package/lib/src/modules/access/enums/credential-purpose.enum.js +8 -0
  368. package/lib/src/modules/access/interfaces/access.repository.d.ts +11 -0
  369. package/lib/src/modules/access/interfaces/access.repository.js +2 -0
  370. package/lib/src/modules/access/interfaces/ssh-key.interface.d.ts +26 -0
  371. package/lib/src/modules/access/interfaces/ssh-key.interface.js +2 -0
  372. package/lib/src/modules/access/mapper/api-token.mapper.d.ts +6 -0
  373. package/lib/src/modules/access/mapper/api-token.mapper.js +21 -0
  374. package/lib/src/modules/access/mapper/ssh-key.mapper.d.ts +6 -0
  375. package/lib/src/modules/access/mapper/ssh-key.mapper.js +25 -0
  376. package/lib/src/modules/access/providers/contabo-ssh-provider.service.d.ts +13 -0
  377. package/lib/src/modules/access/providers/contabo-ssh-provider.service.js +40 -0
  378. package/lib/src/modules/access/providers/hetzner-ssh-provider.service.d.ts +17 -0
  379. package/lib/src/modules/access/providers/hetzner-ssh-provider.service.js +95 -0
  380. package/lib/src/modules/access/providers/interfaces/ssh-provider.interface.d.ts +8 -0
  381. package/lib/src/modules/access/providers/interfaces/ssh-provider.interface.js +3 -0
  382. package/lib/src/modules/access/providers/ssh-provider.factory.d.ts +13 -0
  383. package/lib/src/modules/access/providers/ssh-provider.factory.js +44 -0
  384. package/lib/src/modules/access/repositories/api-token.repository.d.ts +24 -0
  385. package/lib/src/modules/access/repositories/api-token.repository.js +99 -0
  386. package/lib/src/modules/access/repositories/default-access.repository.d.ts +16 -0
  387. package/lib/src/modules/access/repositories/default-access.repository.js +121 -0
  388. package/lib/src/modules/access/repositories/provider-credentials.repository.d.ts +17 -0
  389. package/lib/src/modules/access/repositories/provider-credentials.repository.js +106 -0
  390. package/lib/src/modules/access/services/access.service.d.ts +180 -0
  391. package/lib/src/modules/access/services/access.service.js +732 -0
  392. package/lib/src/modules/access/services/bearerToken.service.d.ts +15 -0
  393. package/lib/src/modules/access/services/bearerToken.service.js +107 -0
  394. package/lib/src/modules/access/services/ca-manager.service.d.ts +48 -0
  395. package/lib/src/modules/access/services/ca-manager.service.js +293 -0
  396. package/lib/src/modules/access/services/certificate-signer.service.d.ts +36 -0
  397. package/lib/src/modules/access/services/certificate-signer.service.js +155 -0
  398. package/lib/src/modules/access/services/key-storage.service.d.ts +17 -0
  399. package/lib/src/modules/access/services/key-storage.service.js +133 -0
  400. package/lib/src/modules/access/services/ssh-key-generator.service.d.ts +6 -0
  401. package/lib/src/modules/access/services/ssh-key-generator.service.js +51 -0
  402. package/lib/src/modules/app-builds/entities/app-build.entity.d.ts +38 -0
  403. package/lib/src/modules/app-builds/entities/app-build.entity.js +168 -0
  404. package/lib/src/modules/app-builds/enums/app-build-status.enum.d.ts +10 -0
  405. package/lib/src/modules/app-builds/enums/app-build-status.enum.js +14 -0
  406. package/lib/src/modules/app-builds/enums/build-provider.enum.d.ts +6 -0
  407. package/lib/src/modules/app-builds/enums/build-provider.enum.js +10 -0
  408. package/lib/src/modules/app-builds/services/build-job.service.d.ts +178 -0
  409. package/lib/src/modules/app-builds/services/build-job.service.js +1057 -0
  410. package/lib/src/modules/applications/entities/app-resource.entity.d.ts +24 -0
  411. package/lib/src/modules/applications/entities/app-resource.entity.js +117 -0
  412. package/lib/src/modules/applications/entities/app-revision.entity.d.ts +29 -0
  413. package/lib/src/modules/applications/entities/app-revision.entity.js +133 -0
  414. package/lib/src/modules/applications/entities/application.entity.d.ts +121 -0
  415. package/lib/src/modules/applications/entities/application.entity.js +279 -0
  416. package/lib/src/modules/applications/enums/app-event-type.enum.d.ts +24 -0
  417. package/lib/src/modules/applications/enums/app-event-type.enum.js +28 -0
  418. package/lib/src/modules/applications/enums/application-category.enum.d.ts +4 -0
  419. package/lib/src/modules/applications/enums/application-category.enum.js +8 -0
  420. package/lib/src/modules/applications/enums/application-exposure.enum.d.ts +4 -0
  421. package/lib/src/modules/applications/enums/application-exposure.enum.js +8 -0
  422. package/lib/src/modules/applications/enums/application-kind.enum.d.ts +6 -0
  423. package/lib/src/modules/applications/enums/application-kind.enum.js +10 -0
  424. package/lib/src/modules/applications/enums/application-resource-kind.enum.d.ts +17 -0
  425. package/lib/src/modules/applications/enums/application-resource-kind.enum.js +21 -0
  426. package/lib/src/modules/applications/enums/application-resource-status.enum.d.ts +8 -0
  427. package/lib/src/modules/applications/enums/application-resource-status.enum.js +12 -0
  428. package/lib/src/modules/applications/enums/application-source-type.enum.d.ts +6 -0
  429. package/lib/src/modules/applications/enums/application-source-type.enum.js +10 -0
  430. package/lib/src/modules/applications/enums/application-status.enum.d.ts +20 -0
  431. package/lib/src/modules/applications/enums/application-status.enum.js +24 -0
  432. package/lib/src/modules/applications/interfaces/source-config.interface.d.ts +132 -0
  433. package/lib/src/modules/applications/interfaces/source-config.interface.js +2 -0
  434. package/lib/src/modules/auth/decorators/admin.decorator.d.ts +2 -0
  435. package/lib/src/modules/auth/decorators/admin.decorator.js +7 -0
  436. package/lib/src/modules/auth/entities/user.entity.d.ts +19 -0
  437. package/lib/src/modules/auth/entities/user.entity.js +78 -0
  438. package/lib/src/modules/auth/guards/admin.guard.d.ts +7 -0
  439. package/lib/src/modules/auth/guards/admin.guard.js +50 -0
  440. package/lib/src/modules/auth/interfaces/authenticated-user.interface.d.ts +12 -0
  441. package/lib/src/modules/auth/interfaces/authenticated-user.interface.js +2 -0
  442. package/lib/src/modules/common/cache/cache.service.d.ts +77 -0
  443. package/lib/src/modules/common/cache/cache.service.js +232 -0
  444. package/lib/src/modules/common/cache/cache.tokens.d.ts +1 -0
  445. package/lib/src/modules/common/cache/cache.tokens.js +4 -0
  446. package/lib/src/modules/common/cache/enums/cache-category.enum.d.ts +33 -0
  447. package/lib/src/modules/common/cache/enums/cache-category.enum.js +42 -0
  448. package/lib/src/modules/common/common.module.d.ts +2 -0
  449. package/lib/src/modules/common/common.module.js +20 -0
  450. package/lib/src/modules/common/dto/async-operation-response.dto.d.ts +19 -0
  451. package/lib/src/modules/common/dto/async-operation-response.dto.js +65 -0
  452. package/lib/src/modules/common/dto/index.d.ts +1 -0
  453. package/lib/src/modules/common/dto/index.js +17 -0
  454. package/lib/src/modules/common/services/label.service.d.ts +70 -0
  455. package/lib/src/modules/common/services/label.service.js +128 -0
  456. package/lib/src/modules/dns/entities/app-endpoint.entity.d.ts +57 -0
  457. package/lib/src/modules/dns/entities/app-endpoint.entity.js +205 -0
  458. package/lib/src/modules/dns/entities/cluster-dns-zone.entity.d.ts +21 -0
  459. package/lib/src/modules/dns/entities/cluster-dns-zone.entity.js +88 -0
  460. package/lib/src/modules/dns/entities/dns-zone.entity.d.ts +12 -0
  461. package/lib/src/modules/dns/entities/dns-zone.entity.js +53 -0
  462. package/lib/src/modules/dns/entities/san-certificate.entity.d.ts +29 -0
  463. package/lib/src/modules/dns/entities/san-certificate.entity.js +132 -0
  464. package/lib/src/modules/dns/entities/wildcard-certificate.entity.d.ts +26 -0
  465. package/lib/src/modules/dns/entities/wildcard-certificate.entity.js +111 -0
  466. package/lib/src/modules/dns/enums/cert-challenge.enum.d.ts +4 -0
  467. package/lib/src/modules/dns/enums/cert-challenge.enum.js +8 -0
  468. package/lib/src/modules/dns/enums/endpoint-type.enum.d.ts +4 -0
  469. package/lib/src/modules/dns/enums/endpoint-type.enum.js +8 -0
  470. package/lib/src/modules/dns/enums/hostname-mode.enum.d.ts +4 -0
  471. package/lib/src/modules/dns/enums/hostname-mode.enum.js +8 -0
  472. package/lib/src/modules/dns/services/cluster-dns-cleanup.service.d.ts +12 -0
  473. package/lib/src/modules/dns/services/cluster-dns-cleanup.service.js +79 -0
  474. package/lib/src/modules/dns/utils/nip-hostname.util.d.ts +12 -0
  475. package/lib/src/modules/dns/utils/nip-hostname.util.js +27 -0
  476. package/lib/src/modules/dns/utils/nip-token.util.d.ts +2 -0
  477. package/lib/src/modules/dns/utils/nip-token.util.js +94 -0
  478. package/lib/src/modules/frameworks/framework-core/enums/build-stage.enum.d.ts +21 -0
  479. package/lib/src/modules/frameworks/framework-core/enums/build-stage.enum.js +29 -0
  480. package/lib/src/modules/frameworks/framework-core/enums/deploy-strategy.enum.d.ts +22 -0
  481. package/lib/src/modules/frameworks/framework-core/enums/deploy-strategy.enum.js +26 -0
  482. package/lib/src/modules/frameworks/framework-core/enums/framework-type.enum.d.ts +32 -0
  483. package/lib/src/modules/frameworks/framework-core/enums/framework-type.enum.js +47 -0
  484. package/lib/src/modules/grafana/services/grafana-config.service.d.ts +43 -0
  485. package/lib/src/modules/grafana/services/grafana-config.service.js +177 -0
  486. package/lib/src/modules/grafana/services/grafana-datasource.service.d.ts +70 -0
  487. package/lib/src/modules/grafana/services/grafana-datasource.service.js +333 -0
  488. package/lib/src/modules/infrastructure/clusters/clusters.service.d.ts +126 -0
  489. package/lib/src/modules/infrastructure/clusters/clusters.service.js +265 -0
  490. package/lib/src/modules/infrastructure/clusters/constants/storage-conventions.d.ts +60 -0
  491. package/lib/src/modules/infrastructure/clusters/constants/storage-conventions.js +64 -0
  492. package/lib/src/modules/infrastructure/clusters/dto/build-resources.dto.d.ts +19 -0
  493. package/lib/src/modules/infrastructure/clusters/dto/build-resources.dto.js +69 -0
  494. package/lib/src/modules/infrastructure/clusters/dto/cluster-capacity-plan.dto.d.ts +36 -0
  495. package/lib/src/modules/infrastructure/clusters/dto/cluster-capacity-plan.dto.js +149 -0
  496. package/lib/src/modules/infrastructure/clusters/dto/cluster-power-management.dto.d.ts +51 -0
  497. package/lib/src/modules/infrastructure/clusters/dto/cluster-power-management.dto.js +222 -0
  498. package/lib/src/modules/infrastructure/clusters/dto/cluster-response.dto.d.ts +42 -0
  499. package/lib/src/modules/infrastructure/clusters/dto/cluster-response.dto.js +238 -0
  500. package/lib/src/modules/infrastructure/clusters/dto/cluster-storage.dto.d.ts +35 -0
  501. package/lib/src/modules/infrastructure/clusters/dto/cluster-storage.dto.js +122 -0
  502. package/lib/src/modules/infrastructure/clusters/dto/create-cluster.dto.d.ts +43 -0
  503. package/lib/src/modules/infrastructure/clusters/dto/create-cluster.dto.js +334 -0
  504. package/lib/src/modules/infrastructure/clusters/dto/register-cluster.dto.d.ts +30 -0
  505. package/lib/src/modules/infrastructure/clusters/dto/register-cluster.dto.js +190 -0
  506. package/lib/src/modules/infrastructure/clusters/dto/resource-availability.dto.d.ts +15 -0
  507. package/lib/src/modules/infrastructure/clusters/dto/resource-availability.dto.js +91 -0
  508. package/lib/src/modules/infrastructure/clusters/entities/cluster-node.entity.d.ts +28 -0
  509. package/lib/src/modules/infrastructure/clusters/entities/cluster-node.entity.js +104 -0
  510. package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.d.ts +64 -0
  511. package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.js +199 -0
  512. package/lib/src/modules/infrastructure/clusters/entities/node-billable-interval.entity.d.ts +17 -0
  513. package/lib/src/modules/infrastructure/clusters/entities/node-billable-interval.entity.js +86 -0
  514. package/lib/src/modules/infrastructure/clusters/entities/volume-billable-interval.entity.d.ts +18 -0
  515. package/lib/src/modules/infrastructure/clusters/entities/volume-billable-interval.entity.js +79 -0
  516. package/lib/src/modules/infrastructure/clusters/services/billing-intervals.service.d.ts +48 -0
  517. package/lib/src/modules/infrastructure/clusters/services/billing-intervals.service.js +159 -0
  518. package/lib/src/modules/infrastructure/clusters/services/cluster-capacity.service.d.ts +23 -0
  519. package/lib/src/modules/infrastructure/clusters/services/cluster-capacity.service.js +198 -0
  520. package/lib/src/modules/infrastructure/clusters/services/cluster-creation.service.d.ts +25 -0
  521. package/lib/src/modules/infrastructure/clusters/services/cluster-creation.service.js +192 -0
  522. package/lib/src/modules/infrastructure/clusters/services/cluster-deletion.service.d.ts +36 -0
  523. package/lib/src/modules/infrastructure/clusters/services/cluster-deletion.service.js +159 -0
  524. package/lib/src/modules/infrastructure/clusters/services/cluster-firewall-integration.service.d.ts +25 -0
  525. package/lib/src/modules/infrastructure/clusters/services/cluster-firewall-integration.service.js +90 -0
  526. package/lib/src/modules/infrastructure/clusters/services/cluster-mapper.service.d.ts +15 -0
  527. package/lib/src/modules/infrastructure/clusters/services/cluster-mapper.service.js +63 -0
  528. package/lib/src/modules/infrastructure/clusters/services/cluster-node-scaling.service.d.ts +78 -0
  529. package/lib/src/modules/infrastructure/clusters/services/cluster-node-scaling.service.js +644 -0
  530. package/lib/src/modules/infrastructure/clusters/services/cluster-operations.service.d.ts +37 -0
  531. package/lib/src/modules/infrastructure/clusters/services/cluster-operations.service.js +244 -0
  532. package/lib/src/modules/infrastructure/clusters/services/cluster-power-management.service.d.ts +68 -0
  533. package/lib/src/modules/infrastructure/clusters/services/cluster-power-management.service.js +716 -0
  534. package/lib/src/modules/infrastructure/clusters/services/cluster-storage.service.d.ts +15 -0
  535. package/lib/src/modules/infrastructure/clusters/services/cluster-storage.service.js +179 -0
  536. package/lib/src/modules/infrastructure/clusters/services/cluster-validation.service.d.ts +29 -0
  537. package/lib/src/modules/infrastructure/clusters/services/cluster-validation.service.js +100 -0
  538. package/lib/src/modules/infrastructure/firewalls/dto/cluster-firewall.dto.d.ts +62 -0
  539. package/lib/src/modules/infrastructure/firewalls/dto/cluster-firewall.dto.js +252 -0
  540. package/lib/src/modules/infrastructure/firewalls/entities/cluster-firewall.entity.d.ts +20 -0
  541. package/lib/src/modules/infrastructure/firewalls/entities/cluster-firewall.entity.js +83 -0
  542. package/lib/src/modules/infrastructure/firewalls/services/firewall-desired-state.service.d.ts +73 -0
  543. package/lib/src/modules/infrastructure/firewalls/services/firewall-desired-state.service.js +329 -0
  544. package/lib/src/modules/infrastructure/firewalls/services/firewall-reconciliation.service.d.ts +43 -0
  545. package/lib/src/modules/infrastructure/firewalls/services/firewall-reconciliation.service.js +212 -0
  546. package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.d.ts +54 -0
  547. package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.js +167 -0
  548. package/lib/src/modules/infrastructure/operations/helpers/operation-steps.helper.d.ts +34 -0
  549. package/lib/src/modules/infrastructure/operations/helpers/operation-steps.helper.js +401 -0
  550. package/lib/src/modules/infrastructure/servers/dto/create-server.dto.d.ts +40 -0
  551. package/lib/src/modules/infrastructure/servers/dto/create-server.dto.js +157 -0
  552. package/lib/src/modules/infrastructure/servers/dto/delete-server.dto.d.ts +17 -0
  553. package/lib/src/modules/infrastructure/servers/dto/delete-server.dto.js +85 -0
  554. package/lib/src/modules/infrastructure/servers/dto/server-response.dto.d.ts +29 -0
  555. package/lib/src/modules/infrastructure/servers/dto/server-response.dto.js +147 -0
  556. package/lib/src/modules/infrastructure/servers/entities/infrastructure-operations.entity.d.ts +266 -0
  557. package/lib/src/modules/infrastructure/servers/entities/infrastructure-operations.entity.js +348 -0
  558. package/lib/src/modules/infrastructure/shared/enums/reconciliation-status.enum.d.ts +7 -0
  559. package/lib/src/modules/infrastructure/shared/enums/reconciliation-status.enum.js +11 -0
  560. package/lib/src/modules/infrastructure/shared/services/kubernetes.service.d.ts +304 -0
  561. package/lib/src/modules/infrastructure/shared/services/kubernetes.service.js +1164 -0
  562. package/lib/src/modules/infrastructure/shared/services/label.service.d.ts +97 -0
  563. package/lib/src/modules/infrastructure/shared/services/label.service.js +189 -0
  564. package/lib/src/modules/infrastructure/shared/shared-infrastructure.module.d.ts +2 -0
  565. package/lib/src/modules/infrastructure/shared/shared-infrastructure.module.js +24 -0
  566. package/lib/src/modules/infrastructure/vnets/entities/vnet-route.entity.d.ts +10 -0
  567. package/lib/src/modules/infrastructure/vnets/entities/vnet-route.entity.js +51 -0
  568. package/lib/src/modules/infrastructure/vnets/entities/vnet-subnet.entity.d.ts +20 -0
  569. package/lib/src/modules/infrastructure/vnets/entities/vnet-subnet.entity.js +77 -0
  570. package/lib/src/modules/infrastructure/vnets/entities/vnet.entity.d.ts +28 -0
  571. package/lib/src/modules/infrastructure/vnets/entities/vnet.entity.js +88 -0
  572. package/lib/src/modules/instances/entities/instance-status.enum.d.ts +12 -0
  573. package/lib/src/modules/instances/entities/instance-status.enum.js +16 -0
  574. package/lib/src/modules/instances/entities/instance-type.enum.d.ts +6 -0
  575. package/lib/src/modules/instances/entities/instance-type.enum.js +10 -0
  576. package/lib/src/modules/instances/entities/instance.entity.d.ts +41 -0
  577. package/lib/src/modules/instances/entities/instance.entity.js +126 -0
  578. package/lib/src/modules/management/dto/configure-provider.dto.d.ts +8 -0
  579. package/lib/src/modules/management/dto/configure-provider.dto.js +51 -0
  580. package/lib/src/modules/management/dto/credentials.dto.d.ts +15 -0
  581. package/lib/src/modules/management/dto/credentials.dto.js +114 -0
  582. package/lib/src/modules/management/dto/health-status.dto.d.ts +12 -0
  583. package/lib/src/modules/management/dto/health-status.dto.js +40 -0
  584. package/lib/src/modules/management/dto/node-size-option.dto.d.ts +37 -0
  585. package/lib/src/modules/management/dto/node-size-option.dto.js +178 -0
  586. package/lib/src/modules/management/dto/pricing-query.dto.d.ts +5 -0
  587. package/lib/src/modules/management/dto/pricing-query.dto.js +36 -0
  588. package/lib/src/modules/management/dto/pricing-response.dto.d.ts +21 -0
  589. package/lib/src/modules/management/dto/pricing-response.dto.js +80 -0
  590. package/lib/src/modules/management/dto/provider-configuration.dto.d.ts +23 -0
  591. package/lib/src/modules/management/dto/provider-configuration.dto.js +72 -0
  592. package/lib/src/modules/management/dto/provider-filters.dto.d.ts +7 -0
  593. package/lib/src/modules/management/dto/provider-filters.dto.js +45 -0
  594. package/lib/src/modules/management/dto/validation-result.dto.d.ts +16 -0
  595. package/lib/src/modules/management/dto/validation-result.dto.js +35 -0
  596. package/lib/src/modules/management/entities/credentials.entity.d.ts +21 -0
  597. package/lib/src/modules/management/entities/credentials.entity.js +10 -0
  598. package/lib/src/modules/management/entities/provider-capabilities.entity.d.ts +85 -0
  599. package/lib/src/modules/management/entities/provider-capabilities.entity.js +2 -0
  600. package/lib/src/modules/management/entities/provider-configuration.entity.d.ts +14 -0
  601. package/lib/src/modules/management/entities/provider-configuration.entity.js +65 -0
  602. package/lib/src/modules/management/entities/provider-definition.entity.d.ts +19 -0
  603. package/lib/src/modules/management/entities/provider-definition.entity.js +2 -0
  604. package/lib/src/modules/management/entities/provider-region.entity.d.ts +11 -0
  605. package/lib/src/modules/management/entities/provider-region.entity.js +2 -0
  606. package/lib/src/modules/management/entities/provider-status.enum.d.ts +8 -0
  607. package/lib/src/modules/management/entities/provider-status.enum.js +12 -0
  608. package/lib/src/modules/management/interfaces/provider-configuration.repository.interface.d.ts +17 -0
  609. package/lib/src/modules/management/interfaces/provider-configuration.repository.interface.js +2 -0
  610. package/lib/src/modules/management/repositories/provider-configuration.repository.d.ts +21 -0
  611. package/lib/src/modules/management/repositories/provider-configuration.repository.js +89 -0
  612. package/lib/src/modules/management/services/configuration-mode.service.d.ts +20 -0
  613. package/lib/src/modules/management/services/configuration-mode.service.js +54 -0
  614. package/lib/src/modules/management/services/management.service.d.ts +72 -0
  615. package/lib/src/modules/management/services/management.service.js +546 -0
  616. package/lib/src/modules/management/services/provider-definitions.service.d.ts +26 -0
  617. package/lib/src/modules/management/services/provider-definitions.service.js +133 -0
  618. package/lib/src/modules/providers/controllers/provider-firewalls.controller.d.ts +28 -0
  619. package/lib/src/modules/providers/controllers/provider-firewalls.controller.js +277 -0
  620. package/lib/src/modules/providers/core/factories/capabilities-provider.factory.d.ts +10 -0
  621. package/lib/src/modules/providers/core/factories/capabilities-provider.factory.js +39 -0
  622. package/lib/src/modules/providers/core/factories/certificate-provider.factory.d.ts +11 -0
  623. package/lib/src/modules/providers/core/factories/certificate-provider.factory.js +58 -0
  624. package/lib/src/modules/providers/core/factories/dns-provider.factory.d.ts +12 -0
  625. package/lib/src/modules/providers/core/factories/dns-provider.factory.js +65 -0
  626. package/lib/src/modules/providers/core/factories/firewall-provider.factory.d.ts +12 -0
  627. package/lib/src/modules/providers/core/factories/firewall-provider.factory.js +61 -0
  628. package/lib/src/modules/providers/core/factories/provider.factory.d.ts +9 -0
  629. package/lib/src/modules/providers/core/factories/provider.factory.js +47 -0
  630. package/lib/src/modules/providers/core/factories/vm-backup-provider.factory.d.ts +12 -0
  631. package/lib/src/modules/providers/core/factories/vm-backup-provider.factory.js +56 -0
  632. package/lib/src/modules/providers/core/factories/volume-export.factory.d.ts +12 -0
  633. package/lib/src/modules/providers/core/factories/volume-export.factory.js +56 -0
  634. package/lib/src/modules/providers/core/interfaces/certificate-provider.interface.d.ts +1 -0
  635. package/lib/src/modules/providers/core/interfaces/certificate-provider.interface.js +17 -0
  636. package/lib/src/modules/providers/core/interfaces/cloud-provider.interface.d.ts +1 -0
  637. package/lib/src/modules/providers/core/interfaces/cloud-provider.interface.js +17 -0
  638. package/lib/src/modules/providers/core/interfaces/dns-provider.interface.d.ts +1 -0
  639. package/lib/src/modules/providers/core/interfaces/dns-provider.interface.js +17 -0
  640. package/lib/src/modules/providers/core/interfaces/firewall-provider.interface.d.ts +1 -0
  641. package/lib/src/modules/providers/core/interfaces/firewall-provider.interface.js +17 -0
  642. package/lib/src/modules/providers/core/interfaces/provider-bootstrap-seeder.interface.d.ts +54 -0
  643. package/lib/src/modules/providers/core/interfaces/provider-bootstrap-seeder.interface.js +2 -0
  644. package/lib/src/modules/providers/core/tokens.d.ts +59 -0
  645. package/lib/src/modules/providers/core/tokens.js +19 -0
  646. package/lib/src/modules/providers/data/region-coordinates.d.ts +6 -0
  647. package/lib/src/modules/providers/data/region-coordinates.js +25 -0
  648. package/lib/src/modules/providers/dto/firewall.dto.d.ts +30 -0
  649. package/lib/src/modules/providers/dto/firewall.dto.js +105 -0
  650. package/lib/src/modules/providers/dto/node-size.dto.d.ts +46 -0
  651. package/lib/src/modules/providers/dto/node-size.dto.js +22 -0
  652. package/lib/src/modules/providers/dto/pricing.dto.d.ts +24 -0
  653. package/lib/src/modules/providers/dto/pricing.dto.js +19 -0
  654. package/lib/src/modules/providers/dto/provider-firewall-response.dto.d.ts +28 -0
  655. package/lib/src/modules/providers/dto/provider-firewall-response.dto.js +134 -0
  656. package/lib/src/modules/providers/enums/certificate-provider.enum.d.ts +4 -0
  657. package/lib/src/modules/providers/enums/certificate-provider.enum.js +8 -0
  658. package/lib/src/modules/providers/enums/cloud-provider.enum.d.ts +5 -0
  659. package/lib/src/modules/providers/enums/cloud-provider.enum.js +9 -0
  660. package/lib/src/modules/providers/enums/dns-provider.enum.d.ts +5 -0
  661. package/lib/src/modules/providers/enums/dns-provider.enum.js +9 -0
  662. package/lib/src/modules/providers/implementations/contabo/contabo-capabilities.service.d.ts +19 -0
  663. package/lib/src/modules/providers/implementations/contabo/contabo-capabilities.service.js +254 -0
  664. package/lib/src/modules/providers/implementations/contabo/contabo-provider.module.d.ts +10 -0
  665. package/lib/src/modules/providers/implementations/contabo/contabo-provider.module.js +72 -0
  666. package/lib/src/modules/providers/implementations/contabo/generated/api.d.ts +13374 -0
  667. package/lib/src/modules/providers/implementations/contabo/generated/api.js +11341 -0
  668. package/lib/src/modules/providers/implementations/contabo/generated/base.d.ts +66 -0
  669. package/lib/src/modules/providers/implementations/contabo/generated/base.js +66 -0
  670. package/lib/src/modules/providers/implementations/contabo/generated/common.d.ts +65 -0
  671. package/lib/src/modules/providers/implementations/contabo/generated/common.js +152 -0
  672. package/lib/src/modules/providers/implementations/contabo/generated/configuration.d.ts +91 -0
  673. package/lib/src/modules/providers/implementations/contabo/generated/configuration.js +50 -0
  674. package/lib/src/modules/providers/implementations/contabo/generated/index.d.ts +13 -0
  675. package/lib/src/modules/providers/implementations/contabo/generated/index.js +31 -0
  676. package/lib/src/modules/providers/implementations/hetzner/generated/api.d.ts +18419 -0
  677. package/lib/src/modules/providers/implementations/hetzner/generated/api.js +19133 -0
  678. package/lib/src/modules/providers/implementations/hetzner/generated/base.d.ts +66 -0
  679. package/lib/src/modules/providers/implementations/hetzner/generated/base.js +66 -0
  680. package/lib/src/modules/providers/implementations/hetzner/generated/common.d.ts +65 -0
  681. package/lib/src/modules/providers/implementations/hetzner/generated/common.js +152 -0
  682. package/lib/src/modules/providers/implementations/hetzner/generated/configuration.d.ts +91 -0
  683. package/lib/src/modules/providers/implementations/hetzner/generated/configuration.js +50 -0
  684. package/lib/src/modules/providers/implementations/hetzner/generated/index.d.ts +13 -0
  685. package/lib/src/modules/providers/implementations/hetzner/generated/index.js +31 -0
  686. package/lib/src/modules/providers/implementations/hetzner/hetzner-bootstrap-seeder.service.d.ts +19 -0
  687. package/lib/src/modules/providers/implementations/hetzner/hetzner-bootstrap-seeder.service.js +68 -0
  688. package/lib/src/modules/providers/implementations/hetzner/hetzner-capabilities.service.d.ts +29 -0
  689. package/lib/src/modules/providers/implementations/hetzner/hetzner-capabilities.service.js +392 -0
  690. package/lib/src/modules/providers/implementations/hetzner/hetzner-provider.module.d.ts +2 -0
  691. package/lib/src/modules/providers/implementations/hetzner/hetzner-provider.module.js +81 -0
  692. package/lib/src/modules/providers/implementations/hetzner/hetzner-volume-operations.service.d.ts +31 -0
  693. package/lib/src/modules/providers/implementations/hetzner/hetzner-volume-operations.service.js +312 -0
  694. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.controller.d.ts +18 -0
  695. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.controller.js +67 -0
  696. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.service.d.ts +24 -0
  697. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage-connection.service.js +107 -0
  698. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.backend.d.ts +7 -0
  699. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.backend.js +35 -0
  700. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.module.d.ts +8 -0
  701. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.module.js +60 -0
  702. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.provisioner.d.ts +22 -0
  703. package/lib/src/modules/providers/implementations/hetzner/object-storage/hetzner-object-storage.provisioner.js +100 -0
  704. package/lib/src/modules/providers/implementations/hetzner/vm-backup/hetzner-vm-backup.service.d.ts +20 -0
  705. package/lib/src/modules/providers/implementations/hetzner/vm-backup/hetzner-vm-backup.service.js +118 -0
  706. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/api.d.ts +4227 -0
  707. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/api.js +3362 -0
  708. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/base.d.ts +66 -0
  709. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/base.js +66 -0
  710. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/common.d.ts +65 -0
  711. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/common.js +152 -0
  712. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/configuration.d.ts +91 -0
  713. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/configuration.js +50 -0
  714. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/index.d.ts +13 -0
  715. package/lib/src/modules/providers/implementations/scaleway/generated/baremetal/index.js +31 -0
  716. package/lib/src/modules/providers/implementations/scaleway/generated/domain/api.d.ts +2486 -0
  717. package/lib/src/modules/providers/implementations/scaleway/generated/domain/api.js +2424 -0
  718. package/lib/src/modules/providers/implementations/scaleway/generated/domain/base.d.ts +66 -0
  719. package/lib/src/modules/providers/implementations/scaleway/generated/domain/base.js +66 -0
  720. package/lib/src/modules/providers/implementations/scaleway/generated/domain/common.d.ts +65 -0
  721. package/lib/src/modules/providers/implementations/scaleway/generated/domain/common.js +152 -0
  722. package/lib/src/modules/providers/implementations/scaleway/generated/domain/configuration.d.ts +91 -0
  723. package/lib/src/modules/providers/implementations/scaleway/generated/domain/configuration.js +50 -0
  724. package/lib/src/modules/providers/implementations/scaleway/generated/domain/index.d.ts +13 -0
  725. package/lib/src/modules/providers/implementations/scaleway/generated/domain/index.js +31 -0
  726. package/lib/src/modules/providers/implementations/scaleway/generated/iam/api.d.ts +6425 -0
  727. package/lib/src/modules/providers/implementations/scaleway/generated/iam/api.js +6925 -0
  728. package/lib/src/modules/providers/implementations/scaleway/generated/iam/base.d.ts +66 -0
  729. package/lib/src/modules/providers/implementations/scaleway/generated/iam/base.js +66 -0
  730. package/lib/src/modules/providers/implementations/scaleway/generated/iam/common.d.ts +65 -0
  731. package/lib/src/modules/providers/implementations/scaleway/generated/iam/common.js +152 -0
  732. package/lib/src/modules/providers/implementations/scaleway/generated/iam/configuration.d.ts +91 -0
  733. package/lib/src/modules/providers/implementations/scaleway/generated/iam/configuration.js +50 -0
  734. package/lib/src/modules/providers/implementations/scaleway/generated/iam/index.d.ts +13 -0
  735. package/lib/src/modules/providers/implementations/scaleway/generated/iam/index.js +31 -0
  736. package/lib/src/modules/providers/implementations/scaleway/generated/instances/api.d.ts +11187 -0
  737. package/lib/src/modules/providers/implementations/scaleway/generated/instances/api.js +9264 -0
  738. package/lib/src/modules/providers/implementations/scaleway/generated/instances/base.d.ts +66 -0
  739. package/lib/src/modules/providers/implementations/scaleway/generated/instances/base.js +66 -0
  740. package/lib/src/modules/providers/implementations/scaleway/generated/instances/common.d.ts +65 -0
  741. package/lib/src/modules/providers/implementations/scaleway/generated/instances/common.js +152 -0
  742. package/lib/src/modules/providers/implementations/scaleway/generated/instances/configuration.d.ts +91 -0
  743. package/lib/src/modules/providers/implementations/scaleway/generated/instances/configuration.js +50 -0
  744. package/lib/src/modules/providers/implementations/scaleway/generated/instances/index.d.ts +13 -0
  745. package/lib/src/modules/providers/implementations/scaleway/generated/instances/index.js +31 -0
  746. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/api.d.ts +492 -0
  747. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/api.js +531 -0
  748. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/base.d.ts +66 -0
  749. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/base.js +66 -0
  750. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/common.d.ts +65 -0
  751. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/common.js +152 -0
  752. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/configuration.d.ts +91 -0
  753. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/configuration.js +50 -0
  754. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/index.d.ts +13 -0
  755. package/lib/src/modules/providers/implementations/scaleway/generated/private-network/index.js +31 -0
  756. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/api.d.ts +2305 -0
  757. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/api.js +2443 -0
  758. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/base.d.ts +66 -0
  759. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/base.js +66 -0
  760. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/common.d.ts +65 -0
  761. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/common.js +152 -0
  762. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/configuration.d.ts +91 -0
  763. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/configuration.js +50 -0
  764. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/index.d.ts +13 -0
  765. package/lib/src/modules/providers/implementations/scaleway/generated/vpc/index.js +31 -0
  766. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.backend.d.ts +8 -0
  767. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.backend.js +49 -0
  768. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.module.d.ts +9 -0
  769. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.module.js +56 -0
  770. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.provisioner.d.ts +27 -0
  771. package/lib/src/modules/providers/implementations/scaleway/object-storage/scaleway-object-storage.provisioner.js +120 -0
  772. package/lib/src/modules/providers/implementations/scaleway/scaleway-baremetal.adapter.d.ts +22 -0
  773. package/lib/src/modules/providers/implementations/scaleway/scaleway-baremetal.adapter.js +140 -0
  774. package/lib/src/modules/providers/implementations/scaleway/scaleway-bootstrap-seeder.service.d.ts +12 -0
  775. package/lib/src/modules/providers/implementations/scaleway/scaleway-bootstrap-seeder.service.js +65 -0
  776. package/lib/src/modules/providers/implementations/scaleway/scaleway-capabilities.service.d.ts +23 -0
  777. package/lib/src/modules/providers/implementations/scaleway/scaleway-capabilities.service.js +319 -0
  778. package/lib/src/modules/providers/implementations/scaleway/scaleway-dns.service.d.ts +24 -0
  779. package/lib/src/modules/providers/implementations/scaleway/scaleway-dns.service.js +189 -0
  780. package/lib/src/modules/providers/implementations/scaleway/scaleway-firewall.service.d.ts +43 -0
  781. package/lib/src/modules/providers/implementations/scaleway/scaleway-firewall.service.js +455 -0
  782. package/lib/src/modules/providers/implementations/scaleway/scaleway-iam.adapter.d.ts +32 -0
  783. package/lib/src/modules/providers/implementations/scaleway/scaleway-iam.adapter.js +108 -0
  784. package/lib/src/modules/providers/implementations/scaleway/scaleway-instances.adapter.d.ts +66 -0
  785. package/lib/src/modules/providers/implementations/scaleway/scaleway-instances.adapter.js +289 -0
  786. package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.module.d.ts +17 -0
  787. package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.module.js +122 -0
  788. package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.service.d.ts +100 -0
  789. package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.service.js +1395 -0
  790. package/lib/src/modules/providers/implementations/scaleway/scaleway-volume-operations.service.d.ts +24 -0
  791. package/lib/src/modules/providers/implementations/scaleway/scaleway-volume-operations.service.js +199 -0
  792. package/lib/src/modules/providers/implementations/scaleway/scaleway-vpc.adapter.d.ts +30 -0
  793. package/lib/src/modules/providers/implementations/scaleway/scaleway-vpc.adapter.js +180 -0
  794. package/lib/src/modules/providers/index.d.ts +17 -0
  795. package/lib/src/modules/providers/index.js +39 -0
  796. package/lib/src/modules/providers/interfaces/certificate-provider.interface.d.ts +38 -0
  797. package/lib/src/modules/providers/interfaces/certificate-provider.interface.js +11 -0
  798. package/lib/src/modules/providers/interfaces/cloud-provider.interface.d.ts +215 -0
  799. package/lib/src/modules/providers/interfaces/cloud-provider.interface.js +2 -0
  800. package/lib/src/modules/providers/interfaces/credential-provider.interface.d.ts +23 -0
  801. package/lib/src/modules/providers/interfaces/credential-provider.interface.js +2 -0
  802. package/lib/src/modules/providers/interfaces/dns-provider.interface.d.ts +55 -0
  803. package/lib/src/modules/providers/interfaces/dns-provider.interface.js +12 -0
  804. package/lib/src/modules/providers/interfaces/firewall-provider.interface.d.ts +47 -0
  805. package/lib/src/modules/providers/interfaces/firewall-provider.interface.js +2 -0
  806. package/lib/src/modules/providers/interfaces/network-provider.interface.d.ts +124 -0
  807. package/lib/src/modules/providers/interfaces/network-provider.interface.js +2 -0
  808. package/lib/src/modules/providers/interfaces/provider-capabilities.interface.d.ts +87 -0
  809. package/lib/src/modules/providers/interfaces/provider-capabilities.interface.js +2 -0
  810. package/lib/src/modules/providers/interfaces/vm-backup-provider.interface.d.ts +39 -0
  811. package/lib/src/modules/providers/interfaces/vm-backup-provider.interface.js +8 -0
  812. package/lib/src/modules/providers/interfaces/volume-export.interface.d.ts +162 -0
  813. package/lib/src/modules/providers/interfaces/volume-export.interface.js +21 -0
  814. package/lib/src/modules/providers/interfaces/volume-operations.interface.d.ts +149 -0
  815. package/lib/src/modules/providers/interfaces/volume-operations.interface.js +17 -0
  816. package/lib/src/modules/providers/mappers/node-size.mapper.d.ts +20 -0
  817. package/lib/src/modules/providers/mappers/node-size.mapper.js +75 -0
  818. package/lib/src/modules/providers/mappers/pricing.mapper.d.ts +14 -0
  819. package/lib/src/modules/providers/mappers/pricing.mapper.js +60 -0
  820. package/lib/src/modules/providers/provider-core.module.d.ts +13 -0
  821. package/lib/src/modules/providers/provider-core.module.js +59 -0
  822. package/lib/src/modules/providers/providers.module.d.ts +2 -0
  823. package/lib/src/modules/providers/providers.module.js +188 -0
  824. package/lib/src/modules/providers/services/acme-certificate.service.d.ts +38 -0
  825. package/lib/src/modules/providers/services/acme-certificate.service.js +144 -0
  826. package/lib/src/modules/providers/services/contabo-firewall.service.d.ts +11 -0
  827. package/lib/src/modules/providers/services/contabo-firewall.service.js +40 -0
  828. package/lib/src/modules/providers/services/contabo-provider.service.d.ts +48 -0
  829. package/lib/src/modules/providers/services/contabo-provider.service.js +194 -0
  830. package/lib/src/modules/providers/services/credential-provider.service.d.ts +17 -0
  831. package/lib/src/modules/providers/services/credential-provider.service.js +78 -0
  832. package/lib/src/modules/providers/services/dns-provider.factory.d.ts +5 -0
  833. package/lib/src/modules/providers/services/dns-provider.factory.js +9 -0
  834. package/lib/src/modules/providers/services/firewall-provider.factory.d.ts +5 -0
  835. package/lib/src/modules/providers/services/firewall-provider.factory.js +9 -0
  836. package/lib/src/modules/providers/services/hetzner-dns.service.d.ts +71 -0
  837. package/lib/src/modules/providers/services/hetzner-dns.service.js +565 -0
  838. package/lib/src/modules/providers/services/hetzner-firewall.service.d.ts +48 -0
  839. package/lib/src/modules/providers/services/hetzner-firewall.service.js +472 -0
  840. package/lib/src/modules/providers/services/hetzner-network.service.d.ts +84 -0
  841. package/lib/src/modules/providers/services/hetzner-network.service.js +408 -0
  842. package/lib/src/modules/providers/services/hetzner-provider.service.d.ts +213 -0
  843. package/lib/src/modules/providers/services/hetzner-provider.service.js +1159 -0
  844. package/lib/src/modules/providers/services/provider.factory.d.ts +5 -0
  845. package/lib/src/modules/providers/services/provider.factory.js +9 -0
  846. package/lib/src/modules/providers/services/volume-export.service.d.ts +50 -0
  847. package/lib/src/modules/providers/services/volume-export.service.js +650 -0
  848. package/lib/src/modules/shared/encryption/encryption.module.d.ts +2 -0
  849. package/lib/src/modules/shared/encryption/encryption.module.js +22 -0
  850. package/lib/src/modules/shared/encryption/services/encryption.service.d.ts +47 -0
  851. package/lib/src/modules/shared/encryption/services/encryption.service.js +199 -0
  852. package/lib/src/modules/storage/enums/storage-backend-provider.enum.d.ts +19 -0
  853. package/lib/src/modules/storage/enums/storage-backend-provider.enum.js +23 -0
  854. package/lib/src/modules/storage/factories/object-storage-provisioner.factory.d.ts +11 -0
  855. package/lib/src/modules/storage/factories/object-storage-provisioner.factory.js +48 -0
  856. package/lib/src/modules/storage/factories/storage-backend.factory.d.ts +12 -0
  857. package/lib/src/modules/storage/factories/storage-backend.factory.js +51 -0
  858. package/lib/src/modules/storage/implementations/generic-s3.backend.d.ts +23 -0
  859. package/lib/src/modules/storage/implementations/generic-s3.backend.js +172 -0
  860. package/lib/src/modules/storage/interfaces/backup-storage-backend.interface.d.ts +48 -0
  861. package/lib/src/modules/storage/interfaces/backup-storage-backend.interface.js +2 -0
  862. package/lib/src/modules/storage/interfaces/object-storage-provisioner.interface.d.ts +55 -0
  863. package/lib/src/modules/storage/interfaces/object-storage-provisioner.interface.js +9 -0
  864. package/lib/src/modules/storage/storage.module.d.ts +2 -0
  865. package/lib/src/modules/storage/storage.module.js +21 -0
  866. package/lib/src/modules/storage/tokens/object-storage-provisioner-registry.token.d.ts +12 -0
  867. package/lib/src/modules/storage/tokens/object-storage-provisioner-registry.token.js +8 -0
  868. package/lib/src/modules/storage/tokens/storage-backend-registry.token.d.ts +12 -0
  869. package/lib/src/modules/storage/tokens/storage-backend-registry.token.js +8 -0
  870. package/lib/src/modules/terminal/services/native-ssh-connection.service.d.ts +48 -0
  871. package/lib/src/modules/terminal/services/native-ssh-connection.service.js +282 -0
  872. package/oclif.manifest.json +5243 -0
  873. package/package.json +125 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Contabo API
3
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: support@contabo.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Configuration } from './configuration';
13
+ import type { AxiosInstance, RawAxiosRequestConfig } from 'axios';
14
+ export declare const BASE_PATH: string;
15
+ /**
16
+ *
17
+ * @export
18
+ */
19
+ export declare const COLLECTION_FORMATS: {
20
+ csv: string;
21
+ ssv: string;
22
+ tsv: string;
23
+ pipes: string;
24
+ };
25
+ /**
26
+ *
27
+ * @export
28
+ * @interface RequestArgs
29
+ */
30
+ export interface RequestArgs {
31
+ url: string;
32
+ options: RawAxiosRequestConfig;
33
+ }
34
+ /**
35
+ *
36
+ * @export
37
+ * @class BaseAPI
38
+ */
39
+ export declare class BaseAPI {
40
+ protected basePath: string;
41
+ protected axios: AxiosInstance;
42
+ protected configuration: Configuration | undefined;
43
+ constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
44
+ }
45
+ /**
46
+ *
47
+ * @export
48
+ * @class RequiredError
49
+ * @extends {Error}
50
+ */
51
+ export declare class RequiredError extends Error {
52
+ field: string;
53
+ constructor(field: string, msg?: string);
54
+ }
55
+ interface ServerMap {
56
+ [key: string]: {
57
+ url: string;
58
+ description: string;
59
+ }[];
60
+ }
61
+ /**
62
+ *
63
+ * @export
64
+ */
65
+ export declare const operationServerMap: ServerMap;
66
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Contabo API
6
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ * Contact: support@contabo.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.operationServerMap = exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
20
+ const axios_1 = __importDefault(require("axios"));
21
+ exports.BASE_PATH = 'https://api.contabo.com'.replace(/\/+$/, '');
22
+ /**
23
+ *
24
+ * @export
25
+ */
26
+ exports.COLLECTION_FORMATS = {
27
+ csv: ',',
28
+ ssv: ' ',
29
+ tsv: '\t',
30
+ pipes: '|',
31
+ };
32
+ /**
33
+ *
34
+ * @export
35
+ * @class BaseAPI
36
+ */
37
+ class BaseAPI {
38
+ constructor(configuration, basePath = exports.BASE_PATH, axios = axios_1.default) {
39
+ this.basePath = basePath;
40
+ this.axios = axios;
41
+ if (configuration) {
42
+ this.configuration = configuration;
43
+ this.basePath = configuration.basePath ?? basePath;
44
+ }
45
+ }
46
+ }
47
+ exports.BaseAPI = BaseAPI;
48
+ /**
49
+ *
50
+ * @export
51
+ * @class RequiredError
52
+ * @extends {Error}
53
+ */
54
+ class RequiredError extends Error {
55
+ constructor(field, msg) {
56
+ super(msg);
57
+ this.field = field;
58
+ this.name = 'RequiredError';
59
+ }
60
+ }
61
+ exports.RequiredError = RequiredError;
62
+ /**
63
+ *
64
+ * @export
65
+ */
66
+ exports.operationServerMap = {};
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Contabo API
3
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: support@contabo.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Configuration } from './configuration';
13
+ import type { RequestArgs } from './base';
14
+ import type { AxiosInstance, AxiosResponse } from 'axios';
15
+ /**
16
+ *
17
+ * @export
18
+ */
19
+ export declare const DUMMY_BASE_URL = "https://example.com";
20
+ /**
21
+ *
22
+ * @throws {RequiredError}
23
+ * @export
24
+ */
25
+ export declare const assertParamExists: (functionName: string, paramName: string, paramValue: unknown) => void;
26
+ /**
27
+ *
28
+ * @export
29
+ */
30
+ export declare const setApiKeyToObject: (object: any, keyParamName: string, configuration?: Configuration) => Promise<void>;
31
+ /**
32
+ *
33
+ * @export
34
+ */
35
+ export declare const setBasicAuthToObject: (object: any, configuration?: Configuration) => void;
36
+ /**
37
+ *
38
+ * @export
39
+ */
40
+ export declare const setBearerAuthToObject: (object: any, configuration?: Configuration) => Promise<void>;
41
+ /**
42
+ *
43
+ * @export
44
+ */
45
+ export declare const setOAuthToObject: (object: any, name: string, scopes: string[], configuration?: Configuration) => Promise<void>;
46
+ /**
47
+ *
48
+ * @export
49
+ */
50
+ export declare const setSearchParams: (url: URL, ...objects: any[]) => void;
51
+ /**
52
+ *
53
+ * @export
54
+ */
55
+ export declare const serializeDataIfNeeded: (value: any, requestOptions: any, configuration?: Configuration) => any;
56
+ /**
57
+ *
58
+ * @export
59
+ */
60
+ export declare const toPathString: (url: URL) => string;
61
+ /**
62
+ *
63
+ * @export
64
+ */
65
+ export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Contabo API
6
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ * Contact: support@contabo.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
17
+ const base_1 = require("./base");
18
+ /**
19
+ *
20
+ * @export
21
+ */
22
+ exports.DUMMY_BASE_URL = 'https://example.com';
23
+ /**
24
+ *
25
+ * @throws {RequiredError}
26
+ * @export
27
+ */
28
+ const assertParamExists = function (functionName, paramName, paramValue) {
29
+ if (paramValue === null || paramValue === undefined) {
30
+ throw new base_1.RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
31
+ }
32
+ };
33
+ exports.assertParamExists = assertParamExists;
34
+ /**
35
+ *
36
+ * @export
37
+ */
38
+ const setApiKeyToObject = async function (object, keyParamName, configuration) {
39
+ if (configuration && configuration.apiKey) {
40
+ const localVarApiKeyValue = typeof configuration.apiKey === 'function'
41
+ ? await configuration.apiKey(keyParamName)
42
+ : await configuration.apiKey;
43
+ object[keyParamName] = localVarApiKeyValue;
44
+ }
45
+ };
46
+ exports.setApiKeyToObject = setApiKeyToObject;
47
+ /**
48
+ *
49
+ * @export
50
+ */
51
+ const setBasicAuthToObject = function (object, configuration) {
52
+ if (configuration && (configuration.username || configuration.password)) {
53
+ object['auth'] = {
54
+ username: configuration.username,
55
+ password: configuration.password,
56
+ };
57
+ }
58
+ };
59
+ exports.setBasicAuthToObject = setBasicAuthToObject;
60
+ /**
61
+ *
62
+ * @export
63
+ */
64
+ const setBearerAuthToObject = async function (object, configuration) {
65
+ if (configuration && configuration.accessToken) {
66
+ const accessToken = typeof configuration.accessToken === 'function'
67
+ ? await configuration.accessToken()
68
+ : await configuration.accessToken;
69
+ object['Authorization'] = 'Bearer ' + accessToken;
70
+ }
71
+ };
72
+ exports.setBearerAuthToObject = setBearerAuthToObject;
73
+ /**
74
+ *
75
+ * @export
76
+ */
77
+ const setOAuthToObject = async function (object, name, scopes, configuration) {
78
+ if (configuration && configuration.accessToken) {
79
+ const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
80
+ ? await configuration.accessToken(name, scopes)
81
+ : await configuration.accessToken;
82
+ object['Authorization'] = 'Bearer ' + localVarAccessTokenValue;
83
+ }
84
+ };
85
+ exports.setOAuthToObject = setOAuthToObject;
86
+ function setFlattenedQueryParams(urlSearchParams, parameter, key = '') {
87
+ if (parameter == null)
88
+ return;
89
+ if (typeof parameter === 'object') {
90
+ if (Array.isArray(parameter)) {
91
+ parameter.forEach((item) => setFlattenedQueryParams(urlSearchParams, item, key));
92
+ }
93
+ else {
94
+ Object.keys(parameter).forEach((currentKey) => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));
95
+ }
96
+ }
97
+ else {
98
+ if (urlSearchParams.has(key)) {
99
+ urlSearchParams.append(key, parameter);
100
+ }
101
+ else {
102
+ urlSearchParams.set(key, parameter);
103
+ }
104
+ }
105
+ }
106
+ /**
107
+ *
108
+ * @export
109
+ */
110
+ const setSearchParams = function (url, ...objects) {
111
+ const searchParams = new URLSearchParams(url.search);
112
+ setFlattenedQueryParams(searchParams, objects);
113
+ url.search = searchParams.toString();
114
+ };
115
+ exports.setSearchParams = setSearchParams;
116
+ /**
117
+ *
118
+ * @export
119
+ */
120
+ const serializeDataIfNeeded = function (value, requestOptions, configuration) {
121
+ const nonString = typeof value !== 'string';
122
+ const needsSerialization = nonString && configuration && configuration.isJsonMime
123
+ ? configuration.isJsonMime(requestOptions.headers['Content-Type'])
124
+ : nonString;
125
+ return needsSerialization
126
+ ? JSON.stringify(value !== undefined ? value : {})
127
+ : value || '';
128
+ };
129
+ exports.serializeDataIfNeeded = serializeDataIfNeeded;
130
+ /**
131
+ *
132
+ * @export
133
+ */
134
+ const toPathString = function (url) {
135
+ return url.pathname + url.search + url.hash;
136
+ };
137
+ exports.toPathString = toPathString;
138
+ /**
139
+ *
140
+ * @export
141
+ */
142
+ const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
143
+ return (axios = globalAxios, basePath = BASE_PATH) => {
144
+ const axiosRequestArgs = {
145
+ ...axiosArgs.options,
146
+ url: (axios.defaults.baseURL ? '' : (configuration?.basePath ?? basePath)) +
147
+ axiosArgs.url,
148
+ };
149
+ return axios.request(axiosRequestArgs);
150
+ };
151
+ };
152
+ exports.createRequestFunction = createRequestFunction;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Contabo API
3
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: support@contabo.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export interface ConfigurationParameters {
13
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
14
+ username?: string;
15
+ password?: string;
16
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
17
+ basePath?: string;
18
+ serverIndex?: number;
19
+ baseOptions?: any;
20
+ formDataCtor?: new () => any;
21
+ }
22
+ export declare class Configuration {
23
+ /**
24
+ * parameter for apiKey security
25
+ * @param name security name
26
+ * @memberof Configuration
27
+ */
28
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
29
+ /**
30
+ * parameter for basic security
31
+ *
32
+ * @type {string}
33
+ * @memberof Configuration
34
+ */
35
+ username?: string;
36
+ /**
37
+ * parameter for basic security
38
+ *
39
+ * @type {string}
40
+ * @memberof Configuration
41
+ */
42
+ password?: string;
43
+ /**
44
+ * parameter for oauth2 security
45
+ * @param name security name
46
+ * @param scopes oauth2 scope
47
+ * @memberof Configuration
48
+ */
49
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
50
+ /**
51
+ * override base path
52
+ *
53
+ * @type {string}
54
+ * @memberof Configuration
55
+ */
56
+ basePath?: string;
57
+ /**
58
+ * override server index
59
+ *
60
+ * @type {number}
61
+ * @memberof Configuration
62
+ */
63
+ serverIndex?: number;
64
+ /**
65
+ * base options for axios calls
66
+ *
67
+ * @type {any}
68
+ * @memberof Configuration
69
+ */
70
+ baseOptions?: any;
71
+ /**
72
+ * The FormData constructor that will be used to create multipart form data
73
+ * requests. You can inject this here so that execution environments that
74
+ * do not support the FormData class can still run the generated client.
75
+ *
76
+ * @type {new () => FormData}
77
+ */
78
+ formDataCtor?: new () => any;
79
+ constructor(param?: ConfigurationParameters);
80
+ /**
81
+ * Check if the given MIME is a JSON MIME.
82
+ * JSON MIME examples:
83
+ * application/json
84
+ * application/json; charset=UTF8
85
+ * APPLICATION/JSON
86
+ * application/vnd.company+json
87
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
88
+ * @return True if the given MIME is JSON, false otherwise.
89
+ */
90
+ isJsonMime(mime: string): boolean;
91
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Contabo API
6
+ * # Introduction Contabo API allows you to manage your resources using HTTP requests. This documentation includes a set of HTTP endpoints that are designed to RESTful principles. Each endpoint includes descriptions, request syntax, and examples. Contabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and Installation instructions.](https://github.com/contabo/cntb) ## Product documentation If you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/). ## Getting Started In order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details): 1. ClientId 2. ClientSecret 3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details)) 4. API Password (this is a new password which you\'ll set or change in the [Customer Control Panel](https://my.contabo.com/api/details)) You can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool. ### Using the API directly #### Via `curl` for Linux/Unix like systems This requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values. ```sh CLIENT_ID=<ClientId from Customer Control Panel> CLIENT_SECRET=<ClientSecret from Customer Control Panel> API_USER=<API User from Customer Control Panel> API_PASSWORD=\'<API Password from Customer Control Panel>\' ACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d \'grant_type=password\' \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' | jq -r \'.access_token\') # get list of your instances curl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq ``` #### Via `PowerShell` for Windows Please open `PowerShell` and execute the following code after replacing the first four placeholders with actual values. ```powershell $client_id=\'<ClientId from Customer Control Panel>\' $client_secret=\'<ClientSecret from Customer Control Panel>\' $api_user=\'<API User from Customer Control Panel>\' $api_password=\'<API Password from Customer Control Panel>\' $body = @{grant_type=\'password\' client_id=$client_id client_secret=$client_secret username=$api_user password=$api_password} $response = Invoke-WebRequest -Uri \'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token\' -Method \'POST\' -Body $body $access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token # get list of your instances $headers = @{} $headers.Add(\"Authorization\",\"Bearer $access_token\") $headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\") Invoke-WebRequest -Uri \'https://api.contabo.com/v1/compute/instances\' -Method \'GET\' -Headers $headers ``` ### Using the Contabo API via the `cntb` CLI tool 1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb) 2. Unzip the downloaded file 3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation. 4. Configure it once to use your credentials ```sh cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password=\'<API Password from Customer Control Panel>\' ``` 5. Use the CLI ```sh # get list of your instances cntb get instances # help cntb help ``` ## API Overview ### [Compute Management](#tag/Instances) The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you\'ll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field. Custom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment. ### [Object Storage](#tag/Object-Storages) The Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit. Please note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar. ### [Private Networking](#tag/Private-Networks) The Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won\'t leave the data center and cannot be accessed by any other instance. With this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it\'s own secured VLAN. Adding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available. Please note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API. ### [Secrets Management](#tag/Secrets) You can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages. By using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access your machine without sending the passwords via potentially unsecure emails. ### [User Management](#tag/Users) If you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types: * `apiPermission` This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually. * `resourcePermission` In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources. The `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role\'s type. Of course you could also assign a user `admin` privileges without specifying any roles. ### [Tag Management](#tag/Tags) The Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags. ## Requests The Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation. Method | Description --- | --- GET | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources. POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. PATCH | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation. PUT | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values. DELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message. ## Responses Usually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools. As common for HTTP requests you will get back a so called HTTP status code. This gives you overall information about success or error. The following table lists common HTTP status codes. Please note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with their resp. response data are explicitly listed. Response Code | Description --- | --- 200 | The response contains your requested information. 201 | Your request was accepted. The resource was created. 204 | Your request succeeded, there is no additional information returned. 400 | Your request was malformed. 401 | You did not supply valid authentication credentials. 402 | Request refused as it requires additional payed service. 403 | You are not allowed to perform the request. 404 | No results were found for your request or resource does not exist. 409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources. 429 | Rate-limit reached. Please wait for some time before doing more requests. 500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support. Not every endpoint returns data. For example DELETE requests usually don\'t return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element. Some general details about Contabo API from [Contabo](https://contabo.com).
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ * Contact: support@contabo.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.Configuration = void 0;
17
+ class Configuration {
18
+ constructor(param = {}) {
19
+ this.apiKey = param.apiKey;
20
+ this.username = param.username;
21
+ this.password = param.password;
22
+ this.accessToken = param.accessToken;
23
+ this.basePath = param.basePath;
24
+ this.serverIndex = param.serverIndex;
25
+ this.baseOptions = {
26
+ ...param.baseOptions,
27
+ headers: {
28
+ ...param.baseOptions?.headers,
29
+ },
30
+ };
31
+ this.formDataCtor = param.formDataCtor;
32
+ }
33
+ /**
34
+ * Check if the given MIME is a JSON MIME.
35
+ * JSON MIME examples:
36
+ * application/json
37
+ * application/json; charset=UTF8
38
+ * APPLICATION/JSON
39
+ * application/vnd.company+json
40
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
41
+ * @return True if the given MIME is JSON, false otherwise.
42
+ */
43
+ isJsonMime(mime) {
44
+ const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
45
+ return (mime !== null &&
46
+ (jsonMime.test(mime) ||
47
+ mime.toLowerCase() === 'application/json-patch+json'));
48
+ }
49
+ }
50
+ exports.Configuration = Configuration;