@aws/ml-container-creator 0.9.1 → 0.10.0

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 (32) hide show
  1. package/config/parameter-schema-v2.json +2065 -0
  2. package/package.json +4 -4
  3. package/servers/lib/catalogs/jumpstart-public.json +101 -16
  4. package/servers/lib/catalogs/models.json +182 -26
  5. package/src/app.js +1 -389
  6. package/src/lib/bootstrap-command-handler.js +75 -1078
  7. package/src/lib/bootstrap-profile-manager.js +634 -0
  8. package/src/lib/bootstrap-provisioners.js +421 -0
  9. package/src/lib/config-loader.js +405 -0
  10. package/src/lib/config-manager.js +59 -1685
  11. package/src/lib/config-mcp-client.js +118 -0
  12. package/src/lib/config-validator.js +634 -0
  13. package/src/lib/cuda-resolver.js +140 -0
  14. package/src/lib/e2e-catalog-validator.js +251 -3
  15. package/src/lib/e2e-ci-recorder.js +103 -0
  16. package/src/lib/generated/cli-options.js +8 -4
  17. package/src/lib/generated/parameter-matrix.js +671 -0
  18. package/src/lib/generated/validation-rules.js +2 -2
  19. package/src/lib/marketplace-flow.js +276 -0
  20. package/src/lib/mcp-query-runner.js +768 -0
  21. package/src/lib/parameter-schema-validator.js +62 -18
  22. package/src/lib/prompt-runner.js +41 -1504
  23. package/src/lib/prompts/feature-prompts.js +172 -0
  24. package/src/lib/prompts/index.js +48 -0
  25. package/src/lib/prompts/infrastructure-prompts.js +690 -0
  26. package/src/lib/prompts/model-prompts.js +552 -0
  27. package/src/lib/prompts/project-prompts.js +70 -0
  28. package/src/lib/prompts.js +2 -1446
  29. package/src/lib/registry-command-handler.js +135 -3
  30. package/src/lib/secrets-prompt-runner.js +251 -0
  31. package/src/lib/template-variable-resolver.js +398 -0
  32. package/config/parameter-schema.json +0 -88
@@ -0,0 +1,2065 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "schemaVersion": "2.0.0",
4
+ "_comment": "Single source of truth for all MCC parameters. Drives CLI, validation, prompts, widget, and tests.",
5
+ "parameters": {
6
+ "projectName": {
7
+ "type": "string",
8
+ "description": "Name for the generated project",
9
+ "cliFlag": "--project-name",
10
+ "cliArgName": "name",
11
+ "envVar": "ML_PROJECT_NAME",
12
+ "templateVar": "projectName",
13
+ "configKey": "projectName",
14
+ "default": null,
15
+ "validation": {
16
+ "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
17
+ "minLength": 2,
18
+ "maxLength": 63
19
+ },
20
+ "phase": "project",
21
+ "group": "project",
22
+ "appliesTo": {
23
+ "deploymentTargets": [
24
+ "*"
25
+ ],
26
+ "architectures": [
27
+ "*"
28
+ ]
29
+ },
30
+ "widget": {
31
+ "section": "model-server",
32
+ "inputType": "text",
33
+ "placeholder": "my-project"
34
+ },
35
+ "prompt": {
36
+ "message": "Project name?",
37
+ "type": "input"
38
+ },
39
+ "deprecated": false,
40
+ "since": "0.1.0"
41
+ },
42
+ "deploymentConfig": {
43
+ "type": "enum",
44
+ "description": "Deployment configuration (e.g. http-flask, transformers-vllm, triton-fil)",
45
+ "cliFlag": "--deployment-config",
46
+ "cliArgName": "config",
47
+ "envVar": "ML_DEPLOYMENT_CONFIG",
48
+ "templateVar": "deploymentConfig",
49
+ "configKey": "deploymentConfig",
50
+ "default": null,
51
+ "validation": {
52
+ "enum": [
53
+ "http-flask",
54
+ "http-fastapi",
55
+ "transformers-vllm",
56
+ "transformers-sglang",
57
+ "transformers-tensorrt-llm",
58
+ "transformers-lmi",
59
+ "transformers-djl",
60
+ "triton-fil",
61
+ "triton-onnxruntime",
62
+ "triton-tensorflow",
63
+ "triton-pytorch",
64
+ "triton-vllm",
65
+ "triton-tensorrtllm",
66
+ "triton-python",
67
+ "diffusors-vllm-omni",
68
+ "marketplace"
69
+ ]
70
+ },
71
+ "phase": "model",
72
+ "group": "model",
73
+ "appliesTo": {
74
+ "deploymentTargets": [
75
+ "*"
76
+ ],
77
+ "architectures": [
78
+ "*"
79
+ ]
80
+ },
81
+ "widget": {
82
+ "section": "model-server",
83
+ "inputType": "select"
84
+ },
85
+ "prompt": {
86
+ "message": "Deployment configuration?",
87
+ "type": "list"
88
+ },
89
+ "deprecated": false,
90
+ "since": "0.5.0"
91
+ },
92
+ "modelName": {
93
+ "type": "string",
94
+ "description": "Model identifier (hf-org/model, s3://..., registry://..., marketplace://...)",
95
+ "cliFlag": "--model-name",
96
+ "cliArgName": "name",
97
+ "envVar": "ML_MODEL_NAME",
98
+ "templateVar": "modelName",
99
+ "configKey": "modelName",
100
+ "default": null,
101
+ "validation": {
102
+ "minLength": 1
103
+ },
104
+ "phase": "model",
105
+ "group": "model",
106
+ "appliesTo": {
107
+ "deploymentTargets": [
108
+ "*"
109
+ ],
110
+ "architectures": [
111
+ "transformers",
112
+ "diffusors"
113
+ ]
114
+ },
115
+ "widget": {
116
+ "section": "model-server",
117
+ "inputType": "text",
118
+ "datalist": "models",
119
+ "placeholder": "e.g. meta-llama/Llama-3.1-8B-Instruct"
120
+ },
121
+ "prompt": {
122
+ "message": "Model name or path?",
123
+ "type": "input"
124
+ },
125
+ "deprecated": false,
126
+ "since": "0.3.0"
127
+ },
128
+ "deploymentTarget": {
129
+ "type": "enum",
130
+ "description": "Deployment target (managed-inference, async-inference, batch-transform, hyperpod-eks)",
131
+ "cliFlag": "--deployment-target",
132
+ "cliArgName": "target",
133
+ "envVar": "ML_DEPLOYMENT_TARGET",
134
+ "templateVar": "deploymentTarget",
135
+ "configKey": "deploymentTarget",
136
+ "default": "realtime-inference",
137
+ "validation": {
138
+ "enum": [
139
+ "managed-inference",
140
+ "realtime-inference",
141
+ "async-inference",
142
+ "batch-transform",
143
+ "hyperpod-eks"
144
+ ]
145
+ },
146
+ "phase": "infrastructure",
147
+ "group": "infrastructure",
148
+ "appliesTo": {
149
+ "deploymentTargets": [
150
+ "*"
151
+ ],
152
+ "architectures": [
153
+ "*"
154
+ ]
155
+ },
156
+ "widget": {
157
+ "section": "infrastructure",
158
+ "inputType": "select"
159
+ },
160
+ "prompt": {
161
+ "message": "Deployment target?",
162
+ "type": "list"
163
+ },
164
+ "deprecated": false,
165
+ "since": "0.4.0"
166
+ },
167
+ "instanceType": {
168
+ "type": "string",
169
+ "description": "SageMaker instance type (e.g. ml.g5.xlarge, ml.m5.large)",
170
+ "cliFlag": "--instance-type",
171
+ "cliArgName": "type",
172
+ "envVar": "ML_INSTANCE_TYPE",
173
+ "templateVar": "instanceType",
174
+ "configKey": "instanceType",
175
+ "default": null,
176
+ "validation": {
177
+ "pattern": "^ml\\.[a-z0-9]+\\.[a-z0-9]+$"
178
+ },
179
+ "phase": "infrastructure",
180
+ "group": "infrastructure",
181
+ "appliesTo": {
182
+ "deploymentTargets": [
183
+ "managed-inference",
184
+ "async-inference",
185
+ "batch-transform"
186
+ ],
187
+ "architectures": [
188
+ "*"
189
+ ]
190
+ },
191
+ "widget": {
192
+ "section": "infrastructure",
193
+ "inputType": "text",
194
+ "datalist": "instances",
195
+ "placeholder": "e.g. ml.g5.2xlarge"
196
+ },
197
+ "prompt": {
198
+ "message": "Instance type?",
199
+ "type": "input",
200
+ "when": "deploymentTarget !== 'hyperpod-eks'"
201
+ },
202
+ "deprecated": false,
203
+ "since": "0.1.0"
204
+ },
205
+ "icGpuCount": {
206
+ "type": "integer",
207
+ "description": "GPUs allocated to the inference component",
208
+ "cliFlag": "--ic-gpu-count",
209
+ "cliArgName": "n",
210
+ "envVar": "ML_IC_GPU_COUNT",
211
+ "templateVar": "icGpuCount",
212
+ "configKey": "icGpuCount",
213
+ "default": null,
214
+ "validation": {
215
+ "min": 0,
216
+ "max": 8
217
+ },
218
+ "phase": "infrastructure",
219
+ "group": "inference-component",
220
+ "appliesTo": {
221
+ "deploymentTargets": [
222
+ "managed-inference"
223
+ ],
224
+ "architectures": [
225
+ "*"
226
+ ]
227
+ },
228
+ "widget": {
229
+ "section": "infrastructure",
230
+ "inputType": "number",
231
+ "placeholder": "auto"
232
+ },
233
+ "prompt": null,
234
+ "serverMapping": {
235
+ "icConfVar": "IC_GPU_COUNT"
236
+ },
237
+ "deprecated": false,
238
+ "since": "0.4.0"
239
+ },
240
+ "icCopyCount": {
241
+ "type": "integer",
242
+ "description": "Number of inference component copies",
243
+ "cliFlag": "--ic-copy-count",
244
+ "cliArgName": "n",
245
+ "envVar": "ML_IC_COPY_COUNT",
246
+ "templateVar": "icCopyCount",
247
+ "configKey": "icCopyCount",
248
+ "default": 1,
249
+ "validation": {
250
+ "min": 0,
251
+ "max": 100
252
+ },
253
+ "phase": "infrastructure",
254
+ "group": "inference-component",
255
+ "appliesTo": {
256
+ "deploymentTargets": [
257
+ "managed-inference"
258
+ ],
259
+ "architectures": [
260
+ "*"
261
+ ]
262
+ },
263
+ "widget": {
264
+ "section": "infrastructure",
265
+ "inputType": "number",
266
+ "placeholder": "1"
267
+ },
268
+ "prompt": null,
269
+ "serverMapping": {
270
+ "icConfVar": "IC_COPY_COUNT"
271
+ },
272
+ "deprecated": false,
273
+ "since": "0.4.0"
274
+ },
275
+ "icMemorySize": {
276
+ "type": "integer",
277
+ "description": "Memory in MB for the inference component",
278
+ "cliFlag": "--ic-memory-size",
279
+ "cliArgName": "mb",
280
+ "envVar": "ML_IC_MEMORY_SIZE",
281
+ "templateVar": "icMemorySize",
282
+ "configKey": "icMemorySize",
283
+ "default": null,
284
+ "validation": {
285
+ "min": 128,
286
+ "max": 3145728
287
+ },
288
+ "phase": "infrastructure",
289
+ "group": "inference-component",
290
+ "appliesTo": {
291
+ "deploymentTargets": [
292
+ "managed-inference"
293
+ ],
294
+ "architectures": [
295
+ "*"
296
+ ]
297
+ },
298
+ "widget": {
299
+ "section": "infrastructure",
300
+ "inputType": "number",
301
+ "placeholder": "1024"
302
+ },
303
+ "prompt": null,
304
+ "serverMapping": {
305
+ "icConfVar": "IC_MIN_MEMORY_MB"
306
+ },
307
+ "deprecated": false,
308
+ "since": "0.4.0"
309
+ },
310
+ "enableLora": {
311
+ "type": "boolean",
312
+ "description": "Enable LoRA adapter serving",
313
+ "cliFlag": "--enable-lora",
314
+ "cliArgName": null,
315
+ "envVar": "ML_ENABLE_LORA",
316
+ "templateVar": "enableLora",
317
+ "configKey": "enableLora",
318
+ "default": false,
319
+ "validation": {},
320
+ "phase": "features",
321
+ "group": "lora",
322
+ "appliesTo": {
323
+ "deploymentTargets": [
324
+ "managed-inference"
325
+ ],
326
+ "architectures": [
327
+ "transformers"
328
+ ]
329
+ },
330
+ "widget": {
331
+ "section": "features",
332
+ "inputType": "checkbox"
333
+ },
334
+ "prompt": {
335
+ "message": "Enable LoRA adapter serving?",
336
+ "type": "confirm",
337
+ "when": "architecture === 'transformers' && ['vllm','sglang','djl'].includes(modelServer)"
338
+ },
339
+ "serverMapping": {
340
+ "envVar": "VLLM_ENABLE_LORA",
341
+ "booleanFlag": true
342
+ },
343
+ "deprecated": false,
344
+ "since": "0.5.0"
345
+ },
346
+ "maxLoras": {
347
+ "type": "integer",
348
+ "description": "Maximum concurrent LoRA adapters in GPU memory",
349
+ "cliFlag": "--max-loras",
350
+ "cliArgName": "n",
351
+ "envVar": "ML_MAX_LORAS",
352
+ "templateVar": "maxLoras",
353
+ "configKey": "maxLoras",
354
+ "default": 30,
355
+ "validation": {
356
+ "min": 1,
357
+ "max": 256
358
+ },
359
+ "phase": "features",
360
+ "group": "lora",
361
+ "appliesTo": {
362
+ "deploymentTargets": [
363
+ "managed-inference"
364
+ ],
365
+ "architectures": [
366
+ "transformers"
367
+ ]
368
+ },
369
+ "widget": {
370
+ "section": "features",
371
+ "inputType": "number",
372
+ "placeholder": "30"
373
+ },
374
+ "prompt": {
375
+ "message": "Max concurrent LoRA adapters?",
376
+ "type": "number",
377
+ "when": "enableLora === true"
378
+ },
379
+ "serverMapping": {
380
+ "envVar": "VLLM_MAX_LORAS"
381
+ },
382
+ "deprecated": false,
383
+ "since": "0.5.0"
384
+ },
385
+ "maxLoraRank": {
386
+ "type": "integer",
387
+ "description": "Maximum LoRA rank",
388
+ "cliFlag": "--max-lora-rank",
389
+ "cliArgName": "n",
390
+ "envVar": "ML_MAX_LORA_RANK",
391
+ "templateVar": "maxLoraRank",
392
+ "configKey": "maxLoraRank",
393
+ "default": 64,
394
+ "validation": {
395
+ "min": 8,
396
+ "max": 512
397
+ },
398
+ "phase": "features",
399
+ "group": "lora",
400
+ "appliesTo": {
401
+ "deploymentTargets": [
402
+ "managed-inference"
403
+ ],
404
+ "architectures": [
405
+ "transformers"
406
+ ]
407
+ },
408
+ "widget": {
409
+ "section": "features",
410
+ "inputType": "number",
411
+ "placeholder": "64"
412
+ },
413
+ "prompt": {
414
+ "message": "Max LoRA rank?",
415
+ "type": "number",
416
+ "when": "enableLora === true"
417
+ },
418
+ "serverMapping": {
419
+ "envVar": "VLLM_MAX_LORA_RANK"
420
+ },
421
+ "deprecated": false,
422
+ "since": "0.5.0"
423
+ },
424
+ "includeBenchmark": {
425
+ "type": "boolean",
426
+ "description": "Include SageMaker AI Benchmarking",
427
+ "cliFlag": "--include-benchmark",
428
+ "cliArgName": null,
429
+ "envVar": "ML_INCLUDE_BENCHMARK",
430
+ "templateVar": "includeBenchmark",
431
+ "configKey": "includeBenchmark",
432
+ "default": false,
433
+ "validation": {},
434
+ "phase": "features",
435
+ "group": "benchmark",
436
+ "appliesTo": {
437
+ "deploymentTargets": [
438
+ "managed-inference"
439
+ ],
440
+ "architectures": [
441
+ "transformers",
442
+ "diffusors"
443
+ ]
444
+ },
445
+ "widget": {
446
+ "section": "features",
447
+ "inputType": "checkbox"
448
+ },
449
+ "prompt": {
450
+ "message": "Include benchmarking?",
451
+ "type": "confirm",
452
+ "when": "['transformers','diffusors'].includes(architecture)"
453
+ },
454
+ "deprecated": false,
455
+ "since": "0.6.0"
456
+ },
457
+ "benchmarkConcurrency": {
458
+ "type": "integer",
459
+ "description": "Benchmark concurrent requests",
460
+ "cliFlag": "--benchmark-concurrency",
461
+ "cliArgName": "n",
462
+ "envVar": null,
463
+ "templateVar": "benchmarkConcurrency",
464
+ "configKey": "benchmarkConcurrency",
465
+ "default": 10,
466
+ "validation": {
467
+ "min": 1,
468
+ "max": 1000
469
+ },
470
+ "phase": "features",
471
+ "group": "benchmark",
472
+ "appliesTo": {
473
+ "deploymentTargets": [
474
+ "managed-inference"
475
+ ],
476
+ "architectures": [
477
+ "transformers",
478
+ "diffusors"
479
+ ]
480
+ },
481
+ "widget": {
482
+ "section": "features",
483
+ "inputType": "number",
484
+ "placeholder": "10"
485
+ },
486
+ "prompt": {
487
+ "message": "Benchmark concurrency?",
488
+ "type": "number",
489
+ "when": "includeBenchmark === true"
490
+ },
491
+ "deprecated": false,
492
+ "since": "0.6.0"
493
+ },
494
+ "benchmarkInputTokens": {
495
+ "type": "integer",
496
+ "description": "Benchmark mean input tokens",
497
+ "cliFlag": "--benchmark-input-tokens",
498
+ "cliArgName": "n",
499
+ "envVar": null,
500
+ "templateVar": "benchmarkInputTokensMean",
501
+ "configKey": "benchmarkInputTokensMean",
502
+ "default": 550,
503
+ "validation": {
504
+ "min": 1,
505
+ "max": 128000
506
+ },
507
+ "phase": "features",
508
+ "group": "benchmark",
509
+ "appliesTo": {
510
+ "deploymentTargets": [
511
+ "managed-inference"
512
+ ],
513
+ "architectures": [
514
+ "transformers",
515
+ "diffusors"
516
+ ]
517
+ },
518
+ "widget": {
519
+ "section": "features",
520
+ "inputType": "number",
521
+ "placeholder": "550"
522
+ },
523
+ "prompt": {
524
+ "message": "Mean input tokens?",
525
+ "type": "number",
526
+ "when": "includeBenchmark === true"
527
+ },
528
+ "deprecated": false,
529
+ "since": "0.6.0"
530
+ },
531
+ "benchmarkOutputTokens": {
532
+ "type": "integer",
533
+ "description": "Benchmark mean output tokens",
534
+ "cliFlag": "--benchmark-output-tokens",
535
+ "cliArgName": "n",
536
+ "envVar": null,
537
+ "templateVar": "benchmarkOutputTokensMean",
538
+ "configKey": "benchmarkOutputTokensMean",
539
+ "default": 150,
540
+ "validation": {
541
+ "min": 1,
542
+ "max": 128000
543
+ },
544
+ "phase": "features",
545
+ "group": "benchmark",
546
+ "appliesTo": {
547
+ "deploymentTargets": [
548
+ "managed-inference"
549
+ ],
550
+ "architectures": [
551
+ "transformers",
552
+ "diffusors"
553
+ ]
554
+ },
555
+ "widget": {
556
+ "section": "features",
557
+ "inputType": "number",
558
+ "placeholder": "150"
559
+ },
560
+ "prompt": {
561
+ "message": "Mean output tokens?",
562
+ "type": "number",
563
+ "when": "includeBenchmark === true"
564
+ },
565
+ "deprecated": false,
566
+ "since": "0.6.0"
567
+ },
568
+ "benchmarkStreaming": {
569
+ "type": "boolean",
570
+ "description": "Enable streaming in benchmark",
571
+ "cliFlag": "--benchmark-streaming",
572
+ "cliArgName": null,
573
+ "envVar": null,
574
+ "templateVar": "benchmarkStreaming",
575
+ "configKey": "benchmarkStreaming",
576
+ "default": true,
577
+ "validation": {},
578
+ "phase": "features",
579
+ "group": "benchmark",
580
+ "appliesTo": {
581
+ "deploymentTargets": [
582
+ "managed-inference"
583
+ ],
584
+ "architectures": [
585
+ "transformers",
586
+ "diffusors"
587
+ ]
588
+ },
589
+ "widget": {
590
+ "section": "features",
591
+ "inputType": "checkbox"
592
+ },
593
+ "prompt": {
594
+ "message": "Enable streaming in benchmark?",
595
+ "type": "confirm",
596
+ "when": "includeBenchmark === true"
597
+ },
598
+ "deprecated": false,
599
+ "since": "0.6.0"
600
+ },
601
+ "benchmarkRequestCount": {
602
+ "type": "integer",
603
+ "description": "Total number of benchmark requests to send",
604
+ "cliFlag": "--benchmark-request-count",
605
+ "cliArgName": "n",
606
+ "envVar": null,
607
+ "templateVar": "benchmarkRequestCount",
608
+ "configKey": "benchmarkRequestCount",
609
+ "default": null,
610
+ "validation": {
611
+ "min": 1
612
+ },
613
+ "phase": "features",
614
+ "group": "benchmark",
615
+ "appliesTo": {
616
+ "deploymentTargets": [
617
+ "managed-inference"
618
+ ],
619
+ "architectures": [
620
+ "transformers",
621
+ "diffusors"
622
+ ]
623
+ },
624
+ "widget": null,
625
+ "prompt": null,
626
+ "deprecated": false,
627
+ "since": "0.6.0"
628
+ },
629
+ "benchmarkS3OutputPath": {
630
+ "type": "string",
631
+ "description": "S3 URI for benchmark results output",
632
+ "cliFlag": "--benchmark-s3-output-path",
633
+ "cliArgName": "path",
634
+ "envVar": "ML_BENCHMARK_S3_OUTPUT_PATH",
635
+ "templateVar": "benchmarkS3OutputPath",
636
+ "configKey": "benchmarkS3OutputPath",
637
+ "default": null,
638
+ "validation": {
639
+ "pattern": "^s3://"
640
+ },
641
+ "phase": "features",
642
+ "group": "benchmark",
643
+ "appliesTo": {
644
+ "deploymentTargets": [
645
+ "managed-inference"
646
+ ],
647
+ "architectures": [
648
+ "transformers",
649
+ "diffusors"
650
+ ]
651
+ },
652
+ "widget": null,
653
+ "prompt": null,
654
+ "deprecated": false,
655
+ "since": "0.6.0"
656
+ },
657
+ "skipPrompts": {
658
+ "type": "boolean",
659
+ "description": "Skip interactive prompts and use configuration from other sources",
660
+ "cliFlag": "--skip-prompts",
661
+ "cliArgName": null,
662
+ "envVar": "MCC_SKIP_PROMPTS",
663
+ "templateVar": null,
664
+ "configKey": "skipPrompts",
665
+ "default": false,
666
+ "validation": {},
667
+ "phase": "project",
668
+ "group": "project",
669
+ "appliesTo": {
670
+ "deploymentTargets": [
671
+ "*"
672
+ ],
673
+ "architectures": [
674
+ "*"
675
+ ]
676
+ },
677
+ "widget": null,
678
+ "prompt": null,
679
+ "cliBehavior": true,
680
+ "deprecated": false,
681
+ "since": "0.5.0"
682
+ },
683
+ "autoPrompt": {
684
+ "type": "boolean",
685
+ "description": "Fill defaults, prompt only for missing required values",
686
+ "cliFlag": "--auto-prompt",
687
+ "cliArgName": null,
688
+ "envVar": null,
689
+ "templateVar": null,
690
+ "configKey": "autoPrompt",
691
+ "default": false,
692
+ "validation": {},
693
+ "phase": "project",
694
+ "group": "project",
695
+ "appliesTo": {
696
+ "deploymentTargets": [
697
+ "*"
698
+ ],
699
+ "architectures": [
700
+ "*"
701
+ ]
702
+ },
703
+ "widget": null,
704
+ "prompt": null,
705
+ "cliBehavior": true,
706
+ "deprecated": false,
707
+ "since": "0.5.0"
708
+ },
709
+ "config": {
710
+ "type": "string",
711
+ "description": "Path to JSON configuration file",
712
+ "cliFlag": "--config",
713
+ "cliArgName": "path",
714
+ "envVar": null,
715
+ "templateVar": null,
716
+ "configKey": null,
717
+ "default": null,
718
+ "validation": {},
719
+ "phase": "project",
720
+ "group": "project",
721
+ "appliesTo": {
722
+ "deploymentTargets": [
723
+ "*"
724
+ ],
725
+ "architectures": [
726
+ "*"
727
+ ]
728
+ },
729
+ "widget": null,
730
+ "prompt": null,
731
+ "cliBehavior": true,
732
+ "deprecated": false,
733
+ "since": "0.5.0"
734
+ },
735
+ "projectDir": {
736
+ "type": "string",
737
+ "description": "Output directory path",
738
+ "cliFlag": "--project-dir",
739
+ "cliArgName": "dir",
740
+ "envVar": "ML_PROJECT_DIR",
741
+ "templateVar": null,
742
+ "configKey": "projectDir",
743
+ "default": null,
744
+ "validation": {},
745
+ "phase": "project",
746
+ "group": "project",
747
+ "appliesTo": {
748
+ "deploymentTargets": [
749
+ "*"
750
+ ],
751
+ "architectures": [
752
+ "*"
753
+ ]
754
+ },
755
+ "widget": null,
756
+ "prompt": null,
757
+ "deprecated": false,
758
+ "since": "0.3.0"
759
+ },
760
+ "force": {
761
+ "type": "boolean",
762
+ "description": "Overwrite existing output directory without prompting",
763
+ "cliFlag": "--force",
764
+ "cliArgName": null,
765
+ "envVar": null,
766
+ "templateVar": null,
767
+ "configKey": "force",
768
+ "default": false,
769
+ "validation": {},
770
+ "phase": "project",
771
+ "group": "project",
772
+ "appliesTo": {
773
+ "deploymentTargets": [
774
+ "*"
775
+ ],
776
+ "architectures": [
777
+ "*"
778
+ ]
779
+ },
780
+ "widget": null,
781
+ "prompt": null,
782
+ "cliBehavior": true,
783
+ "deprecated": false,
784
+ "since": "0.3.0"
785
+ },
786
+ "framework": {
787
+ "type": "enum",
788
+ "description": "ML framework",
789
+ "cliFlag": "--framework",
790
+ "cliArgName": "framework",
791
+ "envVar": null,
792
+ "templateVar": "framework",
793
+ "configKey": "framework",
794
+ "default": null,
795
+ "validation": {
796
+ "enum": [
797
+ "sklearn",
798
+ "xgboost",
799
+ "tensorflow",
800
+ "transformers"
801
+ ]
802
+ },
803
+ "phase": "model",
804
+ "group": "model",
805
+ "appliesTo": {
806
+ "deploymentTargets": [
807
+ "*"
808
+ ],
809
+ "architectures": [
810
+ "*"
811
+ ]
812
+ },
813
+ "widget": null,
814
+ "prompt": null,
815
+ "deprecated": true,
816
+ "replacedBy": "deploymentConfig",
817
+ "since": "0.1.0"
818
+ },
819
+ "modelFormat": {
820
+ "type": "string",
821
+ "description": "Model serialization format (pkl, joblib, json, model, ubj, keras, h5, SavedModel)",
822
+ "cliFlag": "--model-format",
823
+ "cliArgName": "format",
824
+ "envVar": "ML_MODEL_FORMAT",
825
+ "templateVar": "modelFormat",
826
+ "configKey": "modelFormat",
827
+ "default": null,
828
+ "validation": {
829
+ "enum": [
830
+ "pkl",
831
+ "joblib",
832
+ "json",
833
+ "model",
834
+ "ubj",
835
+ "keras",
836
+ "h5",
837
+ "SavedModel"
838
+ ]
839
+ },
840
+ "phase": "model",
841
+ "group": "model",
842
+ "appliesTo": {
843
+ "deploymentTargets": [
844
+ "*"
845
+ ],
846
+ "architectures": [
847
+ "http"
848
+ ]
849
+ },
850
+ "widget": null,
851
+ "prompt": {
852
+ "message": "Model format?",
853
+ "type": "list",
854
+ "when": "architecture === 'http'"
855
+ },
856
+ "deprecated": false,
857
+ "since": "0.1.0"
858
+ },
859
+ "modelServer": {
860
+ "type": "enum",
861
+ "description": "Model server",
862
+ "cliFlag": "--model-server",
863
+ "cliArgName": "server",
864
+ "envVar": null,
865
+ "templateVar": "modelServer",
866
+ "configKey": "modelServer",
867
+ "default": null,
868
+ "validation": {
869
+ "enum": [
870
+ "flask",
871
+ "fastapi",
872
+ "vllm",
873
+ "sglang"
874
+ ]
875
+ },
876
+ "phase": "model",
877
+ "group": "model",
878
+ "appliesTo": {
879
+ "deploymentTargets": [
880
+ "*"
881
+ ],
882
+ "architectures": [
883
+ "*"
884
+ ]
885
+ },
886
+ "widget": null,
887
+ "prompt": null,
888
+ "deprecated": true,
889
+ "replacedBy": "deploymentConfig",
890
+ "since": "0.1.0"
891
+ },
892
+ "baseImage": {
893
+ "type": "string",
894
+ "description": "Base container image for Dockerfile",
895
+ "cliFlag": "--base-image",
896
+ "cliArgName": "image",
897
+ "envVar": "ML_BASE_IMAGE",
898
+ "templateVar": "baseImage",
899
+ "configKey": "baseImage",
900
+ "default": null,
901
+ "validation": {},
902
+ "phase": "build",
903
+ "group": "build",
904
+ "appliesTo": {
905
+ "deploymentTargets": [
906
+ "*"
907
+ ],
908
+ "architectures": [
909
+ "*"
910
+ ]
911
+ },
912
+ "widget": null,
913
+ "prompt": null,
914
+ "deprecated": false,
915
+ "since": "0.3.0"
916
+ },
917
+ "region": {
918
+ "type": "string",
919
+ "description": "AWS region",
920
+ "cliFlag": "--region",
921
+ "cliArgName": "region",
922
+ "envVar": "ML_REGION",
923
+ "templateVar": "awsRegion",
924
+ "configKey": "region",
925
+ "default": "us-east-1",
926
+ "validation": {
927
+ "pattern": "^[a-z]{2}-[a-z]+-\\d+$"
928
+ },
929
+ "phase": "infrastructure",
930
+ "group": "infrastructure",
931
+ "appliesTo": {
932
+ "deploymentTargets": [
933
+ "*"
934
+ ],
935
+ "architectures": [
936
+ "*"
937
+ ]
938
+ },
939
+ "widget": null,
940
+ "prompt": {
941
+ "message": "AWS region?",
942
+ "type": "input"
943
+ },
944
+ "deprecated": false,
945
+ "since": "0.1.0"
946
+ },
947
+ "roleArn": {
948
+ "type": "string",
949
+ "description": "IAM role ARN for SageMaker execution",
950
+ "cliFlag": "--role-arn",
951
+ "cliArgName": "arn",
952
+ "envVar": "ML_ROLE_ARN",
953
+ "templateVar": "roleArn",
954
+ "configKey": "roleArn",
955
+ "default": null,
956
+ "validation": {
957
+ "pattern": "^arn:aws:iam::"
958
+ },
959
+ "phase": "infrastructure",
960
+ "group": "infrastructure",
961
+ "appliesTo": {
962
+ "deploymentTargets": [
963
+ "*"
964
+ ],
965
+ "architectures": [
966
+ "*"
967
+ ]
968
+ },
969
+ "widget": null,
970
+ "prompt": null,
971
+ "deprecated": false,
972
+ "since": "0.3.0"
973
+ },
974
+ "buildTarget": {
975
+ "type": "string",
976
+ "description": "Build target (codebuild)",
977
+ "cliFlag": "--build-target",
978
+ "cliArgName": "target",
979
+ "envVar": "ML_BUILD_TARGET",
980
+ "templateVar": "buildTarget",
981
+ "configKey": "buildTarget",
982
+ "default": "codebuild",
983
+ "validation": {
984
+ "enum": [
985
+ "codebuild"
986
+ ]
987
+ },
988
+ "phase": "build",
989
+ "group": "build",
990
+ "appliesTo": {
991
+ "deploymentTargets": [
992
+ "*"
993
+ ],
994
+ "architectures": [
995
+ "*"
996
+ ]
997
+ },
998
+ "widget": null,
999
+ "prompt": null,
1000
+ "deprecated": false,
1001
+ "since": "0.4.0"
1002
+ },
1003
+ "codebuildComputeType": {
1004
+ "type": "string",
1005
+ "description": "CodeBuild compute type (SMALL, MEDIUM, LARGE)",
1006
+ "cliFlag": "--codebuild-compute-type",
1007
+ "cliArgName": "type",
1008
+ "envVar": "ML_CODEBUILD_COMPUTE_TYPE",
1009
+ "templateVar": "codebuildComputeType",
1010
+ "configKey": "codebuildComputeType",
1011
+ "default": "BUILD_GENERAL1_LARGE",
1012
+ "validation": {
1013
+ "enum": [
1014
+ "SMALL",
1015
+ "MEDIUM",
1016
+ "LARGE",
1017
+ "BUILD_GENERAL1_SMALL",
1018
+ "BUILD_GENERAL1_MEDIUM",
1019
+ "BUILD_GENERAL1_LARGE",
1020
+ "BUILD_GENERAL1_2XLARGE"
1021
+ ]
1022
+ },
1023
+ "phase": "build",
1024
+ "group": "build",
1025
+ "appliesTo": {
1026
+ "deploymentTargets": [
1027
+ "*"
1028
+ ],
1029
+ "architectures": [
1030
+ "*"
1031
+ ]
1032
+ },
1033
+ "widget": null,
1034
+ "prompt": null,
1035
+ "deprecated": false,
1036
+ "since": "0.4.0"
1037
+ },
1038
+ "hfToken": {
1039
+ "type": "string",
1040
+ "description": "HuggingFace token (or $HF_TOKEN for env var reference)",
1041
+ "cliFlag": "--hf-token",
1042
+ "cliArgName": "token",
1043
+ "envVar": null,
1044
+ "templateVar": "hfToken",
1045
+ "configKey": "hfToken",
1046
+ "default": null,
1047
+ "validation": {},
1048
+ "phase": "auth",
1049
+ "group": "auth",
1050
+ "appliesTo": {
1051
+ "deploymentTargets": [
1052
+ "*"
1053
+ ],
1054
+ "architectures": [
1055
+ "transformers",
1056
+ "diffusors"
1057
+ ]
1058
+ },
1059
+ "widget": null,
1060
+ "prompt": null,
1061
+ "sensitive": true,
1062
+ "deprecated": false,
1063
+ "since": "0.3.0"
1064
+ },
1065
+ "hfTokenArn": {
1066
+ "type": "string",
1067
+ "description": "HuggingFace token ARN from Secrets Manager",
1068
+ "cliFlag": "--hf-token-arn",
1069
+ "cliArgName": "arn",
1070
+ "envVar": "ML_HF_TOKEN_ARN",
1071
+ "templateVar": "hfTokenArn",
1072
+ "configKey": "hfTokenArn",
1073
+ "default": null,
1074
+ "validation": {
1075
+ "pattern": "^arn:aws:secretsmanager:"
1076
+ },
1077
+ "phase": "auth",
1078
+ "group": "auth",
1079
+ "appliesTo": {
1080
+ "deploymentTargets": [
1081
+ "*"
1082
+ ],
1083
+ "architectures": [
1084
+ "transformers",
1085
+ "diffusors"
1086
+ ]
1087
+ },
1088
+ "widget": null,
1089
+ "prompt": null,
1090
+ "deprecated": false,
1091
+ "since": "0.5.0"
1092
+ },
1093
+ "ngcToken": {
1094
+ "type": "string",
1095
+ "description": "NVIDIA NGC token (or $NGC_API_KEY for env var reference)",
1096
+ "cliFlag": "--ngc-token",
1097
+ "cliArgName": "token",
1098
+ "envVar": null,
1099
+ "templateVar": "ngcToken",
1100
+ "configKey": "ngcToken",
1101
+ "default": null,
1102
+ "validation": {},
1103
+ "phase": "auth",
1104
+ "group": "auth",
1105
+ "appliesTo": {
1106
+ "deploymentTargets": [
1107
+ "*"
1108
+ ],
1109
+ "architectures": [
1110
+ "transformers"
1111
+ ]
1112
+ },
1113
+ "widget": null,
1114
+ "prompt": null,
1115
+ "sensitive": true,
1116
+ "deprecated": false,
1117
+ "since": "0.4.0"
1118
+ },
1119
+ "ngcTokenArn": {
1120
+ "type": "string",
1121
+ "description": "NVIDIA NGC token ARN from Secrets Manager",
1122
+ "cliFlag": "--ngc-token-arn",
1123
+ "cliArgName": "arn",
1124
+ "envVar": "ML_NGC_TOKEN_ARN",
1125
+ "templateVar": "ngcTokenArn",
1126
+ "configKey": "ngcTokenArn",
1127
+ "default": null,
1128
+ "validation": {
1129
+ "pattern": "^arn:aws:secretsmanager:"
1130
+ },
1131
+ "phase": "auth",
1132
+ "group": "auth",
1133
+ "appliesTo": {
1134
+ "deploymentTargets": [
1135
+ "*"
1136
+ ],
1137
+ "architectures": [
1138
+ "transformers"
1139
+ ]
1140
+ },
1141
+ "widget": null,
1142
+ "prompt": null,
1143
+ "deprecated": false,
1144
+ "since": "0.5.0"
1145
+ },
1146
+ "endpointInitialInstanceCount": {
1147
+ "type": "integer",
1148
+ "description": "Number of instances for the endpoint",
1149
+ "cliFlag": "--endpoint-initial-instance-count",
1150
+ "cliArgName": "n",
1151
+ "envVar": "ML_ENDPOINT_INSTANCE_COUNT",
1152
+ "templateVar": "endpointInitialInstanceCount",
1153
+ "configKey": "endpointInitialInstanceCount",
1154
+ "default": 1,
1155
+ "validation": {
1156
+ "min": 1,
1157
+ "max": 100
1158
+ },
1159
+ "phase": "infrastructure",
1160
+ "group": "endpoint",
1161
+ "appliesTo": {
1162
+ "deploymentTargets": [
1163
+ "managed-inference"
1164
+ ],
1165
+ "architectures": [
1166
+ "*"
1167
+ ]
1168
+ },
1169
+ "widget": null,
1170
+ "prompt": null,
1171
+ "deprecated": false,
1172
+ "since": "0.4.0"
1173
+ },
1174
+ "endpointDataCapturePercent": {
1175
+ "type": "integer",
1176
+ "description": "Data capture percentage for monitoring, 0-100",
1177
+ "cliFlag": "--endpoint-data-capture-percent",
1178
+ "cliArgName": "pct",
1179
+ "envVar": null,
1180
+ "templateVar": "endpointDataCapturePercent",
1181
+ "configKey": "endpointDataCapturePercent",
1182
+ "default": 0,
1183
+ "validation": {
1184
+ "min": 0,
1185
+ "max": 100
1186
+ },
1187
+ "phase": "infrastructure",
1188
+ "group": "endpoint",
1189
+ "appliesTo": {
1190
+ "deploymentTargets": [
1191
+ "managed-inference"
1192
+ ],
1193
+ "architectures": [
1194
+ "*"
1195
+ ]
1196
+ },
1197
+ "widget": null,
1198
+ "prompt": null,
1199
+ "deprecated": false,
1200
+ "since": "0.4.0"
1201
+ },
1202
+ "endpointVariantName": {
1203
+ "type": "string",
1204
+ "description": "Production variant name",
1205
+ "cliFlag": "--endpoint-variant-name",
1206
+ "cliArgName": "name",
1207
+ "envVar": null,
1208
+ "templateVar": "endpointVariantName",
1209
+ "configKey": "endpointVariantName",
1210
+ "default": "AllTraffic",
1211
+ "validation": {
1212
+ "pattern": "^[a-zA-Z0-9]([\\w-]{0,62}[a-zA-Z0-9])?$"
1213
+ },
1214
+ "phase": "infrastructure",
1215
+ "group": "endpoint",
1216
+ "appliesTo": {
1217
+ "deploymentTargets": [
1218
+ "managed-inference"
1219
+ ],
1220
+ "architectures": [
1221
+ "*"
1222
+ ]
1223
+ },
1224
+ "widget": null,
1225
+ "prompt": null,
1226
+ "deprecated": false,
1227
+ "since": "0.4.0"
1228
+ },
1229
+ "endpointVolumeSize": {
1230
+ "type": "integer",
1231
+ "description": "ML storage volume size in GB",
1232
+ "cliFlag": "--endpoint-volume-size",
1233
+ "cliArgName": "gb",
1234
+ "envVar": null,
1235
+ "templateVar": "endpointVolumeSize",
1236
+ "configKey": "endpointVolumeSize",
1237
+ "default": null,
1238
+ "validation": {
1239
+ "min": 1,
1240
+ "max": 16384
1241
+ },
1242
+ "phase": "infrastructure",
1243
+ "group": "endpoint",
1244
+ "appliesTo": {
1245
+ "deploymentTargets": [
1246
+ "managed-inference"
1247
+ ],
1248
+ "architectures": [
1249
+ "*"
1250
+ ]
1251
+ },
1252
+ "widget": null,
1253
+ "prompt": null,
1254
+ "deprecated": false,
1255
+ "since": "0.4.0"
1256
+ },
1257
+ "icCpuCount": {
1258
+ "type": "number",
1259
+ "description": "vCPUs allocated to the inference component",
1260
+ "cliFlag": "--ic-cpu-count",
1261
+ "cliArgName": "n",
1262
+ "envVar": "ML_IC_CPU_COUNT",
1263
+ "templateVar": "icCpuCount",
1264
+ "configKey": "icCpuCount",
1265
+ "default": null,
1266
+ "validation": {
1267
+ "min": 0.25,
1268
+ "max": 768
1269
+ },
1270
+ "phase": "infrastructure",
1271
+ "group": "inference-component",
1272
+ "appliesTo": {
1273
+ "deploymentTargets": [
1274
+ "managed-inference"
1275
+ ],
1276
+ "architectures": [
1277
+ "*"
1278
+ ]
1279
+ },
1280
+ "widget": null,
1281
+ "prompt": null,
1282
+ "deprecated": false,
1283
+ "since": "0.4.0"
1284
+ },
1285
+ "icModelWeight": {
1286
+ "type": "number",
1287
+ "description": "Traffic routing weight, 0-1",
1288
+ "cliFlag": "--ic-model-weight",
1289
+ "cliArgName": "weight",
1290
+ "envVar": null,
1291
+ "templateVar": "icModelWeight",
1292
+ "configKey": "icModelWeight",
1293
+ "default": 1,
1294
+ "validation": {
1295
+ "min": 0,
1296
+ "max": 1
1297
+ },
1298
+ "phase": "infrastructure",
1299
+ "group": "inference-component",
1300
+ "appliesTo": {
1301
+ "deploymentTargets": [
1302
+ "managed-inference"
1303
+ ],
1304
+ "architectures": [
1305
+ "*"
1306
+ ]
1307
+ },
1308
+ "widget": null,
1309
+ "prompt": null,
1310
+ "deprecated": false,
1311
+ "since": "0.5.0"
1312
+ },
1313
+ "asyncS3OutputPath": {
1314
+ "type": "string",
1315
+ "description": "S3 output path for async results",
1316
+ "cliFlag": "--async-s3-output-path",
1317
+ "cliArgName": "path",
1318
+ "envVar": "ML_ASYNC_S3_OUTPUT_PATH",
1319
+ "templateVar": "asyncS3OutputPath",
1320
+ "configKey": "asyncS3OutputPath",
1321
+ "default": null,
1322
+ "validation": {
1323
+ "pattern": "^s3://"
1324
+ },
1325
+ "phase": "infrastructure",
1326
+ "group": "async",
1327
+ "appliesTo": {
1328
+ "deploymentTargets": [
1329
+ "async-inference"
1330
+ ],
1331
+ "architectures": [
1332
+ "*"
1333
+ ]
1334
+ },
1335
+ "widget": null,
1336
+ "prompt": {
1337
+ "message": "S3 output path for async results?",
1338
+ "type": "input",
1339
+ "when": "deploymentTarget === 'async-inference'"
1340
+ },
1341
+ "deprecated": false,
1342
+ "since": "0.4.0"
1343
+ },
1344
+ "asyncSnsSuccessTopic": {
1345
+ "type": "string",
1346
+ "description": "SNS topic ARN for success notifications",
1347
+ "cliFlag": "--async-sns-success-topic",
1348
+ "cliArgName": "arn",
1349
+ "envVar": null,
1350
+ "templateVar": "asyncSnsSuccessTopic",
1351
+ "configKey": "asyncSnsSuccessTopic",
1352
+ "default": null,
1353
+ "validation": {
1354
+ "pattern": "^arn:aws:sns:"
1355
+ },
1356
+ "phase": "infrastructure",
1357
+ "group": "async",
1358
+ "appliesTo": {
1359
+ "deploymentTargets": [
1360
+ "async-inference"
1361
+ ],
1362
+ "architectures": [
1363
+ "*"
1364
+ ]
1365
+ },
1366
+ "widget": null,
1367
+ "prompt": null,
1368
+ "deprecated": false,
1369
+ "since": "0.4.0"
1370
+ },
1371
+ "asyncSnsErrorTopic": {
1372
+ "type": "string",
1373
+ "description": "SNS topic ARN for error notifications",
1374
+ "cliFlag": "--async-sns-error-topic",
1375
+ "cliArgName": "arn",
1376
+ "envVar": null,
1377
+ "templateVar": "asyncSnsErrorTopic",
1378
+ "configKey": "asyncSnsErrorTopic",
1379
+ "default": null,
1380
+ "validation": {
1381
+ "pattern": "^arn:aws:sns:"
1382
+ },
1383
+ "phase": "infrastructure",
1384
+ "group": "async",
1385
+ "appliesTo": {
1386
+ "deploymentTargets": [
1387
+ "async-inference"
1388
+ ],
1389
+ "architectures": [
1390
+ "*"
1391
+ ]
1392
+ },
1393
+ "widget": null,
1394
+ "prompt": null,
1395
+ "deprecated": false,
1396
+ "since": "0.4.0"
1397
+ },
1398
+ "asyncMaxConcurrent": {
1399
+ "type": "integer",
1400
+ "description": "Max concurrent invocations per instance",
1401
+ "cliFlag": "--async-max-concurrent",
1402
+ "cliArgName": "n",
1403
+ "envVar": null,
1404
+ "templateVar": "asyncMaxConcurrent",
1405
+ "configKey": "asyncMaxConcurrent",
1406
+ "default": 1,
1407
+ "validation": {
1408
+ "min": 1,
1409
+ "max": 100
1410
+ },
1411
+ "phase": "infrastructure",
1412
+ "group": "async",
1413
+ "appliesTo": {
1414
+ "deploymentTargets": [
1415
+ "async-inference"
1416
+ ],
1417
+ "architectures": [
1418
+ "*"
1419
+ ]
1420
+ },
1421
+ "widget": null,
1422
+ "prompt": null,
1423
+ "deprecated": false,
1424
+ "since": "0.4.0"
1425
+ },
1426
+ "batchInputPath": {
1427
+ "type": "string",
1428
+ "description": "S3 input path for batch data",
1429
+ "cliFlag": "--batch-input-path",
1430
+ "cliArgName": "path",
1431
+ "envVar": "ML_BATCH_INPUT_PATH",
1432
+ "templateVar": "batchInputPath",
1433
+ "configKey": "batchInputPath",
1434
+ "default": null,
1435
+ "validation": {
1436
+ "pattern": "^s3://"
1437
+ },
1438
+ "phase": "infrastructure",
1439
+ "group": "batch",
1440
+ "appliesTo": {
1441
+ "deploymentTargets": [
1442
+ "batch-transform"
1443
+ ],
1444
+ "architectures": [
1445
+ "*"
1446
+ ]
1447
+ },
1448
+ "widget": null,
1449
+ "prompt": {
1450
+ "message": "S3 input path?",
1451
+ "type": "input",
1452
+ "when": "deploymentTarget === 'batch-transform'"
1453
+ },
1454
+ "deprecated": false,
1455
+ "since": "0.4.0"
1456
+ },
1457
+ "batchOutputPath": {
1458
+ "type": "string",
1459
+ "description": "S3 output path for batch results",
1460
+ "cliFlag": "--batch-output-path",
1461
+ "cliArgName": "path",
1462
+ "envVar": "ML_BATCH_OUTPUT_PATH",
1463
+ "templateVar": "batchOutputPath",
1464
+ "configKey": "batchOutputPath",
1465
+ "default": null,
1466
+ "validation": {
1467
+ "pattern": "^s3://"
1468
+ },
1469
+ "phase": "infrastructure",
1470
+ "group": "batch",
1471
+ "appliesTo": {
1472
+ "deploymentTargets": [
1473
+ "batch-transform"
1474
+ ],
1475
+ "architectures": [
1476
+ "*"
1477
+ ]
1478
+ },
1479
+ "widget": null,
1480
+ "prompt": {
1481
+ "message": "S3 output path?",
1482
+ "type": "input",
1483
+ "when": "deploymentTarget === 'batch-transform'"
1484
+ },
1485
+ "deprecated": false,
1486
+ "since": "0.4.0"
1487
+ },
1488
+ "batchInstanceCount": {
1489
+ "type": "integer",
1490
+ "description": "Number of batch instances",
1491
+ "cliFlag": "--batch-instance-count",
1492
+ "cliArgName": "n",
1493
+ "envVar": null,
1494
+ "templateVar": "batchInstanceCount",
1495
+ "configKey": "batchInstanceCount",
1496
+ "default": 1,
1497
+ "validation": {
1498
+ "min": 1,
1499
+ "max": 100
1500
+ },
1501
+ "phase": "infrastructure",
1502
+ "group": "batch",
1503
+ "appliesTo": {
1504
+ "deploymentTargets": [
1505
+ "batch-transform"
1506
+ ],
1507
+ "architectures": [
1508
+ "*"
1509
+ ]
1510
+ },
1511
+ "widget": null,
1512
+ "prompt": null,
1513
+ "deprecated": false,
1514
+ "since": "0.4.0"
1515
+ },
1516
+ "batchSplitType": {
1517
+ "type": "enum",
1518
+ "description": "Input split type: Line, RecordIO, None",
1519
+ "cliFlag": "--batch-split-type",
1520
+ "cliArgName": "type",
1521
+ "envVar": null,
1522
+ "templateVar": "batchSplitType",
1523
+ "configKey": "batchSplitType",
1524
+ "default": "Line",
1525
+ "validation": {
1526
+ "enum": [
1527
+ "Line",
1528
+ "RecordIO",
1529
+ "None"
1530
+ ]
1531
+ },
1532
+ "phase": "infrastructure",
1533
+ "group": "batch",
1534
+ "appliesTo": {
1535
+ "deploymentTargets": [
1536
+ "batch-transform"
1537
+ ],
1538
+ "architectures": [
1539
+ "*"
1540
+ ]
1541
+ },
1542
+ "widget": null,
1543
+ "prompt": null,
1544
+ "deprecated": false,
1545
+ "since": "0.4.0"
1546
+ },
1547
+ "batchStrategy": {
1548
+ "type": "enum",
1549
+ "description": "Batch strategy: MultiRecord, SingleRecord",
1550
+ "cliFlag": "--batch-strategy",
1551
+ "cliArgName": "strategy",
1552
+ "envVar": null,
1553
+ "templateVar": "batchStrategy",
1554
+ "configKey": "batchStrategy",
1555
+ "default": "MultiRecord",
1556
+ "validation": {
1557
+ "enum": [
1558
+ "MultiRecord",
1559
+ "SingleRecord"
1560
+ ]
1561
+ },
1562
+ "phase": "infrastructure",
1563
+ "group": "batch",
1564
+ "appliesTo": {
1565
+ "deploymentTargets": [
1566
+ "batch-transform"
1567
+ ],
1568
+ "architectures": [
1569
+ "*"
1570
+ ]
1571
+ },
1572
+ "widget": null,
1573
+ "prompt": null,
1574
+ "deprecated": false,
1575
+ "since": "0.4.0"
1576
+ },
1577
+ "batchJoinSource": {
1578
+ "type": "enum",
1579
+ "description": "Join source: Input, None",
1580
+ "cliFlag": "--batch-join-source",
1581
+ "cliArgName": "source",
1582
+ "envVar": null,
1583
+ "templateVar": "batchJoinSource",
1584
+ "configKey": "batchJoinSource",
1585
+ "default": "None",
1586
+ "validation": {
1587
+ "enum": [
1588
+ "Input",
1589
+ "None"
1590
+ ]
1591
+ },
1592
+ "phase": "infrastructure",
1593
+ "group": "batch",
1594
+ "appliesTo": {
1595
+ "deploymentTargets": [
1596
+ "batch-transform"
1597
+ ],
1598
+ "architectures": [
1599
+ "*"
1600
+ ]
1601
+ },
1602
+ "widget": null,
1603
+ "prompt": null,
1604
+ "deprecated": false,
1605
+ "since": "0.4.0"
1606
+ },
1607
+ "batchMaxConcurrent": {
1608
+ "type": "integer",
1609
+ "description": "Max concurrent transforms per instance",
1610
+ "cliFlag": "--batch-max-concurrent",
1611
+ "cliArgName": "n",
1612
+ "envVar": null,
1613
+ "templateVar": "batchMaxConcurrent",
1614
+ "configKey": "batchMaxConcurrent",
1615
+ "default": 1,
1616
+ "validation": {
1617
+ "min": 1
1618
+ },
1619
+ "phase": "infrastructure",
1620
+ "group": "batch",
1621
+ "appliesTo": {
1622
+ "deploymentTargets": [
1623
+ "batch-transform"
1624
+ ],
1625
+ "architectures": [
1626
+ "*"
1627
+ ]
1628
+ },
1629
+ "widget": null,
1630
+ "prompt": null,
1631
+ "deprecated": false,
1632
+ "since": "0.4.0"
1633
+ },
1634
+ "batchMaxPayload": {
1635
+ "type": "integer",
1636
+ "description": "Max payload size in MB, 0-100",
1637
+ "cliFlag": "--batch-max-payload",
1638
+ "cliArgName": "mb",
1639
+ "envVar": null,
1640
+ "templateVar": "batchMaxPayload",
1641
+ "configKey": "batchMaxPayload",
1642
+ "default": 6,
1643
+ "validation": {
1644
+ "min": 0,
1645
+ "max": 100
1646
+ },
1647
+ "phase": "infrastructure",
1648
+ "group": "batch",
1649
+ "appliesTo": {
1650
+ "deploymentTargets": [
1651
+ "batch-transform"
1652
+ ],
1653
+ "architectures": [
1654
+ "*"
1655
+ ]
1656
+ },
1657
+ "widget": null,
1658
+ "prompt": null,
1659
+ "deprecated": false,
1660
+ "since": "0.4.0"
1661
+ },
1662
+ "hyperpodCluster": {
1663
+ "type": "string",
1664
+ "description": "HyperPod EKS cluster name",
1665
+ "cliFlag": "--hyperpod-cluster",
1666
+ "cliArgName": "name",
1667
+ "envVar": "ML_HYPERPOD_CLUSTER",
1668
+ "templateVar": "hyperPodCluster",
1669
+ "configKey": "hyperpodCluster",
1670
+ "default": null,
1671
+ "validation": {},
1672
+ "phase": "infrastructure",
1673
+ "group": "hyperpod",
1674
+ "appliesTo": {
1675
+ "deploymentTargets": [
1676
+ "hyperpod-eks"
1677
+ ],
1678
+ "architectures": [
1679
+ "*"
1680
+ ]
1681
+ },
1682
+ "widget": null,
1683
+ "prompt": {
1684
+ "message": "HyperPod cluster name?",
1685
+ "type": "input",
1686
+ "when": "deploymentTarget === 'hyperpod-eks'"
1687
+ },
1688
+ "deprecated": false,
1689
+ "since": "0.4.0"
1690
+ },
1691
+ "hyperpodNamespace": {
1692
+ "type": "string",
1693
+ "description": "Kubernetes namespace",
1694
+ "cliFlag": "--hyperpod-namespace",
1695
+ "cliArgName": "ns",
1696
+ "envVar": "ML_HYPERPOD_NAMESPACE",
1697
+ "templateVar": "hyperPodNamespace",
1698
+ "configKey": "hyperpodNamespace",
1699
+ "default": "default",
1700
+ "validation": {},
1701
+ "phase": "infrastructure",
1702
+ "group": "hyperpod",
1703
+ "appliesTo": {
1704
+ "deploymentTargets": [
1705
+ "hyperpod-eks"
1706
+ ],
1707
+ "architectures": [
1708
+ "*"
1709
+ ]
1710
+ },
1711
+ "widget": null,
1712
+ "prompt": null,
1713
+ "deprecated": false,
1714
+ "since": "0.4.0"
1715
+ },
1716
+ "hyperpodReplicas": {
1717
+ "type": "integer",
1718
+ "description": "Number of replicas",
1719
+ "cliFlag": "--hyperpod-replicas",
1720
+ "cliArgName": "count",
1721
+ "envVar": null,
1722
+ "templateVar": "hyperPodReplicas",
1723
+ "configKey": "hyperpodReplicas",
1724
+ "default": 1,
1725
+ "validation": {
1726
+ "min": 1
1727
+ },
1728
+ "phase": "infrastructure",
1729
+ "group": "hyperpod",
1730
+ "appliesTo": {
1731
+ "deploymentTargets": [
1732
+ "hyperpod-eks"
1733
+ ],
1734
+ "architectures": [
1735
+ "*"
1736
+ ]
1737
+ },
1738
+ "widget": null,
1739
+ "prompt": null,
1740
+ "deprecated": false,
1741
+ "since": "0.4.0"
1742
+ },
1743
+ "fsxVolumeHandle": {
1744
+ "type": "string",
1745
+ "description": "FSx for Lustre volume handle",
1746
+ "cliFlag": "--fsx-volume-handle",
1747
+ "cliArgName": "handle",
1748
+ "envVar": "ML_FSX_VOLUME_HANDLE",
1749
+ "templateVar": "fsxVolumeHandle",
1750
+ "configKey": "fsxVolumeHandle",
1751
+ "default": null,
1752
+ "validation": {},
1753
+ "phase": "infrastructure",
1754
+ "group": "hyperpod",
1755
+ "appliesTo": {
1756
+ "deploymentTargets": [
1757
+ "hyperpod-eks"
1758
+ ],
1759
+ "architectures": [
1760
+ "*"
1761
+ ]
1762
+ },
1763
+ "widget": null,
1764
+ "prompt": null,
1765
+ "deprecated": false,
1766
+ "since": "0.4.0"
1767
+ },
1768
+ "modelEnv": {
1769
+ "type": "string",
1770
+ "description": "Model env var, repeatable (e.g. VLLM_TENSOR_PARALLEL_SIZE=4)",
1771
+ "cliFlag": "--model-env",
1772
+ "cliArgName": "KEY=VALUE",
1773
+ "envVar": null,
1774
+ "templateVar": null,
1775
+ "configKey": "modelEnv",
1776
+ "default": [],
1777
+ "validation": {},
1778
+ "phase": "features",
1779
+ "group": "model",
1780
+ "appliesTo": {
1781
+ "deploymentTargets": [
1782
+ "*"
1783
+ ],
1784
+ "architectures": [
1785
+ "*"
1786
+ ]
1787
+ },
1788
+ "widget": {
1789
+ "section": "env-vars",
1790
+ "inputType": "repeatable-kv"
1791
+ },
1792
+ "prompt": null,
1793
+ "repeatable": true,
1794
+ "deprecated": false,
1795
+ "since": "0.5.0"
1796
+ },
1797
+ "serverEnv": {
1798
+ "type": "string",
1799
+ "description": "Server env var, repeatable (e.g. SGLANG_MEM_FRACTION=0.9)",
1800
+ "cliFlag": "--server-env",
1801
+ "cliArgName": "KEY=VALUE",
1802
+ "envVar": null,
1803
+ "templateVar": null,
1804
+ "configKey": "serverEnv",
1805
+ "default": [],
1806
+ "validation": {},
1807
+ "phase": "features",
1808
+ "group": "model",
1809
+ "appliesTo": {
1810
+ "deploymentTargets": [
1811
+ "*"
1812
+ ],
1813
+ "architectures": [
1814
+ "*"
1815
+ ]
1816
+ },
1817
+ "widget": {
1818
+ "section": "env-vars",
1819
+ "inputType": "repeatable-kv"
1820
+ },
1821
+ "prompt": null,
1822
+ "repeatable": true,
1823
+ "deprecated": false,
1824
+ "since": "0.5.0"
1825
+ },
1826
+ "includeSample": {
1827
+ "type": "boolean",
1828
+ "description": "Include sample model code",
1829
+ "cliFlag": "--include-sample",
1830
+ "cliArgName": null,
1831
+ "envVar": "ML_INCLUDE_SAMPLE",
1832
+ "templateVar": "includeSampleModel",
1833
+ "configKey": "includeSample",
1834
+ "default": true,
1835
+ "validation": {},
1836
+ "phase": "features",
1837
+ "group": "testing",
1838
+ "appliesTo": {
1839
+ "deploymentTargets": [
1840
+ "*"
1841
+ ],
1842
+ "architectures": [
1843
+ "http"
1844
+ ]
1845
+ },
1846
+ "widget": null,
1847
+ "prompt": {
1848
+ "message": "Include sample model?",
1849
+ "type": "confirm",
1850
+ "when": "architecture === 'http'"
1851
+ },
1852
+ "deprecated": false,
1853
+ "since": "0.1.0"
1854
+ },
1855
+ "includeTesting": {
1856
+ "type": "boolean",
1857
+ "description": "Include test suite",
1858
+ "cliFlag": "--include-testing",
1859
+ "cliArgName": null,
1860
+ "envVar": "ML_INCLUDE_TESTING",
1861
+ "templateVar": "includeTesting",
1862
+ "configKey": "includeTesting",
1863
+ "default": true,
1864
+ "validation": {},
1865
+ "phase": "features",
1866
+ "group": "testing",
1867
+ "appliesTo": {
1868
+ "deploymentTargets": [
1869
+ "*"
1870
+ ],
1871
+ "architectures": [
1872
+ "*"
1873
+ ]
1874
+ },
1875
+ "widget": null,
1876
+ "prompt": {
1877
+ "message": "Include test suite?",
1878
+ "type": "confirm"
1879
+ },
1880
+ "deprecated": false,
1881
+ "since": "0.1.0"
1882
+ },
1883
+ "testTypes": {
1884
+ "type": "string",
1885
+ "description": "Comma-separated test types",
1886
+ "cliFlag": "--test-types",
1887
+ "cliArgName": "types",
1888
+ "envVar": "ML_TEST_TYPES",
1889
+ "templateVar": "testTypes",
1890
+ "configKey": "testTypes",
1891
+ "default": null,
1892
+ "validation": {},
1893
+ "phase": "features",
1894
+ "group": "testing",
1895
+ "appliesTo": {
1896
+ "deploymentTargets": [
1897
+ "*"
1898
+ ],
1899
+ "architectures": [
1900
+ "*"
1901
+ ]
1902
+ },
1903
+ "widget": null,
1904
+ "prompt": null,
1905
+ "deprecated": false,
1906
+ "since": "0.1.0"
1907
+ },
1908
+ "smart": {
1909
+ "type": "boolean",
1910
+ "description": "Enable smart mode (live AWS API calls for MCP servers)",
1911
+ "cliFlag": "--smart",
1912
+ "cliArgName": null,
1913
+ "envVar": null,
1914
+ "templateVar": null,
1915
+ "configKey": "smart",
1916
+ "default": false,
1917
+ "validation": {},
1918
+ "phase": "project",
1919
+ "group": "project",
1920
+ "appliesTo": {
1921
+ "deploymentTargets": [
1922
+ "*"
1923
+ ],
1924
+ "architectures": [
1925
+ "*"
1926
+ ]
1927
+ },
1928
+ "widget": null,
1929
+ "prompt": null,
1930
+ "cliBehavior": true,
1931
+ "deprecated": false,
1932
+ "since": "0.5.0"
1933
+ },
1934
+ "discover": {
1935
+ "type": "boolean",
1936
+ "description": "Enable discovery mode for MCP servers",
1937
+ "cliFlag": "--discover",
1938
+ "cliArgName": null,
1939
+ "envVar": null,
1940
+ "templateVar": null,
1941
+ "configKey": "discover",
1942
+ "default": false,
1943
+ "validation": {},
1944
+ "phase": "project",
1945
+ "group": "project",
1946
+ "appliesTo": {
1947
+ "deploymentTargets": [
1948
+ "*"
1949
+ ],
1950
+ "architectures": [
1951
+ "*"
1952
+ ]
1953
+ },
1954
+ "widget": null,
1955
+ "prompt": null,
1956
+ "cliBehavior": true,
1957
+ "deprecated": false,
1958
+ "since": "0.5.0"
1959
+ },
1960
+ "noValidate": {
1961
+ "type": "boolean",
1962
+ "description": "Skip parameter validation",
1963
+ "cliFlag": "--no-validate",
1964
+ "cliArgName": null,
1965
+ "envVar": null,
1966
+ "templateVar": null,
1967
+ "configKey": "noValidate",
1968
+ "default": false,
1969
+ "validation": {},
1970
+ "phase": "project",
1971
+ "group": "project",
1972
+ "appliesTo": {
1973
+ "deploymentTargets": [
1974
+ "*"
1975
+ ],
1976
+ "architectures": [
1977
+ "*"
1978
+ ]
1979
+ },
1980
+ "widget": null,
1981
+ "prompt": null,
1982
+ "cliBehavior": true,
1983
+ "deprecated": false,
1984
+ "since": "0.5.0"
1985
+ },
1986
+ "validateEnvVars": {
1987
+ "type": "boolean",
1988
+ "description": "Validate environment variables against schema",
1989
+ "cliFlag": "--validate-env-vars",
1990
+ "cliArgName": null,
1991
+ "envVar": null,
1992
+ "templateVar": null,
1993
+ "configKey": "validateEnvVars",
1994
+ "default": false,
1995
+ "validation": {},
1996
+ "phase": "project",
1997
+ "group": "project",
1998
+ "appliesTo": {
1999
+ "deploymentTargets": [
2000
+ "*"
2001
+ ],
2002
+ "architectures": [
2003
+ "*"
2004
+ ]
2005
+ },
2006
+ "widget": null,
2007
+ "prompt": null,
2008
+ "cliBehavior": true,
2009
+ "deprecated": false,
2010
+ "since": "0.6.0"
2011
+ },
2012
+ "validateWithDocker": {
2013
+ "type": "boolean",
2014
+ "description": "Validate Dockerfile builds successfully",
2015
+ "cliFlag": "--validate-with-docker",
2016
+ "cliArgName": null,
2017
+ "envVar": null,
2018
+ "templateVar": null,
2019
+ "configKey": "validateWithDocker",
2020
+ "default": false,
2021
+ "validation": {},
2022
+ "phase": "project",
2023
+ "group": "project",
2024
+ "appliesTo": {
2025
+ "deploymentTargets": [
2026
+ "*"
2027
+ ],
2028
+ "architectures": [
2029
+ "*"
2030
+ ]
2031
+ },
2032
+ "widget": null,
2033
+ "prompt": null,
2034
+ "cliBehavior": true,
2035
+ "deprecated": false,
2036
+ "since": "0.6.0"
2037
+ },
2038
+ "offline": {
2039
+ "type": "boolean",
2040
+ "description": "Run in offline mode (no network calls)",
2041
+ "cliFlag": "--offline",
2042
+ "cliArgName": null,
2043
+ "envVar": null,
2044
+ "templateVar": null,
2045
+ "configKey": "offline",
2046
+ "default": false,
2047
+ "validation": {},
2048
+ "phase": "project",
2049
+ "group": "project",
2050
+ "appliesTo": {
2051
+ "deploymentTargets": [
2052
+ "*"
2053
+ ],
2054
+ "architectures": [
2055
+ "*"
2056
+ ]
2057
+ },
2058
+ "widget": null,
2059
+ "prompt": null,
2060
+ "cliBehavior": true,
2061
+ "deprecated": false,
2062
+ "since": "0.6.0"
2063
+ }
2064
+ }
2065
+ }