@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
+ * Domains and DNS API
3
+ * The Domains and DNS API documentation allows you to configure and manage your domains\' DNS zones and records. You can also use dynamic records to optimize and easily use your infrastructure as code. Read our [reference content documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/reference-content/) for more information about domains. Refer to the [Domains and DNS Registrar API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/) to find out how to buy,transfer and manage your domains and contacts (DNSSEC included). (switchcolumn) (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/network/domains-and-dns/concepts/) to find definitions of the different terms referring to Scaleway Domains and DNS. (switchcolumn) (switchcolumn) ## Quickstart 1. **Configure your environment variables.** <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the API. </Message> ```bash export SCW_ACCESS_KEY=\"<API access key>\" export SCW_SECRET_KEY=\"<API secret key>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\" ``` 2. **Register an external domain.** Run the following command to register your domain: ```bash curl https://api.scaleway.com/domain/v2beta1/external-domains \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"domain\": \"my-external-domain.test\", \"project_id\": \"<Scaleway Project ID>\" }\' ``` 3. **Set up a TXT record.** <Message type=\"important\"> After you register your external domain, you must set up a TXT record **within 48 hours**. This step is optional if you have an internal domain. </Message> Set up your TXT record as explained in **step 4** of our [documentation on how to add an external domain](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/add-external-domain/) to confirm you are the owner of the domain registered. <Message type=\"note\"> You will receive a confirmation email once your domain is validated. Your domain will then be available on the API. </Message> 4. **Update your DNS name servers.** [Update your DNS name servers](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-nameservers-internal-domain) to Scaleway\'s DNS name servers: `ns0.dom.scw.cloud` and `ns1.dom.scw.cloud`. - For your domain: update the name servers at your registrar to point your domain to Scaleway\'s DNS servers - For your subdomain: update the name servers at your parent DNS server to point your subdomain to Scaleway\'s DNS servers 5. **Set up your domain\'s DNSSEC.** You need to set up your domain\'s DNSSEC on the registry by your registrar and on the DNS server with the same information. To set up the DNSSEC: * use the [Registrar API](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/#path-domains-update-domain-dnssec) `EnableDomainDNSSEC` to generate the setup on the DNS servers * if your domain is not registered on Scaleway but on another registrar, use the DS or public key information to configure the DNSSEC on your registrar <Message type=\"tip\"> You can remove your DNSSEC settings on your registrar before you migrate to our service. You will be able to set it up again afterwards. </Message> 6. **List your domains.** Run the following command to retrieve the list of your domains: ```bash curl https://api.scaleway.com/domain/v2beta1/domains \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` The following output displays: ```bash { \"total_count\": 1, \"domains\": [ { \"domain\": \"domain-external.test\", \"organization_id\": \"<Scaleway Organization ID>\", \"project_id\": \"<Scaleway Project ID>\", \"auto_renew_status\": \"disabled\", \"dnssec_status\": \"disabled\", \"epp_code\": [], \"expired_at\": null, \"updated_at\": \"1970-01-01T00:00:00Z\", \"registrar\": \"EXTERNAL\", \"is_external\": true, \"status\": \"active\" } ] } ``` 7. **List the zones you can manage.** Run the following command to list the DNS zones you can manage: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/ \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` An output similar to the following displays: ```bash { \"total_count\": 3, \"dns_zones\": [ { \"domain\": \"domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"domain-external.test\", \"subdomain\": \"test-zone\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"other-domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" } ] } ``` 8. **Update a zone\'s record(s).** <Message type=\"important\"> - The `clear` command clears all your records. You will have to setup your records again - If the zone you want to update does not exist but is included in a managed zone, the API will create the new (sub) zone </Message> Run the following command to update a zone\'s record: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/subdomain.domain-external.test/records \\ -X PATCH \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"changes\": [ { \"clear\": {} }, { \"add\": { \"records\": [ { \"name\": \"test1\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test2\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"set\": { \"id_fields\": { \"type\": \"A\", \"name\": \"test2\" }, \"records\": [ { \"name\": \"test2\", \"data\": \"127.0.0.2\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"add\": { \"records\": [ { \"name\": \"test3\", \"data\": \"127.0.0.3\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"delete\": { \"id_fields\": { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } } } ] }\' ``` An output similar to the following displays: ```bash { \"records\": [ { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test1\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.2\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.3\", \"name\": \"test3\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" } ] } ``` 9. **Enable DNSSEC for external domains.** - Run the following command if you have not set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{}\' ``` An output similar to the following displays: ```json { \"domain\":{ \"domain\":\"example.fr\", \"auto_renew_status\":\"enabled\", \"dnssec_status\":\"disabled\", \"ds_records\":[ { \"key_id\":49071, \"algorithm\":\"ecdsap256sha256\", \"digest\":{ \"type\":\"sha_384\", \"digest\":\"c14421f739e35b62e3383d5972263f93610dea31da48a1990453752cf1b4f4f0314f75ecd0bc9061c51ee41ec7692204\" } } ], \"epp\":[ \"clientTransferProhibited\" ], \"expired_at\":\"2021-04-04T12:46:29Z\", \"updated_at\":\"2020-07-07T13:24:27Z\", \"registrar\":\"EXTERNAL\", \"is_external\":true, \"status\":\"active\", \"......\" } ``` <Message type=\"important\"> Set up the information returned under `ds_records` in the output, in your registrar to configure DNSSEC for your external domain. </Message> - Run the following command if you have already set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"ds_record\": { \"algorithm\": \"rsamd5\", \"digest\": { \"type\": \"sha_1\", \"digest\": \"ABCD\" } } }\' ``` 10. **Enable DNSSEC for internal domains.** Find out how to enable DNSSEC for your internal domains in our [dedicated documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/configure-dnssec-internal-domain/). (switchcolumn) <Message type=\"requirement\"> - You have a [Scaleway account](https://console.scaleway.com/) - You have [created an API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page - You have your [Organization ID](https://console.scaleway.com/organization/settings) - You have [installed `curl`](https://curl.se/download.html) </Message> (switchcolumn) ## Technical information ### Regional availability Scaleway Domains and DNS is currently available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/account/reference-content/products-availability). ### Format - The format of record names is always in \"short\" format (i.e.\"test\" instead of the FQDN \"test.mydomain.com\") - If a data value is not in RFC format, quotes will be added for `TXT`records. If `CNAME`records are not in FQDDN, the zone will be added ## Technical limitations - Only the owner of a domain can use and configure it with Domains and DNS - Each zone supports the creation of sub-zones, which inherit the parent\'s Project ID - We provide the following record types: `A`, `AAAA`, `CNAME`, `CAA`, `DNAME`, `HTTPS`, `MX`, `NAPTR`, `NS`, `SRV`, `SVCB`, `TLSA` and `TXT` - We support the following dynamic records: `http(s)` `health check` and `views` ## Going further For more information about Domains and DNS, you can check out the following pages: - [Domains and DNS Documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) - [Scaleway Slack Community](http://slack.scaleway.com) join the #domains channel - [Contact our support team](https://console.scaleway.com/support/tickets) ### Test if the service is up Run the following command to test if an `http` or `https` service is up on a provided list of IPs: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"add\": { \"records\": [ { \"name\": \"service-www\", \"data\": \"10.51.2.8\", \"type\": \"A\", \"ttl\": 600, \"http_service_config\": { \"ips\": [ \"10.51.2.8\", \"10.51.3.7\", \"10.51.2.9\" ], \"must_contain\": \"I am fine\", \"url\": \"https://www.domain-test.test\" } } ] } } ] }\' ``` <Message type=\"note\"> An IP is considered healthy if the query response contains the text specified in `must_contain`. The record type can be one of `A` and `AAAA`. </Message> ### View Run the following command to view responses depending on the requester\'s or resolver\'s IP: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"set\": { \"id_fields\": { \"name\": \"test\", \"type\": \"CNAME\" }, \"records\": [ { \"name\": \"test\", \"data\": \"default-domain.com.\", \"type\": \"CNAME\", \"ttl\": 600, \"view_config\": { \"views\": [ { \"subnet\": \"10.51.0.0/16\", \"data\": \"filtered-domain.com.\" } ] } } ] } } ] }\' ``` <Message type=\"note\"> Record types include `A`, `AAAA`, `CNAME` and `TXT`. </Message>
4
+ *
5
+ * The version of the OpenAPI document: v2beta1
6
+ *
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
+ * Domains and DNS API
6
+ * The Domains and DNS API documentation allows you to configure and manage your domains\' DNS zones and records. You can also use dynamic records to optimize and easily use your infrastructure as code. Read our [reference content documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/reference-content/) for more information about domains. Refer to the [Domains and DNS Registrar API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/) to find out how to buy,transfer and manage your domains and contacts (DNSSEC included). (switchcolumn) (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/network/domains-and-dns/concepts/) to find definitions of the different terms referring to Scaleway Domains and DNS. (switchcolumn) (switchcolumn) ## Quickstart 1. **Configure your environment variables.** <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the API. </Message> ```bash export SCW_ACCESS_KEY=\"<API access key>\" export SCW_SECRET_KEY=\"<API secret key>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\" ``` 2. **Register an external domain.** Run the following command to register your domain: ```bash curl https://api.scaleway.com/domain/v2beta1/external-domains \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"domain\": \"my-external-domain.test\", \"project_id\": \"<Scaleway Project ID>\" }\' ``` 3. **Set up a TXT record.** <Message type=\"important\"> After you register your external domain, you must set up a TXT record **within 48 hours**. This step is optional if you have an internal domain. </Message> Set up your TXT record as explained in **step 4** of our [documentation on how to add an external domain](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/add-external-domain/) to confirm you are the owner of the domain registered. <Message type=\"note\"> You will receive a confirmation email once your domain is validated. Your domain will then be available on the API. </Message> 4. **Update your DNS name servers.** [Update your DNS name servers](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-nameservers-internal-domain) to Scaleway\'s DNS name servers: `ns0.dom.scw.cloud` and `ns1.dom.scw.cloud`. - For your domain: update the name servers at your registrar to point your domain to Scaleway\'s DNS servers - For your subdomain: update the name servers at your parent DNS server to point your subdomain to Scaleway\'s DNS servers 5. **Set up your domain\'s DNSSEC.** You need to set up your domain\'s DNSSEC on the registry by your registrar and on the DNS server with the same information. To set up the DNSSEC: * use the [Registrar API](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/#path-domains-update-domain-dnssec) `EnableDomainDNSSEC` to generate the setup on the DNS servers * if your domain is not registered on Scaleway but on another registrar, use the DS or public key information to configure the DNSSEC on your registrar <Message type=\"tip\"> You can remove your DNSSEC settings on your registrar before you migrate to our service. You will be able to set it up again afterwards. </Message> 6. **List your domains.** Run the following command to retrieve the list of your domains: ```bash curl https://api.scaleway.com/domain/v2beta1/domains \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` The following output displays: ```bash { \"total_count\": 1, \"domains\": [ { \"domain\": \"domain-external.test\", \"organization_id\": \"<Scaleway Organization ID>\", \"project_id\": \"<Scaleway Project ID>\", \"auto_renew_status\": \"disabled\", \"dnssec_status\": \"disabled\", \"epp_code\": [], \"expired_at\": null, \"updated_at\": \"1970-01-01T00:00:00Z\", \"registrar\": \"EXTERNAL\", \"is_external\": true, \"status\": \"active\" } ] } ``` 7. **List the zones you can manage.** Run the following command to list the DNS zones you can manage: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/ \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` An output similar to the following displays: ```bash { \"total_count\": 3, \"dns_zones\": [ { \"domain\": \"domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"domain-external.test\", \"subdomain\": \"test-zone\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"other-domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" } ] } ``` 8. **Update a zone\'s record(s).** <Message type=\"important\"> - The `clear` command clears all your records. You will have to setup your records again - If the zone you want to update does not exist but is included in a managed zone, the API will create the new (sub) zone </Message> Run the following command to update a zone\'s record: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/subdomain.domain-external.test/records \\ -X PATCH \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"changes\": [ { \"clear\": {} }, { \"add\": { \"records\": [ { \"name\": \"test1\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test2\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"set\": { \"id_fields\": { \"type\": \"A\", \"name\": \"test2\" }, \"records\": [ { \"name\": \"test2\", \"data\": \"127.0.0.2\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"add\": { \"records\": [ { \"name\": \"test3\", \"data\": \"127.0.0.3\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"delete\": { \"id_fields\": { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } } } ] }\' ``` An output similar to the following displays: ```bash { \"records\": [ { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test1\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.2\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.3\", \"name\": \"test3\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" } ] } ``` 9. **Enable DNSSEC for external domains.** - Run the following command if you have not set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{}\' ``` An output similar to the following displays: ```json { \"domain\":{ \"domain\":\"example.fr\", \"auto_renew_status\":\"enabled\", \"dnssec_status\":\"disabled\", \"ds_records\":[ { \"key_id\":49071, \"algorithm\":\"ecdsap256sha256\", \"digest\":{ \"type\":\"sha_384\", \"digest\":\"c14421f739e35b62e3383d5972263f93610dea31da48a1990453752cf1b4f4f0314f75ecd0bc9061c51ee41ec7692204\" } } ], \"epp\":[ \"clientTransferProhibited\" ], \"expired_at\":\"2021-04-04T12:46:29Z\", \"updated_at\":\"2020-07-07T13:24:27Z\", \"registrar\":\"EXTERNAL\", \"is_external\":true, \"status\":\"active\", \"......\" } ``` <Message type=\"important\"> Set up the information returned under `ds_records` in the output, in your registrar to configure DNSSEC for your external domain. </Message> - Run the following command if you have already set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"ds_record\": { \"algorithm\": \"rsamd5\", \"digest\": { \"type\": \"sha_1\", \"digest\": \"ABCD\" } } }\' ``` 10. **Enable DNSSEC for internal domains.** Find out how to enable DNSSEC for your internal domains in our [dedicated documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/configure-dnssec-internal-domain/). (switchcolumn) <Message type=\"requirement\"> - You have a [Scaleway account](https://console.scaleway.com/) - You have [created an API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page - You have your [Organization ID](https://console.scaleway.com/organization/settings) - You have [installed `curl`](https://curl.se/download.html) </Message> (switchcolumn) ## Technical information ### Regional availability Scaleway Domains and DNS is currently available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/account/reference-content/products-availability). ### Format - The format of record names is always in \"short\" format (i.e.\"test\" instead of the FQDN \"test.mydomain.com\") - If a data value is not in RFC format, quotes will be added for `TXT`records. If `CNAME`records are not in FQDDN, the zone will be added ## Technical limitations - Only the owner of a domain can use and configure it with Domains and DNS - Each zone supports the creation of sub-zones, which inherit the parent\'s Project ID - We provide the following record types: `A`, `AAAA`, `CNAME`, `CAA`, `DNAME`, `HTTPS`, `MX`, `NAPTR`, `NS`, `SRV`, `SVCB`, `TLSA` and `TXT` - We support the following dynamic records: `http(s)` `health check` and `views` ## Going further For more information about Domains and DNS, you can check out the following pages: - [Domains and DNS Documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) - [Scaleway Slack Community](http://slack.scaleway.com) join the #domains channel - [Contact our support team](https://console.scaleway.com/support/tickets) ### Test if the service is up Run the following command to test if an `http` or `https` service is up on a provided list of IPs: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"add\": { \"records\": [ { \"name\": \"service-www\", \"data\": \"10.51.2.8\", \"type\": \"A\", \"ttl\": 600, \"http_service_config\": { \"ips\": [ \"10.51.2.8\", \"10.51.3.7\", \"10.51.2.9\" ], \"must_contain\": \"I am fine\", \"url\": \"https://www.domain-test.test\" } } ] } } ] }\' ``` <Message type=\"note\"> An IP is considered healthy if the query response contains the text specified in `must_contain`. The record type can be one of `A` and `AAAA`. </Message> ### View Run the following command to view responses depending on the requester\'s or resolver\'s IP: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"set\": { \"id_fields\": { \"name\": \"test\", \"type\": \"CNAME\" }, \"records\": [ { \"name\": \"test\", \"data\": \"default-domain.com.\", \"type\": \"CNAME\", \"ttl\": 600, \"view_config\": { \"views\": [ { \"subnet\": \"10.51.0.0/16\", \"data\": \"filtered-domain.com.\" } ] } } ] } } ] }\' ``` <Message type=\"note\"> Record types include `A`, `AAAA`, `CNAME` and `TXT`. </Message>
7
+ *
8
+ * The version of the OpenAPI document: v2beta1
9
+ *
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.scaleway.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
+ * Domains and DNS API
3
+ * The Domains and DNS API documentation allows you to configure and manage your domains\' DNS zones and records. You can also use dynamic records to optimize and easily use your infrastructure as code. Read our [reference content documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/reference-content/) for more information about domains. Refer to the [Domains and DNS Registrar API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/) to find out how to buy,transfer and manage your domains and contacts (DNSSEC included). (switchcolumn) (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/network/domains-and-dns/concepts/) to find definitions of the different terms referring to Scaleway Domains and DNS. (switchcolumn) (switchcolumn) ## Quickstart 1. **Configure your environment variables.** <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the API. </Message> ```bash export SCW_ACCESS_KEY=\"<API access key>\" export SCW_SECRET_KEY=\"<API secret key>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\" ``` 2. **Register an external domain.** Run the following command to register your domain: ```bash curl https://api.scaleway.com/domain/v2beta1/external-domains \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"domain\": \"my-external-domain.test\", \"project_id\": \"<Scaleway Project ID>\" }\' ``` 3. **Set up a TXT record.** <Message type=\"important\"> After you register your external domain, you must set up a TXT record **within 48 hours**. This step is optional if you have an internal domain. </Message> Set up your TXT record as explained in **step 4** of our [documentation on how to add an external domain](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/add-external-domain/) to confirm you are the owner of the domain registered. <Message type=\"note\"> You will receive a confirmation email once your domain is validated. Your domain will then be available on the API. </Message> 4. **Update your DNS name servers.** [Update your DNS name servers](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-nameservers-internal-domain) to Scaleway\'s DNS name servers: `ns0.dom.scw.cloud` and `ns1.dom.scw.cloud`. - For your domain: update the name servers at your registrar to point your domain to Scaleway\'s DNS servers - For your subdomain: update the name servers at your parent DNS server to point your subdomain to Scaleway\'s DNS servers 5. **Set up your domain\'s DNSSEC.** You need to set up your domain\'s DNSSEC on the registry by your registrar and on the DNS server with the same information. To set up the DNSSEC: * use the [Registrar API](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/#path-domains-update-domain-dnssec) `EnableDomainDNSSEC` to generate the setup on the DNS servers * if your domain is not registered on Scaleway but on another registrar, use the DS or public key information to configure the DNSSEC on your registrar <Message type=\"tip\"> You can remove your DNSSEC settings on your registrar before you migrate to our service. You will be able to set it up again afterwards. </Message> 6. **List your domains.** Run the following command to retrieve the list of your domains: ```bash curl https://api.scaleway.com/domain/v2beta1/domains \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` The following output displays: ```bash { \"total_count\": 1, \"domains\": [ { \"domain\": \"domain-external.test\", \"organization_id\": \"<Scaleway Organization ID>\", \"project_id\": \"<Scaleway Project ID>\", \"auto_renew_status\": \"disabled\", \"dnssec_status\": \"disabled\", \"epp_code\": [], \"expired_at\": null, \"updated_at\": \"1970-01-01T00:00:00Z\", \"registrar\": \"EXTERNAL\", \"is_external\": true, \"status\": \"active\" } ] } ``` 7. **List the zones you can manage.** Run the following command to list the DNS zones you can manage: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/ \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` An output similar to the following displays: ```bash { \"total_count\": 3, \"dns_zones\": [ { \"domain\": \"domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"domain-external.test\", \"subdomain\": \"test-zone\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"other-domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" } ] } ``` 8. **Update a zone\'s record(s).** <Message type=\"important\"> - The `clear` command clears all your records. You will have to setup your records again - If the zone you want to update does not exist but is included in a managed zone, the API will create the new (sub) zone </Message> Run the following command to update a zone\'s record: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/subdomain.domain-external.test/records \\ -X PATCH \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"changes\": [ { \"clear\": {} }, { \"add\": { \"records\": [ { \"name\": \"test1\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test2\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"set\": { \"id_fields\": { \"type\": \"A\", \"name\": \"test2\" }, \"records\": [ { \"name\": \"test2\", \"data\": \"127.0.0.2\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"add\": { \"records\": [ { \"name\": \"test3\", \"data\": \"127.0.0.3\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"delete\": { \"id_fields\": { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } } } ] }\' ``` An output similar to the following displays: ```bash { \"records\": [ { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test1\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.2\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.3\", \"name\": \"test3\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" } ] } ``` 9. **Enable DNSSEC for external domains.** - Run the following command if you have not set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{}\' ``` An output similar to the following displays: ```json { \"domain\":{ \"domain\":\"example.fr\", \"auto_renew_status\":\"enabled\", \"dnssec_status\":\"disabled\", \"ds_records\":[ { \"key_id\":49071, \"algorithm\":\"ecdsap256sha256\", \"digest\":{ \"type\":\"sha_384\", \"digest\":\"c14421f739e35b62e3383d5972263f93610dea31da48a1990453752cf1b4f4f0314f75ecd0bc9061c51ee41ec7692204\" } } ], \"epp\":[ \"clientTransferProhibited\" ], \"expired_at\":\"2021-04-04T12:46:29Z\", \"updated_at\":\"2020-07-07T13:24:27Z\", \"registrar\":\"EXTERNAL\", \"is_external\":true, \"status\":\"active\", \"......\" } ``` <Message type=\"important\"> Set up the information returned under `ds_records` in the output, in your registrar to configure DNSSEC for your external domain. </Message> - Run the following command if you have already set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"ds_record\": { \"algorithm\": \"rsamd5\", \"digest\": { \"type\": \"sha_1\", \"digest\": \"ABCD\" } } }\' ``` 10. **Enable DNSSEC for internal domains.** Find out how to enable DNSSEC for your internal domains in our [dedicated documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/configure-dnssec-internal-domain/). (switchcolumn) <Message type=\"requirement\"> - You have a [Scaleway account](https://console.scaleway.com/) - You have [created an API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page - You have your [Organization ID](https://console.scaleway.com/organization/settings) - You have [installed `curl`](https://curl.se/download.html) </Message> (switchcolumn) ## Technical information ### Regional availability Scaleway Domains and DNS is currently available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/account/reference-content/products-availability). ### Format - The format of record names is always in \"short\" format (i.e.\"test\" instead of the FQDN \"test.mydomain.com\") - If a data value is not in RFC format, quotes will be added for `TXT`records. If `CNAME`records are not in FQDDN, the zone will be added ## Technical limitations - Only the owner of a domain can use and configure it with Domains and DNS - Each zone supports the creation of sub-zones, which inherit the parent\'s Project ID - We provide the following record types: `A`, `AAAA`, `CNAME`, `CAA`, `DNAME`, `HTTPS`, `MX`, `NAPTR`, `NS`, `SRV`, `SVCB`, `TLSA` and `TXT` - We support the following dynamic records: `http(s)` `health check` and `views` ## Going further For more information about Domains and DNS, you can check out the following pages: - [Domains and DNS Documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) - [Scaleway Slack Community](http://slack.scaleway.com) join the #domains channel - [Contact our support team](https://console.scaleway.com/support/tickets) ### Test if the service is up Run the following command to test if an `http` or `https` service is up on a provided list of IPs: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"add\": { \"records\": [ { \"name\": \"service-www\", \"data\": \"10.51.2.8\", \"type\": \"A\", \"ttl\": 600, \"http_service_config\": { \"ips\": [ \"10.51.2.8\", \"10.51.3.7\", \"10.51.2.9\" ], \"must_contain\": \"I am fine\", \"url\": \"https://www.domain-test.test\" } } ] } } ] }\' ``` <Message type=\"note\"> An IP is considered healthy if the query response contains the text specified in `must_contain`. The record type can be one of `A` and `AAAA`. </Message> ### View Run the following command to view responses depending on the requester\'s or resolver\'s IP: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"set\": { \"id_fields\": { \"name\": \"test\", \"type\": \"CNAME\" }, \"records\": [ { \"name\": \"test\", \"data\": \"default-domain.com.\", \"type\": \"CNAME\", \"ttl\": 600, \"view_config\": { \"views\": [ { \"subnet\": \"10.51.0.0/16\", \"data\": \"filtered-domain.com.\" } ] } } ] } } ] }\' ``` <Message type=\"note\"> Record types include `A`, `AAAA`, `CNAME` and `TXT`. </Message>
4
+ *
5
+ * The version of the OpenAPI document: v2beta1
6
+ *
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
+ * Domains and DNS API
6
+ * The Domains and DNS API documentation allows you to configure and manage your domains\' DNS zones and records. You can also use dynamic records to optimize and easily use your infrastructure as code. Read our [reference content documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/reference-content/) for more information about domains. Refer to the [Domains and DNS Registrar API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/) to find out how to buy,transfer and manage your domains and contacts (DNSSEC included). (switchcolumn) (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/network/domains-and-dns/concepts/) to find definitions of the different terms referring to Scaleway Domains and DNS. (switchcolumn) (switchcolumn) ## Quickstart 1. **Configure your environment variables.** <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the API. </Message> ```bash export SCW_ACCESS_KEY=\"<API access key>\" export SCW_SECRET_KEY=\"<API secret key>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\" ``` 2. **Register an external domain.** Run the following command to register your domain: ```bash curl https://api.scaleway.com/domain/v2beta1/external-domains \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"domain\": \"my-external-domain.test\", \"project_id\": \"<Scaleway Project ID>\" }\' ``` 3. **Set up a TXT record.** <Message type=\"important\"> After you register your external domain, you must set up a TXT record **within 48 hours**. This step is optional if you have an internal domain. </Message> Set up your TXT record as explained in **step 4** of our [documentation on how to add an external domain](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/add-external-domain/) to confirm you are the owner of the domain registered. <Message type=\"note\"> You will receive a confirmation email once your domain is validated. Your domain will then be available on the API. </Message> 4. **Update your DNS name servers.** [Update your DNS name servers](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-nameservers-internal-domain) to Scaleway\'s DNS name servers: `ns0.dom.scw.cloud` and `ns1.dom.scw.cloud`. - For your domain: update the name servers at your registrar to point your domain to Scaleway\'s DNS servers - For your subdomain: update the name servers at your parent DNS server to point your subdomain to Scaleway\'s DNS servers 5. **Set up your domain\'s DNSSEC.** You need to set up your domain\'s DNSSEC on the registry by your registrar and on the DNS server with the same information. To set up the DNSSEC: * use the [Registrar API](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/#path-domains-update-domain-dnssec) `EnableDomainDNSSEC` to generate the setup on the DNS servers * if your domain is not registered on Scaleway but on another registrar, use the DS or public key information to configure the DNSSEC on your registrar <Message type=\"tip\"> You can remove your DNSSEC settings on your registrar before you migrate to our service. You will be able to set it up again afterwards. </Message> 6. **List your domains.** Run the following command to retrieve the list of your domains: ```bash curl https://api.scaleway.com/domain/v2beta1/domains \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` The following output displays: ```bash { \"total_count\": 1, \"domains\": [ { \"domain\": \"domain-external.test\", \"organization_id\": \"<Scaleway Organization ID>\", \"project_id\": \"<Scaleway Project ID>\", \"auto_renew_status\": \"disabled\", \"dnssec_status\": \"disabled\", \"epp_code\": [], \"expired_at\": null, \"updated_at\": \"1970-01-01T00:00:00Z\", \"registrar\": \"EXTERNAL\", \"is_external\": true, \"status\": \"active\" } ] } ``` 7. **List the zones you can manage.** Run the following command to list the DNS zones you can manage: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/ \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` An output similar to the following displays: ```bash { \"total_count\": 3, \"dns_zones\": [ { \"domain\": \"domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"domain-external.test\", \"subdomain\": \"test-zone\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"other-domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" } ] } ``` 8. **Update a zone\'s record(s).** <Message type=\"important\"> - The `clear` command clears all your records. You will have to setup your records again - If the zone you want to update does not exist but is included in a managed zone, the API will create the new (sub) zone </Message> Run the following command to update a zone\'s record: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/subdomain.domain-external.test/records \\ -X PATCH \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"changes\": [ { \"clear\": {} }, { \"add\": { \"records\": [ { \"name\": \"test1\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test2\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"set\": { \"id_fields\": { \"type\": \"A\", \"name\": \"test2\" }, \"records\": [ { \"name\": \"test2\", \"data\": \"127.0.0.2\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"add\": { \"records\": [ { \"name\": \"test3\", \"data\": \"127.0.0.3\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"delete\": { \"id_fields\": { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } } } ] }\' ``` An output similar to the following displays: ```bash { \"records\": [ { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test1\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.2\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.3\", \"name\": \"test3\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" } ] } ``` 9. **Enable DNSSEC for external domains.** - Run the following command if you have not set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{}\' ``` An output similar to the following displays: ```json { \"domain\":{ \"domain\":\"example.fr\", \"auto_renew_status\":\"enabled\", \"dnssec_status\":\"disabled\", \"ds_records\":[ { \"key_id\":49071, \"algorithm\":\"ecdsap256sha256\", \"digest\":{ \"type\":\"sha_384\", \"digest\":\"c14421f739e35b62e3383d5972263f93610dea31da48a1990453752cf1b4f4f0314f75ecd0bc9061c51ee41ec7692204\" } } ], \"epp\":[ \"clientTransferProhibited\" ], \"expired_at\":\"2021-04-04T12:46:29Z\", \"updated_at\":\"2020-07-07T13:24:27Z\", \"registrar\":\"EXTERNAL\", \"is_external\":true, \"status\":\"active\", \"......\" } ``` <Message type=\"important\"> Set up the information returned under `ds_records` in the output, in your registrar to configure DNSSEC for your external domain. </Message> - Run the following command if you have already set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"ds_record\": { \"algorithm\": \"rsamd5\", \"digest\": { \"type\": \"sha_1\", \"digest\": \"ABCD\" } } }\' ``` 10. **Enable DNSSEC for internal domains.** Find out how to enable DNSSEC for your internal domains in our [dedicated documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/configure-dnssec-internal-domain/). (switchcolumn) <Message type=\"requirement\"> - You have a [Scaleway account](https://console.scaleway.com/) - You have [created an API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page - You have your [Organization ID](https://console.scaleway.com/organization/settings) - You have [installed `curl`](https://curl.se/download.html) </Message> (switchcolumn) ## Technical information ### Regional availability Scaleway Domains and DNS is currently available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/account/reference-content/products-availability). ### Format - The format of record names is always in \"short\" format (i.e.\"test\" instead of the FQDN \"test.mydomain.com\") - If a data value is not in RFC format, quotes will be added for `TXT`records. If `CNAME`records are not in FQDDN, the zone will be added ## Technical limitations - Only the owner of a domain can use and configure it with Domains and DNS - Each zone supports the creation of sub-zones, which inherit the parent\'s Project ID - We provide the following record types: `A`, `AAAA`, `CNAME`, `CAA`, `DNAME`, `HTTPS`, `MX`, `NAPTR`, `NS`, `SRV`, `SVCB`, `TLSA` and `TXT` - We support the following dynamic records: `http(s)` `health check` and `views` ## Going further For more information about Domains and DNS, you can check out the following pages: - [Domains and DNS Documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) - [Scaleway Slack Community](http://slack.scaleway.com) join the #domains channel - [Contact our support team](https://console.scaleway.com/support/tickets) ### Test if the service is up Run the following command to test if an `http` or `https` service is up on a provided list of IPs: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"add\": { \"records\": [ { \"name\": \"service-www\", \"data\": \"10.51.2.8\", \"type\": \"A\", \"ttl\": 600, \"http_service_config\": { \"ips\": [ \"10.51.2.8\", \"10.51.3.7\", \"10.51.2.9\" ], \"must_contain\": \"I am fine\", \"url\": \"https://www.domain-test.test\" } } ] } } ] }\' ``` <Message type=\"note\"> An IP is considered healthy if the query response contains the text specified in `must_contain`. The record type can be one of `A` and `AAAA`. </Message> ### View Run the following command to view responses depending on the requester\'s or resolver\'s IP: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"set\": { \"id_fields\": { \"name\": \"test\", \"type\": \"CNAME\" }, \"records\": [ { \"name\": \"test\", \"data\": \"default-domain.com.\", \"type\": \"CNAME\", \"ttl\": 600, \"view_config\": { \"views\": [ { \"subnet\": \"10.51.0.0/16\", \"data\": \"filtered-domain.com.\" } ] } } ] } } ] }\' ``` <Message type=\"note\"> Record types include `A`, `AAAA`, `CNAME` and `TXT`. </Message>
7
+ *
8
+ * The version of the OpenAPI document: v2beta1
9
+ *
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
+ * Domains and DNS API
3
+ * The Domains and DNS API documentation allows you to configure and manage your domains\' DNS zones and records. You can also use dynamic records to optimize and easily use your infrastructure as code. Read our [reference content documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/reference-content/) for more information about domains. Refer to the [Domains and DNS Registrar API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/) to find out how to buy,transfer and manage your domains and contacts (DNSSEC included). (switchcolumn) (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/network/domains-and-dns/concepts/) to find definitions of the different terms referring to Scaleway Domains and DNS. (switchcolumn) (switchcolumn) ## Quickstart 1. **Configure your environment variables.** <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the API. </Message> ```bash export SCW_ACCESS_KEY=\"<API access key>\" export SCW_SECRET_KEY=\"<API secret key>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\" ``` 2. **Register an external domain.** Run the following command to register your domain: ```bash curl https://api.scaleway.com/domain/v2beta1/external-domains \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"domain\": \"my-external-domain.test\", \"project_id\": \"<Scaleway Project ID>\" }\' ``` 3. **Set up a TXT record.** <Message type=\"important\"> After you register your external domain, you must set up a TXT record **within 48 hours**. This step is optional if you have an internal domain. </Message> Set up your TXT record as explained in **step 4** of our [documentation on how to add an external domain](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/add-external-domain/) to confirm you are the owner of the domain registered. <Message type=\"note\"> You will receive a confirmation email once your domain is validated. Your domain will then be available on the API. </Message> 4. **Update your DNS name servers.** [Update your DNS name servers](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-nameservers-internal-domain) to Scaleway\'s DNS name servers: `ns0.dom.scw.cloud` and `ns1.dom.scw.cloud`. - For your domain: update the name servers at your registrar to point your domain to Scaleway\'s DNS servers - For your subdomain: update the name servers at your parent DNS server to point your subdomain to Scaleway\'s DNS servers 5. **Set up your domain\'s DNSSEC.** You need to set up your domain\'s DNSSEC on the registry by your registrar and on the DNS server with the same information. To set up the DNSSEC: * use the [Registrar API](https://www.scaleway.com/en/developers/api/domains-and-dns/registrar-api/#path-domains-update-domain-dnssec) `EnableDomainDNSSEC` to generate the setup on the DNS servers * if your domain is not registered on Scaleway but on another registrar, use the DS or public key information to configure the DNSSEC on your registrar <Message type=\"tip\"> You can remove your DNSSEC settings on your registrar before you migrate to our service. You will be able to set it up again afterwards. </Message> 6. **List your domains.** Run the following command to retrieve the list of your domains: ```bash curl https://api.scaleway.com/domain/v2beta1/domains \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` The following output displays: ```bash { \"total_count\": 1, \"domains\": [ { \"domain\": \"domain-external.test\", \"organization_id\": \"<Scaleway Organization ID>\", \"project_id\": \"<Scaleway Project ID>\", \"auto_renew_status\": \"disabled\", \"dnssec_status\": \"disabled\", \"epp_code\": [], \"expired_at\": null, \"updated_at\": \"1970-01-01T00:00:00Z\", \"registrar\": \"EXTERNAL\", \"is_external\": true, \"status\": \"active\" } ] } ``` 7. **List the zones you can manage.** Run the following command to list the DNS zones you can manage: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/ \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" ``` An output similar to the following displays: ```bash { \"total_count\": 3, \"dns_zones\": [ { \"domain\": \"domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"domain-external.test\", \"subdomain\": \"test-zone\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" }, { \"domain\": \"other-domain-external.test\", \"subdomain\": \"\", \"ns\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_default\": [ \"ns0.dom.scw.cloud\", \"ns1.dom.scw.cloud\" ], \"ns_master\": [], \"status\": \"active\", \"message\": null, \"updated_at\": \"2022-06-21T01:34:55Z\", \"project_id\": \"<Scaleway Project ID>\" } ] } ``` 8. **Update a zone\'s record(s).** <Message type=\"important\"> - The `clear` command clears all your records. You will have to setup your records again - If the zone you want to update does not exist but is included in a managed zone, the API will create the new (sub) zone </Message> Run the following command to update a zone\'s record: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/subdomain.domain-external.test/records \\ -X PATCH \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"changes\": [ { \"clear\": {} }, { \"add\": { \"records\": [ { \"name\": \"test1\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test2\", \"data\": \"127.0.0.1\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"set\": { \"id_fields\": { \"type\": \"A\", \"name\": \"test2\" }, \"records\": [ { \"name\": \"test2\", \"data\": \"127.0.0.2\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"add\": { \"records\": [ { \"name\": \"test3\", \"data\": \"127.0.0.3\", \"type\": \"A\", \"ttl\": 3600 }, { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } ] } }, { \"delete\": { \"id_fields\": { \"name\": \"test3\", \"data\": \"127.0.0.4\", \"type\": \"A\", \"ttl\": 3600 } } } ] }\' ``` An output similar to the following displays: ```bash { \"records\": [ { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test1\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.1\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.2\", \"name\": \"test2\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" }, { \"id\": \"<UUID>\", \"data\": \"127.0.0.3\", \"name\": \"test3\", \"priority\": 0, \"ttl\": 3600, \"type\": \"A\" } ] } ``` 9. **Enable DNSSEC for external domains.** - Run the following command if you have not set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{}\' ``` An output similar to the following displays: ```json { \"domain\":{ \"domain\":\"example.fr\", \"auto_renew_status\":\"enabled\", \"dnssec_status\":\"disabled\", \"ds_records\":[ { \"key_id\":49071, \"algorithm\":\"ecdsap256sha256\", \"digest\":{ \"type\":\"sha_384\", \"digest\":\"c14421f739e35b62e3383d5972263f93610dea31da48a1990453752cf1b4f4f0314f75ecd0bc9061c51ee41ec7692204\" } } ], \"epp\":[ \"clientTransferProhibited\" ], \"expired_at\":\"2021-04-04T12:46:29Z\", \"updated_at\":\"2020-07-07T13:24:27Z\", \"registrar\":\"EXTERNAL\", \"is_external\":true, \"status\":\"active\", \"......\" } ``` <Message type=\"important\"> Set up the information returned under `ds_records` in the output, in your registrar to configure DNSSEC for your external domain. </Message> - Run the following command if you have already set up DNSSEC at your registrar: ```bash curl https://api.scaleway.com/domain/v2beta1/domains/example.com/enable-dnssec \\ -X POST \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"ds_record\": { \"algorithm\": \"rsamd5\", \"digest\": { \"type\": \"sha_1\", \"digest\": \"ABCD\" } } }\' ``` 10. **Enable DNSSEC for internal domains.** Find out how to enable DNSSEC for your internal domains in our [dedicated documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/configure-dnssec-internal-domain/). (switchcolumn) <Message type=\"requirement\"> - You have a [Scaleway account](https://console.scaleway.com/) - You have [created an API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page - You have your [Organization ID](https://console.scaleway.com/organization/settings) - You have [installed `curl`](https://curl.se/download.html) </Message> (switchcolumn) ## Technical information ### Regional availability Scaleway Domains and DNS is currently available globally. Find out about [product availability in our dedicated documentation](https://www.scaleway.com/en/docs/account/reference-content/products-availability). ### Format - The format of record names is always in \"short\" format (i.e.\"test\" instead of the FQDN \"test.mydomain.com\") - If a data value is not in RFC format, quotes will be added for `TXT`records. If `CNAME`records are not in FQDDN, the zone will be added ## Technical limitations - Only the owner of a domain can use and configure it with Domains and DNS - Each zone supports the creation of sub-zones, which inherit the parent\'s Project ID - We provide the following record types: `A`, `AAAA`, `CNAME`, `CAA`, `DNAME`, `HTTPS`, `MX`, `NAPTR`, `NS`, `SRV`, `SVCB`, `TLSA` and `TXT` - We support the following dynamic records: `http(s)` `health check` and `views` ## Going further For more information about Domains and DNS, you can check out the following pages: - [Domains and DNS Documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) - [Scaleway Slack Community](http://slack.scaleway.com) join the #domains channel - [Contact our support team](https://console.scaleway.com/support/tickets) ### Test if the service is up Run the following command to test if an `http` or `https` service is up on a provided list of IPs: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"add\": { \"records\": [ { \"name\": \"service-www\", \"data\": \"10.51.2.8\", \"type\": \"A\", \"ttl\": 600, \"http_service_config\": { \"ips\": [ \"10.51.2.8\", \"10.51.3.7\", \"10.51.2.9\" ], \"must_contain\": \"I am fine\", \"url\": \"https://www.domain-test.test\" } } ] } } ] }\' ``` <Message type=\"note\"> An IP is considered healthy if the query response contains the text specified in `must_contain`. The record type can be one of `A` and `AAAA`. </Message> ### View Run the following command to view responses depending on the requester\'s or resolver\'s IP: ```bash curl https://api.scaleway.com/domain/v2beta1/dns-zones/dom.example.com/records \\ -X PATCH \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -d \'{ \"return_all_records\": false, \"changes\": [ { \"set\": { \"id_fields\": { \"name\": \"test\", \"type\": \"CNAME\" }, \"records\": [ { \"name\": \"test\", \"data\": \"default-domain.com.\", \"type\": \"CNAME\", \"ttl\": 600, \"view_config\": { \"views\": [ { \"subnet\": \"10.51.0.0/16\", \"data\": \"filtered-domain.com.\" } ] } } ] } } ] }\' ``` <Message type=\"note\"> Record types include `A`, `AAAA`, `CNAME` and `TXT`. </Message>
4
+ *
5
+ * The version of the OpenAPI document: v2beta1
6
+ *
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
+ }