@codiac.io/codiac-cli 1.3.196 → 1.3.201

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.
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPvcFileStore = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@oclif/core");
6
+ const YAML = require("yaml");
7
+ const _ = require("lodash");
8
+ const contracts_1 = require("../../apis/codiac-api/contracts");
9
+ const command_base_exec_1 = require("../../command-base-exec");
10
+ const prettify_1 = require("../../prettify");
11
+ const output_format_enum_1 = require("../../cli-entities/output-format-enum");
12
+ const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
13
+ const list_1 = require("../filestore/list");
14
+ /** FileStoreDef types whose volume access semantics REQUIRE a PVC. Mirrors
15
+ * K8sFileStoreRouter.PVC_NATIVE_TYPES on the relay side. */
16
+ const PVC_NATIVE_TYPES = new Set([
17
+ contracts_1.FileStoreTypeEnum.azureDisk,
18
+ contracts_1.FileStoreTypeEnum.azureBlobStorage,
19
+ contracts_1.FileStoreTypeEnum.azureNetAppFiles,
20
+ contracts_1.FileStoreTypeEnum.awsEbs,
21
+ ]);
22
+ /** Returns true when the FileStoreDef is provisioned via PersistentVolumeClaim
23
+ * (vs the legacy inline CSI path). Mirrors K8sFileStoreRouter.isPvcFilestore on
24
+ * the relay side. */
25
+ function isPvcFileStore(fs) {
26
+ var _a;
27
+ if (PVC_NATIVE_TYPES.has(fs.type))
28
+ return true;
29
+ if (fs.storageClass)
30
+ return true;
31
+ if (fs.volumeName)
32
+ return true;
33
+ if (fs.storageRequest)
34
+ return true;
35
+ if (fs.accessModes && fs.accessModes.length > 0)
36
+ return true;
37
+ // Legacy POC convention: AzureFileStorage with shareName starting "pvc-".
38
+ if (fs.type === contracts_1.FileStoreTypeEnum.azureFileStorage && ((_a = fs.shareName) === null || _a === void 0 ? void 0 : _a.startsWith('pvc-')))
39
+ return true;
40
+ return false;
41
+ }
42
+ exports.isPvcFileStore = isPvcFileStore;
43
+ class PvcList extends command_base_exec_1.CommandBaseExec {
44
+ captureArgs() {
45
+ var _a;
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const { flags } = yield this.parse(PvcList);
48
+ const partial = {};
49
+ if (flags.enterprise)
50
+ partial.enterprise = flags.enterprise;
51
+ if (flags.type)
52
+ partial.type = type_safety_utils_1.TypeSafetyUtils.toEnum(contracts_1.FileStoreTypeEnum, flags.type);
53
+ if (flags.output)
54
+ partial.outputFormat = type_safety_utils_1.TypeSafetyUtils.toEnum(output_format_enum_1.OutputFormatEnum, flags.output);
55
+ const takeDefaults = (_a = flags['take-defaults']) !== null && _a !== void 0 ? _a : false;
56
+ return [partial, takeDefaults];
57
+ });
58
+ }
59
+ buildCandidate_silently(partial, rootMap) {
60
+ var _a;
61
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ const candidate = {
63
+ enterprise: partial.enterprise,
64
+ outputFormat: (_a = partial.outputFormat) !== null && _a !== void 0 ? _a : output_format_enum_1.OutputFormatEnum.auto,
65
+ };
66
+ if (partial.type)
67
+ candidate.type = partial.type;
68
+ if (!candidate.type)
69
+ candidate.all = true;
70
+ return candidate;
71
+ });
72
+ }
73
+ buildCandidate_interactively(partial, rootMap, takeDefaults) {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ return this.buildCandidate_silently(partial, rootMap);
76
+ });
77
+ }
78
+ buildCommandString(candidate, cmd) {
79
+ if (candidate.type)
80
+ cmd.push("--type", candidate.type.toString());
81
+ if (candidate.outputFormat)
82
+ cmd.push("-o", candidate.outputFormat);
83
+ cmd.push("--silent");
84
+ return cmd;
85
+ }
86
+ executeTask(candidate) {
87
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
88
+ const req = Object.assign({}, _.omit(candidate, "enterprise", "outputFormat"));
89
+ const list = yield this._codiacApi.FileStoreDef.readMany(req);
90
+ // The criteria DSL doesn't express "is PVC-backed" cleanly, so filter client-side
91
+ // using the same predicate the relay router uses to route between PVC and inline CSI.
92
+ const pvcOnly = list.filter(isPvcFileStore);
93
+ const output = this.renderAs(pvcOnly, candidate.outputFormat, entity => list_1.FileStoreUiLogic.displayNameFor(entity, this._styler));
94
+ console.log(output);
95
+ });
96
+ }
97
+ renderAs(list, format, textFormatter) {
98
+ let output = "";
99
+ switch (format) {
100
+ case output_format_enum_1.OutputFormatEnum.json:
101
+ output = JSON.stringify(list, undefined, 2);
102
+ break;
103
+ case output_format_enum_1.OutputFormatEnum.yaml:
104
+ output = YAML.stringify(list, { indent: 2 });
105
+ break;
106
+ case output_format_enum_1.OutputFormatEnum.pretty:
107
+ case output_format_enum_1.OutputFormatEnum.auto:
108
+ default:
109
+ if (list.length > 0) {
110
+ output = textFormatter ? list.map(x => textFormatter(x)).join("\n") : (0, prettify_1.prettify)(list);
111
+ }
112
+ else {
113
+ output = "None found.";
114
+ }
115
+ break;
116
+ }
117
+ return output;
118
+ }
119
+ }
120
+ exports.default = PvcList;
121
+ PvcList.description = 'Lists the PersistentVolumeClaim-backed filestore definitions for a given enterprise.';
122
+ PvcList.aliases = ['pvc:list'];
123
+ PvcList.examples = [
124
+ '<%= config.bin %> <%= command.id %>',
125
+ '<%= config.bin %> <%= command.id %> --type AzureBlobStorage',
126
+ '<%= config.bin %> <%= command.id %> -o yaml',
127
+ ];
128
+ PvcList.flags = {
129
+ help: core_1.Flags.help({ char: 'h' }),
130
+ enterprise: core_1.Flags.string({ char: 'e', description: 'Code name identifying the enterprise (optional if there is only one).' }),
131
+ type: core_1.Flags.string({ char: 't', options: Object.values(contracts_1.FileStoreTypeEnum), required: false, description: 'Filter on the storage technology backing the PVC.' }),
132
+ output: core_1.Flags.string({ char: 'o', default: output_format_enum_1.OutputFormatEnum.auto, description: 'Format in which to render the data.', options: [output_format_enum_1.OutputFormatEnum.json, output_format_enum_1.OutputFormatEnum.yaml, output_format_enum_1.OutputFormatEnum.auto] }),
133
+ silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.' }),
134
+ echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.' }),
135
+ "to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.' }),
136
+ "take-defaults": core_1.Flags.boolean({ exclusive: ["silent"], description: "Setting this to true prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode)." }),
137
+ };
138
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/pvc/list.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ const entities_1 = require("../ops/entities");
18
18
  // Configuration defaults
19
19
  const DEFAULT_CONFIG = {
20
20
  IMAGE_NAME: "codiacimages/codiac-relay",
21
- IMAGE_TAG: "1.6.149",
21
+ IMAGE_TAG: "1.6.150",
22
22
  CONTAINER_NAME: "codiac-relay",
23
23
  HEALTH_CHECK_URL: "http://localhost:5799/heartbeat-json",
24
24
  RETRY_TIMEOUT_MINUTES: 1,
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.196",
2
+ "version": "1.3.201",
3
3
  "commands": {
4
4
  "branch": {
5
5
  "id": "branch",
@@ -6712,6 +6712,7 @@
6712
6712
  "AzureBlobStorage",
6713
6713
  "AzureDisk",
6714
6714
  "AzureFileStorage",
6715
+ "AzureNetAppFiles",
6715
6716
  "HostMachineFolder"
6716
6717
  ]
6717
6718
  },
@@ -8036,6 +8037,496 @@
8036
8037
  }
8037
8038
  }
8038
8039
  },
8040
+ "pvc:create": {
8041
+ "id": "pvc:create",
8042
+ "description": "Defines a new PersistentVolumeClaim-backed filestore for the given enterprise. The filestore is realized as a PVC in the target cabinet at deploy time, using either a Kubernetes StorageClass for dynamic provisioning or a pre-existing PersistentVolume for static binding.",
8043
+ "strict": true,
8044
+ "pluginName": "@codiac.io/codiac-cli",
8045
+ "pluginAlias": "@codiac.io/codiac-cli",
8046
+ "pluginType": "core",
8047
+ "aliases": [
8048
+ "pvc:create"
8049
+ ],
8050
+ "hiddenAliases": [],
8051
+ "examples": [
8052
+ {
8053
+ "description": "Azure File share, dynamic provisioning, default size.",
8054
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name shared-files --type AzureFileStorage"
8055
+ },
8056
+ {
8057
+ "description": "Azure Disk per-asset (block storage), 50Gi.",
8058
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name app-disk --type AzureDisk --size 50Gi"
8059
+ },
8060
+ {
8061
+ "description": "Azure Blob (fuse), 100Gi, statically bound to a pre-existing PV.",
8062
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name pvc-blob --type AzureBlobStorage --size 100Gi --volume-name pv-blob-ingestion"
8063
+ },
8064
+ {
8065
+ "description": "Azure NetApp Files, statically bound, 700Gi.",
8066
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name pvc-nfs41-document-vault --type AzureNetAppFiles --size 700Gi --volume-name pv-nfs41-document-vault"
8067
+ },
8068
+ {
8069
+ "description": "Override the default storage class (e.g., the in-tree azurefile class) on a non-prefixed PVC name.",
8070
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name app-documents-share --type AzureFileStorage --size 700Gi --storage-class azurefile --access-modes ReadWriteMany"
8071
+ },
8072
+ {
8073
+ "description": "Non-interactive (scripted) invocation.",
8074
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name shared-files --type AzureFileStorage --silent"
8075
+ },
8076
+ {
8077
+ "description": "Renders the equivalent silent command and then executes.",
8078
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name shared-files --type AzureFileStorage --echo"
8079
+ }
8080
+ ],
8081
+ "flags": {
8082
+ "help": {
8083
+ "name": "help",
8084
+ "type": "boolean",
8085
+ "char": "h",
8086
+ "description": "Show CLI help.",
8087
+ "allowNo": false
8088
+ },
8089
+ "enterprise": {
8090
+ "name": "enterprise",
8091
+ "type": "option",
8092
+ "char": "e",
8093
+ "description": "Code name identifying the enterprise that will own this filestore reference.",
8094
+ "required": false,
8095
+ "multiple": false
8096
+ },
8097
+ "name": {
8098
+ "name": "name",
8099
+ "type": "option",
8100
+ "char": "n",
8101
+ "description": "Name by which this filestore is identified within the enterprise. Used to derive the PVC name.",
8102
+ "required": false,
8103
+ "multiple": false
8104
+ },
8105
+ "provider": {
8106
+ "name": "provider",
8107
+ "type": "option",
8108
+ "description": "Cloud provider hosting the underlying storage (defaults to azure; only Azure is supported at this time).",
8109
+ "required": false,
8110
+ "multiple": false,
8111
+ "options": [
8112
+ "artifactHub",
8113
+ "aws",
8114
+ "azure",
8115
+ "dockerHub",
8116
+ "localMachine",
8117
+ "other"
8118
+ ]
8119
+ },
8120
+ "type": {
8121
+ "name": "type",
8122
+ "type": "option",
8123
+ "char": "t",
8124
+ "description": "Storage technology backing the PVC (defaults to AzureFileStorage).",
8125
+ "required": false,
8126
+ "multiple": false,
8127
+ "options": [
8128
+ "AzureFileStorage",
8129
+ "AzureDisk",
8130
+ "AzureBlobStorage",
8131
+ "AzureNetAppFiles"
8132
+ ]
8133
+ },
8134
+ "share-name": {
8135
+ "name": "share-name",
8136
+ "type": "option",
8137
+ "description": "Underlying physical share name (used by the legacy AzureFileStorage path; ignored for native PVC types). Defaults to the value of --name.",
8138
+ "required": false,
8139
+ "multiple": false
8140
+ },
8141
+ "storage-class": {
8142
+ "name": "storage-class",
8143
+ "type": "option",
8144
+ "description": "Kubernetes StorageClass to bind to (e.g. 'azurefile', 'azureblob-fuse-premium', 'azure-netapp-files', 'managed-csi'). Defaults to a sensible per-type class when omitted.",
8145
+ "required": false,
8146
+ "multiple": false
8147
+ },
8148
+ "access-modes": {
8149
+ "name": "access-modes",
8150
+ "type": "option",
8151
+ "description": "Comma-separated PVC access modes (e.g. 'ReadWriteMany' or 'ReadWriteOnce,ReadOnlyMany'). Defaults to RWO for block storage, RWM for file/object/NAS storage. Allowed values: ReadWriteOnce, ReadOnlyMany, ReadWriteMany, ReadWriteOncePod.",
8152
+ "required": false,
8153
+ "multiple": false
8154
+ },
8155
+ "size": {
8156
+ "name": "size",
8157
+ "type": "option",
8158
+ "description": "Storage capacity request as a Kubernetes quantity (e.g. '5Gi', '100Gi', '700Gi'). Defaults to 500Mi.",
8159
+ "required": false,
8160
+ "multiple": false
8161
+ },
8162
+ "volume-name": {
8163
+ "name": "volume-name",
8164
+ "type": "option",
8165
+ "description": "Name of a pre-existing PersistentVolume to bind to. When set, the PVC binds statically to that PV instead of triggering dynamic provisioning.",
8166
+ "required": false,
8167
+ "multiple": false
8168
+ },
8169
+ "silent": {
8170
+ "name": "silent",
8171
+ "type": "boolean",
8172
+ "description": "Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.",
8173
+ "required": false,
8174
+ "allowNo": false,
8175
+ "dependsOn": [
8176
+ "enterprise",
8177
+ "name"
8178
+ ],
8179
+ "exclusive": [
8180
+ "echo",
8181
+ "to-script"
8182
+ ]
8183
+ },
8184
+ "echo": {
8185
+ "name": "echo",
8186
+ "type": "boolean",
8187
+ "description": "Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.",
8188
+ "allowNo": false,
8189
+ "exclusive": [
8190
+ "to-script",
8191
+ "silent"
8192
+ ]
8193
+ },
8194
+ "to-script": {
8195
+ "name": "to-script",
8196
+ "type": "boolean",
8197
+ "description": "Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.",
8198
+ "allowNo": false,
8199
+ "exclusive": [
8200
+ "echo",
8201
+ "silent"
8202
+ ]
8203
+ },
8204
+ "take-defaults": {
8205
+ "name": "take-defaults",
8206
+ "type": "boolean",
8207
+ "description": "Setting this to true prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode).",
8208
+ "allowNo": false,
8209
+ "exclusive": [
8210
+ "silent"
8211
+ ]
8212
+ }
8213
+ },
8214
+ "args": {},
8215
+ "dependsOn": [
8216
+ "enterprise",
8217
+ "name"
8218
+ ]
8219
+ },
8220
+ "pvc:delete": {
8221
+ "id": "pvc:delete",
8222
+ "description": "Deletes a PersistentVolumeClaim-backed filestore definition. Removes the FileStoreDef record in Codiac; physical PVCs in cabinets are reaped on the next deploy.",
8223
+ "strict": true,
8224
+ "pluginName": "@codiac.io/codiac-cli",
8225
+ "pluginAlias": "@codiac.io/codiac-cli",
8226
+ "pluginType": "core",
8227
+ "aliases": [
8228
+ "pvc:delete"
8229
+ ],
8230
+ "hiddenAliases": [],
8231
+ "examples": [
8232
+ {
8233
+ "description": "Delete by name (interactive enterprise resolution).",
8234
+ "command": "<%= config.bin %> <%= command.id %> --name shared-files"
8235
+ },
8236
+ {
8237
+ "description": "Delete by name in a specific enterprise.",
8238
+ "command": "<%= config.bin %> <%= command.id %> -e myEnt --name shared-files --silent"
8239
+ },
8240
+ {
8241
+ "description": "Delete by id (when name is ambiguous).",
8242
+ "command": "<%= config.bin %> <%= command.id %> --id <fileStoreDefId> --silent"
8243
+ }
8244
+ ],
8245
+ "flags": {
8246
+ "help": {
8247
+ "name": "help",
8248
+ "type": "boolean",
8249
+ "char": "h",
8250
+ "description": "Show CLI help.",
8251
+ "allowNo": false
8252
+ },
8253
+ "enterprise": {
8254
+ "name": "enterprise",
8255
+ "type": "option",
8256
+ "char": "e",
8257
+ "description": "Code name identifying the enterprise that owns this filestore (optional if there is only one).",
8258
+ "multiple": false
8259
+ },
8260
+ "name": {
8261
+ "name": "name",
8262
+ "type": "option",
8263
+ "char": "n",
8264
+ "description": "Name of the PVC filestore to delete.",
8265
+ "required": false,
8266
+ "multiple": false,
8267
+ "exclusive": [
8268
+ "id"
8269
+ ]
8270
+ },
8271
+ "id": {
8272
+ "name": "id",
8273
+ "type": "option",
8274
+ "description": "System id of the FileStoreDef record. Use this when --name is ambiguous.",
8275
+ "required": false,
8276
+ "multiple": false,
8277
+ "exclusive": [
8278
+ "name"
8279
+ ]
8280
+ },
8281
+ "silent": {
8282
+ "name": "silent",
8283
+ "type": "boolean",
8284
+ "description": "Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.",
8285
+ "allowNo": false,
8286
+ "exclusive": [
8287
+ "echo",
8288
+ "to-script"
8289
+ ]
8290
+ },
8291
+ "echo": {
8292
+ "name": "echo",
8293
+ "type": "boolean",
8294
+ "description": "Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.",
8295
+ "allowNo": false,
8296
+ "exclusive": [
8297
+ "to-script",
8298
+ "silent"
8299
+ ]
8300
+ },
8301
+ "to-script": {
8302
+ "name": "to-script",
8303
+ "type": "boolean",
8304
+ "description": "Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.",
8305
+ "allowNo": false,
8306
+ "exclusive": [
8307
+ "echo",
8308
+ "silent"
8309
+ ]
8310
+ },
8311
+ "take-defaults": {
8312
+ "name": "take-defaults",
8313
+ "type": "boolean",
8314
+ "description": "Setting this to true prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode).",
8315
+ "allowNo": false,
8316
+ "exclusive": [
8317
+ "silent"
8318
+ ]
8319
+ }
8320
+ },
8321
+ "args": {}
8322
+ },
8323
+ "pvc:get": {
8324
+ "id": "pvc:get",
8325
+ "description": "Renders the FileStoreDef record for a single PVC-backed filestore. Useful for inspecting how a PVC will be provisioned (storage class, access modes, size, static vs dynamic binding).",
8326
+ "strict": true,
8327
+ "pluginName": "@codiac.io/codiac-cli",
8328
+ "pluginAlias": "@codiac.io/codiac-cli",
8329
+ "pluginType": "core",
8330
+ "aliases": [
8331
+ "pvc:get"
8332
+ ],
8333
+ "hiddenAliases": [],
8334
+ "examples": [
8335
+ "<%= config.bin %> <%= command.id %> --name shared-files",
8336
+ "<%= config.bin %> <%= command.id %> --name pvc-blob -o yaml",
8337
+ "<%= config.bin %> <%= command.id %> --name app-documents-share --silent -o json"
8338
+ ],
8339
+ "flags": {
8340
+ "help": {
8341
+ "name": "help",
8342
+ "type": "boolean",
8343
+ "char": "h",
8344
+ "description": "Show CLI help.",
8345
+ "allowNo": false
8346
+ },
8347
+ "enterprise": {
8348
+ "name": "enterprise",
8349
+ "type": "option",
8350
+ "char": "e",
8351
+ "description": "Code name identifying the enterprise (optional if there is only one).",
8352
+ "required": false,
8353
+ "multiple": false
8354
+ },
8355
+ "name": {
8356
+ "name": "name",
8357
+ "type": "option",
8358
+ "char": "n",
8359
+ "description": "Name of the PVC filestore to look up.",
8360
+ "required": false,
8361
+ "multiple": false
8362
+ },
8363
+ "output": {
8364
+ "name": "output",
8365
+ "type": "option",
8366
+ "char": "o",
8367
+ "description": "Format in which to render the data.",
8368
+ "multiple": false,
8369
+ "options": [
8370
+ "json",
8371
+ "yaml",
8372
+ "auto"
8373
+ ],
8374
+ "default": "auto"
8375
+ },
8376
+ "silent": {
8377
+ "name": "silent",
8378
+ "type": "boolean",
8379
+ "description": "Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.",
8380
+ "allowNo": false,
8381
+ "dependsOn": [
8382
+ "enterprise",
8383
+ "name"
8384
+ ],
8385
+ "exclusive": [
8386
+ "echo",
8387
+ "to-script"
8388
+ ]
8389
+ },
8390
+ "echo": {
8391
+ "name": "echo",
8392
+ "type": "boolean",
8393
+ "description": "Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.",
8394
+ "allowNo": false,
8395
+ "exclusive": [
8396
+ "to-script",
8397
+ "silent"
8398
+ ]
8399
+ },
8400
+ "to-script": {
8401
+ "name": "to-script",
8402
+ "type": "boolean",
8403
+ "description": "Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.",
8404
+ "allowNo": false,
8405
+ "exclusive": [
8406
+ "echo",
8407
+ "silent"
8408
+ ]
8409
+ },
8410
+ "take-defaults": {
8411
+ "name": "take-defaults",
8412
+ "type": "boolean",
8413
+ "description": "Setting this to true prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode).",
8414
+ "allowNo": false,
8415
+ "exclusive": [
8416
+ "silent"
8417
+ ]
8418
+ }
8419
+ },
8420
+ "args": {},
8421
+ "dependsOn": [
8422
+ "enterprise",
8423
+ "name"
8424
+ ]
8425
+ },
8426
+ "pvc:list": {
8427
+ "id": "pvc:list",
8428
+ "description": "Lists the PersistentVolumeClaim-backed filestore definitions for a given enterprise.",
8429
+ "strict": true,
8430
+ "pluginName": "@codiac.io/codiac-cli",
8431
+ "pluginAlias": "@codiac.io/codiac-cli",
8432
+ "pluginType": "core",
8433
+ "aliases": [
8434
+ "pvc:list"
8435
+ ],
8436
+ "hiddenAliases": [],
8437
+ "examples": [
8438
+ "<%= config.bin %> <%= command.id %>",
8439
+ "<%= config.bin %> <%= command.id %> --type AzureBlobStorage",
8440
+ "<%= config.bin %> <%= command.id %> -o yaml"
8441
+ ],
8442
+ "flags": {
8443
+ "help": {
8444
+ "name": "help",
8445
+ "type": "boolean",
8446
+ "char": "h",
8447
+ "description": "Show CLI help.",
8448
+ "allowNo": false
8449
+ },
8450
+ "enterprise": {
8451
+ "name": "enterprise",
8452
+ "type": "option",
8453
+ "char": "e",
8454
+ "description": "Code name identifying the enterprise (optional if there is only one).",
8455
+ "multiple": false
8456
+ },
8457
+ "type": {
8458
+ "name": "type",
8459
+ "type": "option",
8460
+ "char": "t",
8461
+ "description": "Filter on the storage technology backing the PVC.",
8462
+ "required": false,
8463
+ "multiple": false,
8464
+ "options": [
8465
+ "AwsEbs",
8466
+ "AwsEfs",
8467
+ "AwsS3Bucket",
8468
+ "AzureBlobStorage",
8469
+ "AzureDisk",
8470
+ "AzureFileStorage",
8471
+ "AzureNetAppFiles",
8472
+ "HostMachineFolder"
8473
+ ]
8474
+ },
8475
+ "output": {
8476
+ "name": "output",
8477
+ "type": "option",
8478
+ "char": "o",
8479
+ "description": "Format in which to render the data.",
8480
+ "multiple": false,
8481
+ "options": [
8482
+ "json",
8483
+ "yaml",
8484
+ "auto"
8485
+ ],
8486
+ "default": "auto"
8487
+ },
8488
+ "silent": {
8489
+ "name": "silent",
8490
+ "type": "boolean",
8491
+ "description": "Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.",
8492
+ "allowNo": false,
8493
+ "exclusive": [
8494
+ "echo",
8495
+ "to-script"
8496
+ ]
8497
+ },
8498
+ "echo": {
8499
+ "name": "echo",
8500
+ "type": "boolean",
8501
+ "description": "Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.",
8502
+ "allowNo": false,
8503
+ "exclusive": [
8504
+ "to-script",
8505
+ "silent"
8506
+ ]
8507
+ },
8508
+ "to-script": {
8509
+ "name": "to-script",
8510
+ "type": "boolean",
8511
+ "description": "Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.",
8512
+ "allowNo": false,
8513
+ "exclusive": [
8514
+ "echo",
8515
+ "silent"
8516
+ ]
8517
+ },
8518
+ "take-defaults": {
8519
+ "name": "take-defaults",
8520
+ "type": "boolean",
8521
+ "description": "Setting this to true prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode).",
8522
+ "allowNo": false,
8523
+ "exclusive": [
8524
+ "silent"
8525
+ ]
8526
+ }
8527
+ },
8528
+ "args": {}
8529
+ },
8039
8530
  "secretStore:capture": {
8040
8531
  "id": "secretStore:capture",
8041
8532
  "description": "Upserts a reference to an existing secretStore.",