@codiac.io/codiac-cli 1.3.181 → 1.3.183

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 (276) hide show
  1. package/README.md +1 -1
  2. package/dist/apis/codiac-api/gen/client.d.ts +5 -1
  3. package/dist/apis/codiac-api/gen/client.js +12 -0
  4. package/dist/apis/codiac-api/gen/client.js.map +1 -1
  5. package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +25 -0
  6. package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
  7. package/dist/apis/codiac-api/i-client.d.ts +4 -0
  8. package/dist/apis/codiac-api-nats/gen/client.d.ts +4 -0
  9. package/dist/apis/codiac-api-nats/gen/client.js +17 -1
  10. package/dist/apis/codiac-api-nats/gen/client.js.map +1 -1
  11. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +25 -0
  12. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
  13. package/dist/apis/codiac-relay/gen/client.d.ts +16 -3
  14. package/dist/apis/codiac-relay/gen/client.js +58 -1
  15. package/dist/apis/codiac-relay/gen/client.js.map +1 -1
  16. package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +173 -7
  17. package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
  18. package/dist/apis/codiac-relay/i-client.d.ts +8 -0
  19. package/dist/apis/codiac-relay-nats/gen/client.d.ts +15 -7
  20. package/dist/apis/codiac-relay-nats/gen/client.js +86 -19
  21. package/dist/apis/codiac-relay-nats/gen/client.js.map +1 -1
  22. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +151 -15
  23. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js +4 -4
  24. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js.map +1 -1
  25. package/dist/apis/codiac-relay-nats/gen/contracts.ng.d.ts +6 -0
  26. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js +1 -0
  27. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js.map +1 -1
  28. package/dist/bootstrapper-for-api-clients.js +14 -2
  29. package/dist/bootstrapper-for-api-clients.js.map +1 -1
  30. package/dist/cli-common/built-in-cli-user-input.d.ts +2 -1
  31. package/dist/cli-common/built-in-cli-user-input.js +52 -1
  32. package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
  33. package/dist/cli-common/entities/prompt-choice.d.ts +2 -7
  34. package/dist/cli-common/mock-ui.d.ts +2 -1
  35. package/dist/cli-common/mock-ui.js +3 -0
  36. package/dist/cli-common/mock-ui.js.map +1 -1
  37. package/dist/codiac-constants.d.ts +3 -0
  38. package/dist/codiac-constants.js +3 -0
  39. package/dist/codiac-constants.js.map +1 -1
  40. package/dist/command-base-enterprise.d.ts +23 -2
  41. package/dist/command-base-enterprise.js +82 -26
  42. package/dist/command-base-enterprise.js.map +1 -1
  43. package/dist/command-base-exec.js +4 -2
  44. package/dist/command-base-exec.js.map +1 -1
  45. package/dist/commands/asset/deploy.d.ts +2 -1
  46. package/dist/commands/asset/deploy.js +3 -2
  47. package/dist/commands/asset/deploy.js.map +1 -1
  48. package/dist/commands/asset/list.d.ts +26 -7
  49. package/dist/commands/asset/list.js +127 -112
  50. package/dist/commands/asset/list.js.map +1 -1
  51. package/dist/commands/asset/probe/create.d.ts +26 -5
  52. package/dist/commands/asset/probe/create.js +182 -164
  53. package/dist/commands/asset/probe/create.js.map +1 -1
  54. package/dist/commands/asset/recycle.js +3 -4
  55. package/dist/commands/asset/recycle.js.map +1 -1
  56. package/dist/commands/asset/undeploy.d.ts +24 -9
  57. package/dist/commands/asset/undeploy.js +162 -161
  58. package/dist/commands/asset/undeploy.js.map +1 -1
  59. package/dist/commands/asset/view.js +1 -1
  60. package/dist/commands/asset/view.js.map +1 -1
  61. package/dist/commands/asset/volume/create.d.ts +24 -13
  62. package/dist/commands/asset/volume/create.js +153 -158
  63. package/dist/commands/asset/volume/create.js.map +1 -1
  64. package/dist/commands/asset/volume/delete.d.ts +21 -7
  65. package/dist/commands/asset/volume/delete.js +107 -101
  66. package/dist/commands/asset/volume/delete.js.map +1 -1
  67. package/dist/commands/asset/volume/list.d.ts +23 -9
  68. package/dist/commands/asset/volume/list.js +74 -54
  69. package/dist/commands/asset/volume/list.js.map +1 -1
  70. package/dist/commands/cabinet/cluster/attach.d.ts +32 -0
  71. package/dist/commands/cabinet/cluster/attach.js +144 -0
  72. package/dist/commands/cabinet/cluster/attach.js.map +1 -0
  73. package/dist/commands/cabinet/create.d.ts +1 -0
  74. package/dist/commands/cabinet/create.js +5 -1
  75. package/dist/commands/cabinet/create.js.map +1 -1
  76. package/dist/commands/cabinet/list.d.ts +27 -6
  77. package/dist/commands/cabinet/list.js +130 -121
  78. package/dist/commands/cabinet/list.js.map +1 -1
  79. package/dist/commands/cabinet/obliterate.d.ts +1 -0
  80. package/dist/commands/cabinet/obliterate.js +5 -1
  81. package/dist/commands/cabinet/obliterate.js.map +1 -1
  82. package/dist/commands/cabinet/restore.d.ts +36 -0
  83. package/dist/commands/cabinet/restore.js +186 -0
  84. package/dist/commands/cabinet/restore.js.map +1 -0
  85. package/dist/commands/cluster/agent/configure.d.ts +47 -0
  86. package/dist/commands/cluster/agent/configure.js +320 -0
  87. package/dist/commands/cluster/agent/configure.js.map +1 -0
  88. package/dist/commands/cluster/agent/install.d.ts +32 -0
  89. package/dist/commands/cluster/agent/install.js +152 -0
  90. package/dist/commands/cluster/agent/install.js.map +1 -0
  91. package/dist/commands/cluster/agent/uninstall.d.ts +29 -0
  92. package/dist/commands/cluster/agent/uninstall.js +130 -0
  93. package/dist/commands/cluster/agent/uninstall.js.map +1 -0
  94. package/dist/commands/cluster/bootstrap.d.ts +50 -0
  95. package/dist/commands/cluster/bootstrap.js +310 -0
  96. package/dist/commands/cluster/bootstrap.js.map +1 -0
  97. package/dist/commands/cluster/connect.d.ts +0 -5
  98. package/dist/commands/cluster/connect.js +1 -26
  99. package/dist/commands/cluster/connect.js.map +1 -1
  100. package/dist/commands/cluster/install.d.ts +45 -0
  101. package/dist/commands/cluster/install.js +224 -0
  102. package/dist/commands/cluster/install.js.map +1 -0
  103. package/dist/commands/cluster/stack/capture.js +0 -2
  104. package/dist/commands/cluster/stack/capture.js.map +1 -1
  105. package/dist/commands/cluster/stack/install.d.ts +40 -0
  106. package/dist/commands/cluster/stack/install.js +196 -0
  107. package/dist/commands/cluster/stack/install.js.map +1 -0
  108. package/dist/commands/cluster/start.d.ts +0 -5
  109. package/dist/commands/cluster/start.js +1 -27
  110. package/dist/commands/cluster/start.js.map +1 -1
  111. package/dist/commands/cluster/stop.d.ts +0 -5
  112. package/dist/commands/cluster/stop.js +1 -27
  113. package/dist/commands/cluster/stop.js.map +1 -1
  114. package/dist/commands/config/add.d.ts +9 -11
  115. package/dist/commands/config/add.js +59 -125
  116. package/dist/commands/config/add.js.map +1 -1
  117. package/dist/commands/config/delete.d.ts +22 -11
  118. package/dist/commands/config/delete.js +28 -83
  119. package/dist/commands/config/delete.js.map +1 -1
  120. package/dist/commands/config/deploy.d.ts +26 -8
  121. package/dist/commands/config/deploy.js +169 -198
  122. package/dist/commands/config/deploy.js.map +1 -1
  123. package/dist/commands/config/import.d.ts +27 -22
  124. package/dist/commands/config/import.js +222 -253
  125. package/dist/commands/config/import.js.map +1 -1
  126. package/dist/commands/config/settings/get.d.ts +25 -14
  127. package/dist/commands/config/settings/get.js +30 -123
  128. package/dist/commands/config/settings/get.js.map +1 -1
  129. package/dist/commands/config/view.d.ts +26 -6
  130. package/dist/commands/config/view.js +112 -95
  131. package/dist/commands/config/view.js.map +1 -1
  132. package/dist/commands/csp/logout.d.ts +23 -6
  133. package/dist/commands/csp/logout.js +86 -63
  134. package/dist/commands/csp/logout.js.map +1 -1
  135. package/dist/commands/deploy.d.ts +31 -14
  136. package/dist/commands/deploy.js +264 -385
  137. package/dist/commands/deploy.js.map +1 -1
  138. package/dist/commands/enterprise/list.d.ts +22 -4
  139. package/dist/commands/enterprise/list.js +97 -67
  140. package/dist/commands/enterprise/list.js.map +1 -1
  141. package/dist/commands/env/add.d.ts +26 -7
  142. package/dist/commands/env/add.js +182 -179
  143. package/dist/commands/env/add.js.map +1 -1
  144. package/dist/commands/environment/cluster/attach.d.ts +1 -0
  145. package/dist/commands/environment/cluster/attach.js +5 -1
  146. package/dist/commands/environment/cluster/attach.js.map +1 -1
  147. package/dist/commands/environment/cluster/detach.d.ts +1 -0
  148. package/dist/commands/environment/cluster/detach.js +5 -1
  149. package/dist/commands/environment/cluster/detach.js.map +1 -1
  150. package/dist/commands/environment/create.d.ts +1 -0
  151. package/dist/commands/environment/create.js +5 -1
  152. package/dist/commands/environment/create.js.map +1 -1
  153. package/dist/commands/environment/delete.d.ts +39 -0
  154. package/dist/commands/environment/delete.js +135 -0
  155. package/dist/commands/environment/delete.js.map +1 -0
  156. package/dist/commands/environment/list.d.ts +28 -9
  157. package/dist/commands/environment/list.js +128 -167
  158. package/dist/commands/environment/list.js.map +1 -1
  159. package/dist/commands/host/map.d.ts +29 -19
  160. package/dist/commands/host/map.js +263 -324
  161. package/dist/commands/host/map.js.map +1 -1
  162. package/dist/commands/imageRegistry/capture.d.ts +12 -11
  163. package/dist/commands/imageRegistry/capture.js +49 -113
  164. package/dist/commands/imageRegistry/capture.js.map +1 -1
  165. package/dist/commands/imageRegistry/forget.d.ts +12 -11
  166. package/dist/commands/imageRegistry/forget.js +53 -114
  167. package/dist/commands/imageRegistry/forget.js.map +1 -1
  168. package/dist/commands/imageRegistry/pullSecret/set.d.ts +21 -11
  169. package/dist/commands/imageRegistry/pullSecret/set.js +184 -278
  170. package/dist/commands/imageRegistry/pullSecret/set.js.map +1 -1
  171. package/dist/commands/imageRegistry/pullSecret/unset.d.ts +19 -11
  172. package/dist/commands/imageRegistry/pullSecret/unset.js +117 -190
  173. package/dist/commands/imageRegistry/pullSecret/unset.js.map +1 -1
  174. package/dist/commands/images/add.d.ts +19 -6
  175. package/dist/commands/images/add.js +63 -53
  176. package/dist/commands/images/add.js.map +1 -1
  177. package/dist/commands/kit/create.d.ts +22 -10
  178. package/dist/commands/kit/create.js +119 -121
  179. package/dist/commands/kit/create.js.map +1 -1
  180. package/dist/commands/logout.d.ts +21 -5
  181. package/dist/commands/logout.js +44 -25
  182. package/dist/commands/logout.js.map +1 -1
  183. package/dist/commands/noc/cluster/create.js +22 -10
  184. package/dist/commands/noc/cluster/create.js.map +1 -1
  185. package/dist/commands/noc/cluster/credentials-set.d.ts +38 -0
  186. package/dist/commands/noc/cluster/credentials-set.js +174 -0
  187. package/dist/commands/noc/cluster/credentials-set.js.map +1 -0
  188. package/dist/commands/noc/cluster/define.d.ts +46 -0
  189. package/dist/commands/noc/cluster/define.js +305 -0
  190. package/dist/commands/noc/cluster/define.js.map +1 -0
  191. package/dist/commands/noc/cluster/deinit.d.ts +22 -5
  192. package/dist/commands/noc/cluster/deinit.js +99 -106
  193. package/dist/commands/noc/cluster/deinit.js.map +1 -1
  194. package/dist/commands/noc/cluster/forget.js +2 -4
  195. package/dist/commands/noc/cluster/forget.js.map +1 -1
  196. package/dist/commands/noc/cluster/grant.d.ts +20 -11
  197. package/dist/commands/noc/cluster/grant.js +94 -132
  198. package/dist/commands/noc/cluster/grant.js.map +1 -1
  199. package/dist/commands/noc/cluster/init.d.ts +25 -7
  200. package/dist/commands/noc/cluster/init.js +121 -133
  201. package/dist/commands/noc/cluster/init.js.map +1 -1
  202. package/dist/commands/noc/cluster/journal.d.ts +0 -5
  203. package/dist/commands/noc/cluster/journal.js +1 -26
  204. package/dist/commands/noc/cluster/journal.js.map +1 -1
  205. package/dist/commands/noc/cluster/list.d.ts +23 -5
  206. package/dist/commands/noc/cluster/list.js +107 -111
  207. package/dist/commands/noc/cluster/list.js.map +1 -1
  208. package/dist/commands/noc/cluster/restore.d.ts +36 -0
  209. package/dist/commands/noc/cluster/restore.js +196 -0
  210. package/dist/commands/noc/cluster/restore.js.map +1 -0
  211. package/dist/commands/portal.d.ts +21 -5
  212. package/dist/commands/portal.js +37 -36
  213. package/dist/commands/portal.js.map +1 -1
  214. package/dist/commands/secretStore/capture.d.ts +13 -11
  215. package/dist/commands/secretStore/capture.js +63 -123
  216. package/dist/commands/secretStore/capture.js.map +1 -1
  217. package/dist/commands/secretStore/forget.d.ts +13 -11
  218. package/dist/commands/secretStore/forget.js +55 -111
  219. package/dist/commands/secretStore/forget.js.map +1 -1
  220. package/dist/commands/shell/init.d.ts +15 -0
  221. package/dist/commands/shell/init.js +96 -0
  222. package/dist/commands/shell/init.js.map +1 -0
  223. package/dist/commands/snapshot/deploy.d.ts +22 -42
  224. package/dist/commands/snapshot/deploy.js +173 -269
  225. package/dist/commands/snapshot/deploy.js.map +1 -1
  226. package/dist/commands/snapshot/list.d.ts +26 -5
  227. package/dist/commands/snapshot/list.js +116 -109
  228. package/dist/commands/snapshot/list.js.map +1 -1
  229. package/dist/commands/tenant/create.d.ts +18 -13
  230. package/dist/commands/tenant/create.js +69 -69
  231. package/dist/commands/tenant/create.js.map +1 -1
  232. package/dist/commands/tenant/switch.d.ts +18 -12
  233. package/dist/commands/tenant/switch.js +65 -59
  234. package/dist/commands/tenant/switch.js.map +1 -1
  235. package/dist/commands/whereami.d.ts +18 -8
  236. package/dist/commands/whereami.js +67 -102
  237. package/dist/commands/whereami.js.map +1 -1
  238. package/dist/commands/whoami.d.ts +19 -3
  239. package/dist/commands/whoami.js +44 -13
  240. package/dist/commands/whoami.js.map +1 -1
  241. package/dist/ops/i-user-input-provider.d.ts +20 -1
  242. package/dist/ops/i-user-input-provider.js.map +1 -1
  243. package/dist/ops/test/mock-ui.d.ts +2 -1
  244. package/dist/ops/test/mock-ui.js +3 -0
  245. package/dist/ops/test/mock-ui.js.map +1 -1
  246. package/dist/ops/throwing-user-input-provider.d.ts +2 -1
  247. package/dist/ops/throwing-user-input-provider.js +3 -0
  248. package/dist/ops/throwing-user-input-provider.js.map +1 -1
  249. package/dist/relay/relay-container.js +1 -1
  250. package/dist/sdk-adapters/other/other-cluster-configurator.d.ts +24 -0
  251. package/dist/sdk-adapters/other/other-cluster-configurator.js +80 -0
  252. package/dist/sdk-adapters/other/other-cluster-configurator.js.map +1 -0
  253. package/dist/sdk-adapters/other/other-login-configurator.d.ts +24 -0
  254. package/dist/sdk-adapters/other/other-login-configurator.js +68 -0
  255. package/dist/sdk-adapters/other/other-login-configurator.js.map +1 -0
  256. package/dist/uilogic/cloud-resource-configurator-factory.js +12 -0
  257. package/dist/uilogic/cloud-resource-configurator-factory.js.map +1 -1
  258. package/dist/uilogic/lrp-watcher-predef.d.ts +2 -1
  259. package/dist/uilogic/lrp-watcher-predef.js +31 -17
  260. package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
  261. package/dist/uilogic/lrp-watcher-utils.d.ts +2 -0
  262. package/dist/uilogic/lrp-watcher-utils.js +2 -0
  263. package/dist/uilogic/lrp-watcher-utils.js.map +1 -1
  264. package/dist/uilogic/rootmap-ui-utils.d.ts +18 -1
  265. package/dist/uilogic/rootmap-ui-utils.js +30 -0
  266. package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
  267. package/dist/uilogic/tenant-contextualizer.js +11 -1
  268. package/dist/uilogic/tenant-contextualizer.js.map +1 -1
  269. package/dist/user-context-loader.d.ts +12 -7
  270. package/dist/user-context-loader.js +89 -43
  271. package/dist/user-context-loader.js.map +1 -1
  272. package/oclif.manifest.json +3984 -1453
  273. package/package.json +2 -2
  274. package/dist/commands/noc/cluster/recreate.d.ts +0 -28
  275. package/dist/commands/noc/cluster/recreate.js +0 -197
  276. package/dist/commands/noc/cluster/recreate.js.map +0 -1
@@ -5,12 +5,12 @@ const core_1 = require("@oclif/core");
5
5
  const YAML = require("yaml");
6
6
  const tsv = require("tsv");
7
7
  const jmespath = require("jmespath");
8
- const command_base_enterprise_1 = require("../../../command-base-enterprise");
8
+ const command_base_exec_1 = require("../../../command-base-exec");
9
9
  const _ = require("lodash");
10
10
  const render = require("../../../uilogic/render-methods");
11
- // import { OutputFormatsEnum } from '../../../uilogic/render-methods';
12
11
  const type_safety_utils_1 = require("../../../uilogic/type-safety-utils");
13
12
  const codiac_constants_1 = require("../../../codiac-constants");
13
+ const config_ui_utils_1 = require("../../../uilogic/config-ui-utils");
14
14
  var OutputFormatsEnumPlus;
15
15
  (function (OutputFormatsEnumPlus) {
16
16
  OutputFormatsEnumPlus["text"] = "text";
@@ -20,110 +20,92 @@ var OutputFormatsEnumPlus;
20
20
  OutputFormatsEnumPlus["tsv"] = "tsv";
21
21
  OutputFormatsEnumPlus["csv"] = "csv";
22
22
  })(OutputFormatsEnumPlus || (OutputFormatsEnumPlus = {}));
23
- class NocClusterList extends command_base_enterprise_1.CommandBaseEnterprise {
24
- run() {
25
- var _a, _b, _c, _d, _e, _f;
23
+ class NocClusterList extends command_base_exec_1.CommandBaseExec {
24
+ constructor() {
25
+ super(...arguments);
26
+ this._outputFormat = OutputFormatsEnumPlus.tree;
27
+ }
28
+ captureArgs() {
29
+ var _a, _b, _c;
26
30
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
- this.bootstrap();
28
- const { args, flags } = yield this.parse(NocClusterList);
29
- try {
30
- this._userCntx = yield this.establishTenantContext(this._userCntx);
31
- let rootMap = yield this.getRootMap();
32
- let currentEnterprise = (yield this.establishEnterpriseContext(rootMap)).enterprise; // We only need this bc the RootMap requires it.
33
- _.remove(rootMap.enterprises, e => e.name != currentEnterprise.name); // trim down to match legacy conditions
34
- let outputFormat;
35
- if (flags.output) {
36
- outputFormat = type_safety_utils_1.TypeSafetyUtils.toEnum(OutputFormatsEnumPlus, flags.output);
37
- }
38
- else if (!_.isEmpty(flags.query)) {
39
- outputFormat = OutputFormatsEnumPlus.json;
40
- }
41
- else {
42
- outputFormat = OutputFormatsEnumPlus.tree;
43
- }
44
- if (outputFormat == undefined)
45
- throw new Error("Unrecognized output format.");
46
- if (!_.isEmpty(flags.query) && [OutputFormatsEnumPlus.text, OutputFormatsEnumPlus.tree].includes(outputFormat))
47
- throw new Error("Cannot use that output type when specifying the query parameter.");
48
- let omitHeaderRow = false;
49
- if ([OutputFormatsEnumPlus.tsv, OutputFormatsEnumPlus.csv].includes(outputFormat)) {
50
- omitHeaderRow = false; // true; // do this for now, until we add this as a command argument
51
- }
52
- // RETRIEVE
53
- if ([OutputFormatsEnumPlus.json, OutputFormatsEnumPlus.yaml, OutputFormatsEnumPlus.tsv, OutputFormatsEnumPlus.csv].includes(outputFormat) === false)
54
- this._ui.startSpinner("Retrieving");
55
- let clusterCount = (_b = (_a = rootMap.clusters) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
56
- if ([OutputFormatsEnumPlus.json, OutputFormatsEnumPlus.yaml, OutputFormatsEnumPlus.tsv, OutputFormatsEnumPlus.csv].includes(outputFormat) === false)
57
- this._ui.stopSpinner(`found ${clusterCount}`);
58
- let clusters = _.cloneDeep(rootMap.clusters);
59
- clusters = _.sortBy(clusters, x => x.name);
60
- // APPLY QUERY
61
- if ((flags.query != undefined) && (!_.isEmpty(flags.query.trim()))) {
62
- clusters = jmespath.search(clusters, flags.query);
63
- }
64
- // RENDER
65
- let output = "";
66
- switch (outputFormat) {
67
- case OutputFormatsEnumPlus.json:
68
- let listForJson = clusters !== null && clusters !== void 0 ? clusters : [];
69
- // listForJson = _.sortBy(listForJson, x => x.name);
70
- output = JSON.stringify(listForJson, undefined, 2);
71
- this._ui.userMessage(output);
72
- break;
73
- case OutputFormatsEnumPlus.yaml:
74
- let listForYaml = clusters !== null && clusters !== void 0 ? clusters : [];
75
- // listForYaml = _.sortBy(listForYaml, x => x.name);
76
- output = YAML.stringify(listForYaml, { indent: 2 });
77
- this._ui.userMessage(output);
78
- break;
79
- case OutputFormatsEnumPlus.tsv:
80
- // TODO: Consider d3-dsv instead (https://www.npmjs.com/package/d3-dsv)
81
- // So we can support output that's just a list of strings (eg: from a custom jmespath query).
82
- // eg: this works but is clumsy: cod cluster list -q "[].{ loc: locationName } | sort_by(@, &loc)" -o tsv
83
- // eg: but this returns null: cod cluster list -q "[].locationName | sort(@)" -o tsv
84
- let listForTsv = clusters !== null && clusters !== void 0 ? clusters : [];
85
- tsv.TSV.header = !omitHeaderRow;
86
- output = (_c = tsv.TSV.stringify(listForTsv)) === null || _c === void 0 ? void 0 : _c.trim();
87
- this._ui.userMessage(output);
88
- break;
89
- case OutputFormatsEnumPlus.csv:
90
- // TODO: Consider d3-dsv instead (https://www.npmjs.com/package/d3-dsv)
91
- // So we can support output that's just a list of strings (eg: from a custom jmespath query).
92
- let listForCsv = clusters !== null && clusters !== void 0 ? clusters : [];
93
- tsv.TSV.header = !omitHeaderRow;
94
- output = (_d = tsv.CSV.stringify(listForCsv)) === null || _d === void 0 ? void 0 : _d.trim();
95
- this._ui.userMessage(output);
96
- break;
97
- case OutputFormatsEnumPlus.text:
98
- let flatList = (_e = rootMap.clusters) !== null && _e !== void 0 ? _e : []; // Gotta use the raw tyepsafe record with this output type
99
- // flatList = _.sortBy(flatList, c => c.name);
100
- let listForText = flatList.map(c => this.clusterToString(c));
101
- ;
102
- output = render.renderStringList(listForText);
103
- this._ui.userMessage(output);
104
- break;
105
- // TODO:
106
- // case OutputFormatsEnum.table:
107
- // case OutputFormatsEnum.tsv:
108
- // break;
109
- case OutputFormatsEnumPlus.tree:
110
- default:
111
- let listForTree = (_f = rootMap.clusters) !== null && _f !== void 0 ? _f : []; // Gotta use the raw tyepsafe record with this output type
112
- // listForTree = _.sortBy(listForTree, c => c.name);
113
- let clusterTree = listForTree.map(c => {
114
- return { text: this.clusterToString(c) };
115
- });
116
- let out = render.renderStringTree(clusterTree); //, this._ui.userMessage);
117
- this._ui.userMessage(out);
118
- break;
119
- }
31
+ const { flags } = yield this.parse(NocClusterList);
32
+ let partial = {};
33
+ if (flags.enterpriseCode)
34
+ partial.enterprise = flags.enterpriseCode;
35
+ if (flags.output) {
36
+ this._outputFormat = (_a = type_safety_utils_1.TypeSafetyUtils.toEnum(OutputFormatsEnumPlus, flags.output)) !== null && _a !== void 0 ? _a : OutputFormatsEnumPlus.tree;
37
+ }
38
+ else if (!_.isEmpty(flags.query)) {
39
+ this._outputFormat = OutputFormatsEnumPlus.json;
40
+ }
41
+ else {
42
+ this._outputFormat = OutputFormatsEnumPlus.tree;
43
+ }
44
+ if (!_.isEmpty(flags.query) && [OutputFormatsEnumPlus.text, OutputFormatsEnumPlus.tree].includes(this._outputFormat)) {
45
+ throw new Error("Cannot use text or tree output format with the --query parameter.");
120
46
  }
121
- catch (err) {
122
- this.handleError(err);
47
+ this._query = flags.query;
48
+ const interactionMode = (this.pipedInput) ? config_ui_utils_1.InteractionModes.silent : (_c = (_b = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_1.InteractionModes.echo : undefined)) !== null && _b !== void 0 ? _b : (flags["to-script"] ? config_ui_utils_1.InteractionModes.toscript : undefined)) !== null && _c !== void 0 ? _c : (flags.silent ? config_ui_utils_1.InteractionModes.silent : undefined);
49
+ return [partial, interactionMode, false];
50
+ });
51
+ }
52
+ buildCandidate_silently(partial, rootMap) {
53
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
54
+ const clusters = _.sortBy(_.cloneDeep(rootMap.clusters), x => x.name);
55
+ return { enterprise: partial.enterprise, clusters };
56
+ });
57
+ }
58
+ buildCandidate_interactively(partial, rootMap, takeDefaults) {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ const clusters = _.sortBy(_.cloneDeep(rootMap.clusters), x => x.name);
61
+ return { enterprise: partial.enterprise, clusters };
62
+ });
63
+ }
64
+ buildCommandString(candidate, cmd) {
65
+ cmd.push("-e", candidate.enterprise);
66
+ if (this._outputFormat !== OutputFormatsEnumPlus.tree)
67
+ cmd.push("-o", this._outputFormat);
68
+ if (this._query)
69
+ cmd.push("-q", this._query);
70
+ cmd.push("--silent");
71
+ return cmd;
72
+ }
73
+ executeTask(candidate) {
74
+ var _a, _b, _c, _d;
75
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ let clusters = candidate.clusters;
77
+ if (this._query && !_.isEmpty(this._query.trim())) {
78
+ clusters = jmespath.search(clusters, this._query);
123
79
  }
124
- finally {
125
- yield this.closeConnections();
126
- return;
80
+ let output = "";
81
+ switch (this._outputFormat) {
82
+ case OutputFormatsEnumPlus.json:
83
+ output = JSON.stringify(clusters !== null && clusters !== void 0 ? clusters : [], undefined, 2);
84
+ this._ui.userMessage(output);
85
+ break;
86
+ case OutputFormatsEnumPlus.yaml:
87
+ output = YAML.stringify(clusters !== null && clusters !== void 0 ? clusters : [], { indent: 2 });
88
+ this._ui.userMessage(output);
89
+ break;
90
+ case OutputFormatsEnumPlus.tsv:
91
+ tsv.TSV.header = true;
92
+ output = (_a = tsv.TSV.stringify(clusters !== null && clusters !== void 0 ? clusters : [])) === null || _a === void 0 ? void 0 : _a.trim();
93
+ this._ui.userMessage(output);
94
+ break;
95
+ case OutputFormatsEnumPlus.csv:
96
+ tsv.TSV.header = true;
97
+ output = (_b = tsv.CSV.stringify(clusters !== null && clusters !== void 0 ? clusters : [])) === null || _b === void 0 ? void 0 : _b.trim();
98
+ this._ui.userMessage(output);
99
+ break;
100
+ case OutputFormatsEnumPlus.text:
101
+ output = render.renderStringList(((_c = candidate.clusters) !== null && _c !== void 0 ? _c : []).map(c => this.clusterToString(c)));
102
+ this._ui.userMessage(output);
103
+ break;
104
+ case OutputFormatsEnumPlus.tree:
105
+ default:
106
+ output = render.renderStringTree(((_d = candidate.clusters) !== null && _d !== void 0 ? _d : []).map(c => ({ text: this.clusterToString(c) })));
107
+ this._ui.userMessage(output);
108
+ break;
127
109
  }
128
110
  });
129
111
  }
@@ -140,16 +122,30 @@ exports.default = NocClusterList;
140
122
  NocClusterList.description = 'Shows the list of clusters.';
141
123
  NocClusterList.aliases = ["cluster:list"];
142
124
  NocClusterList.flags = {
143
- query: core_1.Flags.string({ char: 'q', description: "Jmespath query to filter and format and the results (see https://jmespath.org/ for more info)." }),
144
- output: core_1.Flags.string({ char: 'o', description: "format in which to render the data.", options: Object.keys(OutputFormatsEnumPlus) }),
145
- help: core_1.Flags.help({ char: 'h', description: 'Displays the help document for this command.' })
125
+ help: core_1.Flags.help({ char: 'h' }),
126
+ enterpriseCode: core_1.Flags.string({ char: 'e', required: false, description: 'Code name of the enterprise to target.' }),
127
+ output: core_1.Flags.string({
128
+ char: 'o',
129
+ description: "Format in which to render the results.",
130
+ options: Object.keys(OutputFormatsEnumPlus),
131
+ }),
132
+ query: core_1.Flags.string({
133
+ char: 'q',
134
+ description: "JMESPath expression to filter or reshape the results (see jmespath.org).",
135
+ }),
136
+ silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Executes without any user interaction; fails on missing or invalid arguments.' }),
137
+ echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command for future use before executing.' }),
138
+ "to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }),
146
139
  };
147
140
  NocClusterList.args = {};
148
141
  NocClusterList.examples = [
149
- { description: "Simple listing", command: "<%= config.bin %> <%= command.id %>" },
150
- { description: "List of cluster names", command: "<%= config.bin %> <%= command.id %> -q '[].name'" },
151
- { description: "Filter by name", command: "<%= config.bin %> <%= command.id %> -q \"[?name == 'my-cluster-on-aws']\"" },
152
- { description: "Filter by name and show the ingressIp", command: "<%= config.bin %> <%= command.id %> -q \"[?name == 'my-cluster-on-aws'].ingressIp\"" },
153
- { description: "Show name and location, sorted by location", command: "<%= config.bin %> <%= command.id %> -q \"[].{ name: name, loc: locationName } | sort_by(@, &loc)\"" },
142
+ { description: "Simple listing.", command: "<%= config.bin %> <%= command.id %>" },
143
+ { description: "List of cluster names only.", command: "<%= config.bin %> <%= command.id %> -q '[].name'" },
144
+ { description: "Multi-property projection.", command: "<%= config.bin %> <%= command.id %> -q '[].{ name: name, loc: locationName }'" },
145
+ { description: "Filter by name.", command: "<%= config.bin %> <%= command.id %> -q \"[?name == 'my-cluster-on-aws']\"" },
146
+ { description: "Show name and location, sorted by location.", command: "<%= config.bin %> <%= command.id %> -q \"[].{ name: name, loc: locationName } | sort_by(@, &loc)\"" },
147
+ { description: "Export as YAML.", command: "<%= config.bin %> <%= command.id %> -o yaml" },
148
+ { description: "Non-interactive invocation.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise --silent" },
149
+ { description: "Renders the equivalent silent command without executing.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise --to-script" },
154
150
  ];
155
151
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/noc/cluster/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/noc/cluster/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Command } from '@oclif/core';
2
+ import { RootMap } from '../../../apis/codiac-api/contracts';
3
+ import { CommandBaseExecTenant } from '../../../command-base-exec-tenant';
4
+ import { InteractionModes } from '../../../uilogic/config-ui-utils';
5
+ type ClusterRestoreCandidate = {
6
+ clusterName: string;
7
+ skipProvision: boolean;
8
+ skipAgent: boolean;
9
+ skipInfrx: boolean;
10
+ skipCabinets: boolean;
11
+ enterprise?: string;
12
+ };
13
+ export default class NocClusterRestore extends CommandBaseExecTenant<ClusterRestoreCandidate> {
14
+ static description: string;
15
+ static aliases: string[];
16
+ static flags: {
17
+ 'no-provision': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
+ 'no-agent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
19
+ 'no-infrx': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
+ 'no-cabinets': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
21
+ enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
22
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
23
+ echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
24
+ 'to-script': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
25
+ };
26
+ static args: {
27
+ name: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
28
+ };
29
+ static examples: Command.Example[];
30
+ captureArgs(): Promise<[Partial<ClusterRestoreCandidate>, InteractionModes | undefined, boolean]>;
31
+ buildCandidate_silently(partial: Partial<ClusterRestoreCandidate>, _rootMap: RootMap): Promise<ClusterRestoreCandidate | undefined>;
32
+ buildCandidate_interactively(partial: Partial<ClusterRestoreCandidate>, _takeDefaults: boolean, rootMap: RootMap): Promise<ClusterRestoreCandidate | undefined>;
33
+ buildCommandString(candidate: ClusterRestoreCandidate, cmd: string[]): string[];
34
+ executeTask(candidate: ClusterRestoreCandidate): Promise<void>;
35
+ }
36
+ export {};
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const command_base_exec_tenant_1 = require("../../../command-base-exec-tenant");
6
+ const config_ui_utils_1 = require("../../../uilogic/config-ui-utils");
7
+ class NocClusterRestore extends command_base_exec_tenant_1.CommandBaseExecTenant {
8
+ captureArgs() {
9
+ var _a, _b;
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ const { args, flags } = yield this.parse(NocClusterRestore);
12
+ const interactionMode = (this.pipedInput) ? config_ui_utils_1.InteractionModes.silent : (_b = (_a = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_1.InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags['to-script'] ? config_ui_utils_1.InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? config_ui_utils_1.InteractionModes.silent : undefined);
13
+ const partial = {
14
+ clusterName: args.name,
15
+ skipProvision: flags['no-provision'],
16
+ skipAgent: flags['no-agent'],
17
+ skipInfrx: flags['no-infrx'],
18
+ skipCabinets: flags['no-cabinets'],
19
+ enterprise: flags.enterprise,
20
+ };
21
+ return [partial, interactionMode, false];
22
+ });
23
+ }
24
+ buildCandidate_silently(partial, _rootMap) {
25
+ var _a, _b, _c, _d, _e;
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ if (!partial.clusterName)
28
+ throw new Error('Cluster name argument is required in silent mode.');
29
+ const found = yield this._codiacApi.ClusterDef.tryReadMany({
30
+ name: { $eq: partial.clusterName },
31
+ privateOwner: this._userCntx.currentTenantCode,
32
+ });
33
+ if (found.error)
34
+ throw found.error;
35
+ if (!((_a = found.output) === null || _a === void 0 ? void 0 : _a.length))
36
+ throw new Error(`No cluster exists named [${partial.clusterName}].`);
37
+ return {
38
+ clusterName: partial.clusterName,
39
+ skipProvision: (_b = partial.skipProvision) !== null && _b !== void 0 ? _b : false,
40
+ skipAgent: (_c = partial.skipAgent) !== null && _c !== void 0 ? _c : false,
41
+ skipInfrx: (_d = partial.skipInfrx) !== null && _d !== void 0 ? _d : false,
42
+ skipCabinets: (_e = partial.skipCabinets) !== null && _e !== void 0 ? _e : false,
43
+ enterprise: partial.enterprise,
44
+ };
45
+ });
46
+ }
47
+ buildCandidate_interactively(partial, _takeDefaults, rootMap) {
48
+ var _a, _b;
49
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
50
+ const { flags } = yield this.parse(NocClusterRestore);
51
+ // Select cluster
52
+ let clusterName = partial.clusterName;
53
+ if (!clusterName) {
54
+ const clusters = (_a = rootMap.clusters) !== null && _a !== void 0 ? _a : [];
55
+ if (clusters.length === 0) {
56
+ this._ui.userMessage('No clusters are available to restore.');
57
+ return undefined;
58
+ }
59
+ const choices = clusters.map(c => ({ name: c.name, value: c.name }));
60
+ clusterName = (yield this._ui.promptSelect('cluster', 'Select cluster to restore:', choices, false, false));
61
+ }
62
+ // Load ClusterDef to check isCaptured
63
+ const found = yield this._codiacApi.ClusterDef.tryReadMany({
64
+ name: { $eq: clusterName },
65
+ privateOwner: this._userCntx.currentTenantCode,
66
+ });
67
+ if (found.error)
68
+ throw found.error;
69
+ const clusterDef = (_b = found.output) === null || _b === void 0 ? void 0 : _b[0];
70
+ if (!clusterDef) {
71
+ this._ui.userMessage(`Cluster [${clusterName}] was not found.`);
72
+ return undefined;
73
+ }
74
+ // Warn if captured cluster
75
+ if (clusterDef.isCaptured) {
76
+ this._ui.userMessage(this._styler.colorWarning(`Warning: [${clusterName}] is a captured cluster. Its lifecycle may be managed externally. ` +
77
+ `Restoring it here could conflict with its source environment.`));
78
+ const proceed = yield this._ui.promptConfirm('confirmCaptured', 'Proceed anyway?', false);
79
+ if (!proceed)
80
+ return undefined;
81
+ }
82
+ // Warn if cluster already has a live instance and provision is not being skipped
83
+ if (clusterDef.instance && !flags['no-provision']) {
84
+ this._ui.userMessage(this._styler.colorWarning(`Warning: [${clusterName}] already has a running instance. ` +
85
+ `Restoring requires destroying it first (\`cod cluster destroy ${clusterName}\`). ` +
86
+ `To re-run bootstrap only on the existing cluster, use --no-provision.`));
87
+ const proceed = yield this._ui.promptConfirm('confirmInstance', 'Continue anyway?', false);
88
+ if (!proceed)
89
+ return undefined;
90
+ }
91
+ return {
92
+ clusterName,
93
+ skipProvision: flags['no-provision'],
94
+ skipAgent: flags['no-agent'],
95
+ skipInfrx: flags['no-infrx'],
96
+ skipCabinets: flags['no-cabinets'],
97
+ enterprise: flags.enterprise,
98
+ };
99
+ });
100
+ }
101
+ buildCommandString(candidate, cmd) {
102
+ cmd.push(candidate.clusterName);
103
+ if (candidate.skipProvision)
104
+ cmd.push('--no-provision');
105
+ if (candidate.skipAgent)
106
+ cmd.push('--no-agent');
107
+ if (candidate.skipInfrx)
108
+ cmd.push('--no-infrx');
109
+ if (candidate.skipCabinets)
110
+ cmd.push('--no-cabinets');
111
+ if (candidate.enterprise)
112
+ cmd.push('--enterprise', candidate.enterprise);
113
+ cmd.push('--silent');
114
+ return cmd;
115
+ }
116
+ executeTask(candidate) {
117
+ var _a, _b, _c;
118
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
119
+ const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => this.genRelayClient.Call.clusterRestoreAsync({
120
+ clusterName: candidate.clusterName,
121
+ skipProvision: candidate.skipProvision || undefined,
122
+ skipAgent: candidate.skipAgent || undefined,
123
+ skipInfrx: candidate.skipInfrx || undefined,
124
+ skipCabinets: candidate.skipCabinets || undefined,
125
+ enterprise: candidate.enterprise,
126
+ socketId,
127
+ correlationId,
128
+ }));
129
+ if (result.error) {
130
+ const msg = `Error restoring cluster [${candidate.clusterName}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ''} ${(_b = result.error.message) !== null && _b !== void 0 ? _b : ''}`.trimEnd();
131
+ this.logger.error(msg, result.error);
132
+ this._ui.userMessage(`${this._styler.colorCritical('ERROR!')} ${msg}`);
133
+ }
134
+ else if (!result.success) {
135
+ const msg = `Restore failed for cluster [${candidate.clusterName}]: ${(_c = result.message) !== null && _c !== void 0 ? _c : ''}`.trimEnd();
136
+ this.logger.notice(msg, result);
137
+ this._ui.userMessage(`${this._styler.colorCritical('FAILED!')} ${msg}`);
138
+ }
139
+ else {
140
+ this._ui.userMessage(`${this._styler.colorGood('SUCCESS!')} Restore complete for cluster [${this._styler.hilite(candidate.clusterName)}].`);
141
+ }
142
+ });
143
+ }
144
+ }
145
+ exports.default = NocClusterRestore;
146
+ NocClusterRestore.description = 'Restores a cluster to fully operational state from its existing ClusterDef: ' +
147
+ 'provisions cloud infrastructure, installs the Codiac agent, installs infrx stacks, ' +
148
+ 'and restores all SDLC cabinets. Pass --no-provision to re-run bootstrap only on an ' +
149
+ 'already-provisioned cluster.';
150
+ NocClusterRestore.aliases = ['cluster:restore'];
151
+ NocClusterRestore.flags = {
152
+ 'no-provision': core_1.Flags.boolean({
153
+ default: false,
154
+ description: 'Skip cloud infrastructure provisioning. The cluster must already have a live instance. Use this to re-run bootstrap on an existing cluster.',
155
+ }),
156
+ 'no-agent': core_1.Flags.boolean({
157
+ default: false,
158
+ description: 'Skip Codiac agent installation. Also skips infrx and cabinet restore.',
159
+ }),
160
+ 'no-infrx': core_1.Flags.boolean({
161
+ default: false,
162
+ description: 'Skip infrx stack installation. Also skips cabinet restore.',
163
+ }),
164
+ 'no-cabinets': core_1.Flags.boolean({
165
+ default: false,
166
+ description: 'Skip SDLC cabinet restore. Provision, agent, and infrx still run.',
167
+ }),
168
+ enterprise: core_1.Flags.string({
169
+ char: 'e',
170
+ description: 'Scope cabinet restore to a specific enterprise. When omitted, all enterprises are restored.',
171
+ }),
172
+ silent: core_1.Flags.boolean({
173
+ exclusive: ['echo', 'to-script'],
174
+ description: 'Non-interactive mode; executes without any user interaction and fails on any missing or invalid arguments.',
175
+ }),
176
+ echo: core_1.Flags.boolean({
177
+ exclusive: ['to-script', 'silent'],
178
+ description: 'Echo interaction mode; renders the equivalent non-interactive command before executing.',
179
+ }),
180
+ 'to-script': core_1.Flags.boolean({
181
+ exclusive: ['echo', 'silent'],
182
+ description: 'Renders the equivalent non-interactive command without executing.',
183
+ }),
184
+ };
185
+ NocClusterRestore.args = {
186
+ name: core_1.Args.string({ description: 'Name of the cluster to restore.' }),
187
+ };
188
+ NocClusterRestore.examples = [
189
+ { description: 'Full restore interactively.', command: '<%= config.bin %> <%= command.id %>' },
190
+ { description: 'Full restore of a specific cluster.', command: '<%= config.bin %> <%= command.id %> prod-cluster-1 --silent' },
191
+ { description: 'Re-run bootstrap only (cluster already provisioned).', command: '<%= config.bin %> <%= command.id %> prod-cluster-1 --no-provision --silent' },
192
+ { description: 'Provision and agent only (skip infrx and cabinets).', command: '<%= config.bin %> <%= command.id %> prod-cluster-1 --no-infrx --no-cabinets --silent' },
193
+ { description: 'Restore scoped to one enterprise.', command: '<%= config.bin %> <%= command.id %> prod-cluster-1 --enterprise acme --silent' },
194
+ { description: 'Render the equivalent silent command without executing.', command: '<%= config.bin %> <%= command.id %> prod-cluster-1 --to-script' },
195
+ ];
196
+ //# sourceMappingURL=restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../src/commands/noc/cluster/restore.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,24 @@
1
- import { CommandBaseEnterprise } from '../command-base-enterprise';
2
- export default class Portal extends CommandBaseEnterprise {
1
+ import { Command } from '@oclif/core';
2
+ import { RootMap } from '../apis/codiac-api/contracts';
3
+ import { CommandBaseExecTenant } from '../command-base-exec-tenant';
4
+ import { InteractionModes } from '../uilogic/config-ui-utils';
5
+ type PortalRequest = {
6
+ _?: never;
7
+ };
8
+ export default class Portal extends CommandBaseExecTenant<PortalRequest> {
3
9
  static description: string;
4
- static flags: {};
10
+ static flags: {
11
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
12
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ "to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ };
5
16
  static args: {};
6
- run(): Promise<void>;
7
- private failed;
17
+ static examples: Command.Example[];
18
+ captureArgs(): Promise<[Partial<PortalRequest>, InteractionModes | undefined, boolean]>;
19
+ buildCandidate_silently(partial: Partial<PortalRequest>, rootMap: RootMap): Promise<PortalRequest | undefined>;
20
+ buildCandidate_interactively(partial: Partial<PortalRequest>, takeDefaults: boolean, rootMap: RootMap): Promise<PortalRequest | undefined>;
21
+ buildCommandString(candidate: PortalRequest, cmd: string[]): string[];
22
+ executeTask(candidate: PortalRequest): Promise<void>;
8
23
  }
24
+ export {};