@dmgnr/kuber 1.0.0 → 1.1.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.
@@ -0,0 +1,2595 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * Compose application or sub-projects to be included.
10
+ */
11
+ export type Include =
12
+ | string
13
+ | {
14
+ /**
15
+ * Path to the Compose application or sub-project files to include.
16
+ */
17
+ path?: string | ListOfStrings;
18
+ /**
19
+ * Path to the environment files to use to define default values when interpolating variables in the Compose files being parsed.
20
+ */
21
+ env_file?: string | ListOfStrings;
22
+ /**
23
+ * Path to resolve relative paths set in the Compose file
24
+ */
25
+ project_directory?: string;
26
+ };
27
+ /**
28
+ * A list of string values.
29
+ */
30
+ export type ListOfStrings = string[];
31
+ /**
32
+ * Development configuration for the service, used for development workflows.
33
+ */
34
+ export type Development = {
35
+ /**
36
+ * Configure watch mode for the service, which monitors file changes and performs actions in response.
37
+ */
38
+ watch?: {
39
+ /**
40
+ * Patterns to exclude from watching.
41
+ */
42
+ ignore?: string | ListOfStrings;
43
+ /**
44
+ * Patterns to include in watching.
45
+ */
46
+ include?: string | ListOfStrings;
47
+ /**
48
+ * Path to watch for changes.
49
+ */
50
+ path: string;
51
+ /**
52
+ * Action to take when a change is detected: rebuild the container, sync files, restart the container, sync and restart, or sync and execute a command.
53
+ */
54
+ action: "rebuild" | "sync" | "restart" | "sync+restart" | "sync+exec";
55
+ /**
56
+ * Target path in the container for sync operations.
57
+ */
58
+ target?: string;
59
+ exec?: ServiceHook;
60
+ /**
61
+ * Ensure that an initial synchronization is done before starting watch mode for sync+x triggers
62
+ */
63
+ initial_sync?: boolean;
64
+ /**
65
+ * This interface was referenced by `undefined`'s JSON-Schema definition
66
+ * via the `patternProperty` "^x-".
67
+ */
68
+ [k: string]: unknown;
69
+ }[];
70
+ /**
71
+ * This interface was referenced by `undefined`'s JSON-Schema definition
72
+ * via the `patternProperty` "^x-".
73
+ *
74
+ * This interface was referenced by `undefined`'s JSON-Schema definition
75
+ * via the `patternProperty` "^x-".
76
+ */
77
+ [k: string]: unknown;
78
+ } & Development1;
79
+ export type Development1 = {
80
+ /**
81
+ * Configure watch mode for the service, which monitors file changes and performs actions in response.
82
+ */
83
+ watch?: {
84
+ /**
85
+ * Patterns to exclude from watching.
86
+ */
87
+ ignore?: string | ListOfStrings;
88
+ /**
89
+ * Patterns to include in watching.
90
+ */
91
+ include?: string | ListOfStrings;
92
+ /**
93
+ * Path to watch for changes.
94
+ */
95
+ path: string;
96
+ /**
97
+ * Action to take when a change is detected: rebuild the container, sync files, restart the container, sync and restart, or sync and execute a command.
98
+ */
99
+ action: "rebuild" | "sync" | "restart" | "sync+restart" | "sync+exec";
100
+ /**
101
+ * Target path in the container for sync operations.
102
+ */
103
+ target?: string;
104
+ exec?: ServiceHook;
105
+ /**
106
+ * Ensure that an initial synchronization is done before starting watch mode for sync+x triggers
107
+ */
108
+ initial_sync?: boolean;
109
+ /**
110
+ * This interface was referenced by `undefined`'s JSON-Schema definition
111
+ * via the `patternProperty` "^x-".
112
+ */
113
+ [k: string]: unknown;
114
+ }[];
115
+ /**
116
+ * This interface was referenced by `undefined`'s JSON-Schema definition
117
+ * via the `patternProperty` "^x-".
118
+ *
119
+ * This interface was referenced by `undefined`'s JSON-Schema definition
120
+ * via the `patternProperty` "^x-".
121
+ */
122
+ [k: string]: unknown;
123
+ } | null;
124
+ /**
125
+ * Deployment configuration for the service.
126
+ */
127
+ export type Deployment = {
128
+ /**
129
+ * Deployment mode for the service: 'replicated' (default) or 'global'.
130
+ */
131
+ mode?: string;
132
+ /**
133
+ * Endpoint mode for the service: 'vip' (default) or 'dnsrr'.
134
+ */
135
+ endpoint_mode?: string;
136
+ /**
137
+ * Number of replicas of the service container to run.
138
+ */
139
+ replicas?: number | string;
140
+ /**
141
+ * Labels to apply to the service.
142
+ */
143
+ labels?:
144
+ | {
145
+ /**
146
+ * Value for the key, which can be a string, number, boolean, or null.
147
+ *
148
+ * This interface was referenced by `undefined`'s JSON-Schema definition
149
+ * via the `patternProperty` ".+".
150
+ */
151
+ [k: string]: string | number | boolean | null;
152
+ }
153
+ | string[];
154
+ /**
155
+ * Configuration for rolling back a service update.
156
+ */
157
+ rollback_config?: {
158
+ /**
159
+ * The number of containers to rollback at a time. If set to 0, all containers rollback simultaneously.
160
+ */
161
+ parallelism?: number | string;
162
+ /**
163
+ * The time to wait between each container group's rollback (e.g., '1s', '1m30s').
164
+ */
165
+ delay?: string;
166
+ /**
167
+ * Action to take if a rollback fails: 'continue', 'pause'.
168
+ */
169
+ failure_action?: string;
170
+ /**
171
+ * Duration to monitor each task for failures after it is created (e.g., '1s', '1m30s').
172
+ */
173
+ monitor?: string;
174
+ /**
175
+ * Failure rate to tolerate during a rollback.
176
+ */
177
+ max_failure_ratio?: number | string;
178
+ /**
179
+ * Order of operations during rollbacks: 'stop-first' (default) or 'start-first'.
180
+ */
181
+ order?: "start-first" | "stop-first";
182
+ /**
183
+ * This interface was referenced by `undefined`'s JSON-Schema definition
184
+ * via the `patternProperty` "^x-".
185
+ */
186
+ [k: string]: unknown;
187
+ };
188
+ /**
189
+ * Configuration for updating a service.
190
+ */
191
+ update_config?: {
192
+ /**
193
+ * The number of containers to update at a time.
194
+ */
195
+ parallelism?: number | string;
196
+ /**
197
+ * The time to wait between updating a group of containers (e.g., '1s', '1m30s').
198
+ */
199
+ delay?: string;
200
+ /**
201
+ * Action to take if an update fails: 'continue', 'pause', 'rollback'.
202
+ */
203
+ failure_action?: string;
204
+ /**
205
+ * Duration to monitor each updated task for failures after it is created (e.g., '1s', '1m30s').
206
+ */
207
+ monitor?: string;
208
+ /**
209
+ * Failure rate to tolerate during an update (0 to 1).
210
+ */
211
+ max_failure_ratio?: number | string;
212
+ /**
213
+ * Order of operations during updates: 'stop-first' (default) or 'start-first'.
214
+ */
215
+ order?: "start-first" | "stop-first";
216
+ /**
217
+ * This interface was referenced by `undefined`'s JSON-Schema definition
218
+ * via the `patternProperty` "^x-".
219
+ */
220
+ [k: string]: unknown;
221
+ };
222
+ /**
223
+ * Resource constraints and reservations for the service.
224
+ */
225
+ resources?: {
226
+ /**
227
+ * Resource limits for the service containers.
228
+ */
229
+ limits?: {
230
+ /**
231
+ * Limit for how much of the available CPU resources, as number of cores, a container can use.
232
+ */
233
+ cpus?: number | string;
234
+ /**
235
+ * Limit on the amount of memory a container can allocate (e.g., '1g', '1024m').
236
+ */
237
+ memory?: string;
238
+ /**
239
+ * Maximum number of PIDs available to the container.
240
+ */
241
+ pids?: number | string;
242
+ /**
243
+ * This interface was referenced by `undefined`'s JSON-Schema definition
244
+ * via the `patternProperty` "^x-".
245
+ */
246
+ [k: string]: unknown;
247
+ };
248
+ /**
249
+ * Resource reservations for the service containers.
250
+ */
251
+ reservations?: {
252
+ /**
253
+ * Reservation for how much of the available CPU resources, as number of cores, a container can use.
254
+ */
255
+ cpus?: number | string;
256
+ /**
257
+ * Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m').
258
+ */
259
+ memory?: string;
260
+ generic_resources?: GenericResources;
261
+ devices?: Devices;
262
+ /**
263
+ * This interface was referenced by `undefined`'s JSON-Schema definition
264
+ * via the `patternProperty` "^x-".
265
+ */
266
+ [k: string]: unknown;
267
+ };
268
+ /**
269
+ * This interface was referenced by `undefined`'s JSON-Schema definition
270
+ * via the `patternProperty` "^x-".
271
+ */
272
+ [k: string]: unknown;
273
+ };
274
+ /**
275
+ * Restart policy for the service containers.
276
+ */
277
+ restart_policy?: {
278
+ /**
279
+ * Condition for restarting the container: 'none', 'on-failure', 'any'.
280
+ */
281
+ condition?: string;
282
+ /**
283
+ * Delay between restart attempts (e.g., '1s', '1m30s').
284
+ */
285
+ delay?: string;
286
+ /**
287
+ * Maximum number of restart attempts before giving up.
288
+ */
289
+ max_attempts?: number | string;
290
+ /**
291
+ * Time window used to evaluate the restart policy (e.g., '1s', '1m30s').
292
+ */
293
+ window?: string;
294
+ /**
295
+ * This interface was referenced by `undefined`'s JSON-Schema definition
296
+ * via the `patternProperty` "^x-".
297
+ */
298
+ [k: string]: unknown;
299
+ };
300
+ /**
301
+ * Constraints and preferences for the platform to select a physical node to run service containers
302
+ */
303
+ placement?: {
304
+ /**
305
+ * Placement constraints for the service (e.g., 'node.role==manager').
306
+ */
307
+ constraints?: string[];
308
+ /**
309
+ * Placement preferences for the service.
310
+ */
311
+ preferences?: {
312
+ /**
313
+ * Spread tasks evenly across values of the specified node label.
314
+ */
315
+ spread?: string;
316
+ /**
317
+ * This interface was referenced by `undefined`'s JSON-Schema definition
318
+ * via the `patternProperty` "^x-".
319
+ */
320
+ [k: string]: unknown;
321
+ }[];
322
+ /**
323
+ * Maximum number of replicas of the service.
324
+ */
325
+ max_replicas_per_node?: number | string;
326
+ /**
327
+ * This interface was referenced by `undefined`'s JSON-Schema definition
328
+ * via the `patternProperty` "^x-".
329
+ */
330
+ [k: string]: unknown;
331
+ };
332
+ /**
333
+ * This interface was referenced by `undefined`'s JSON-Schema definition
334
+ * via the `patternProperty` "^x-".
335
+ *
336
+ * This interface was referenced by `undefined`'s JSON-Schema definition
337
+ * via the `patternProperty` "^x-".
338
+ */
339
+ [k: string]: unknown;
340
+ } & Deployment1;
341
+ /**
342
+ * User-defined resources to reserve.
343
+ */
344
+ export type GenericResources = {
345
+ /**
346
+ * Specification for discrete (countable) resources.
347
+ */
348
+ discrete_resource_spec?: {
349
+ /**
350
+ * Type of resource (e.g., 'GPU', 'FPGA', 'SSD').
351
+ */
352
+ kind?: string;
353
+ /**
354
+ * Number of resources of this kind to reserve.
355
+ */
356
+ value?: number | string;
357
+ /**
358
+ * This interface was referenced by `undefined`'s JSON-Schema definition
359
+ * via the `patternProperty` "^x-".
360
+ */
361
+ [k: string]: unknown;
362
+ };
363
+ /**
364
+ * This interface was referenced by `undefined`'s JSON-Schema definition
365
+ * via the `patternProperty` "^x-".
366
+ */
367
+ [k: string]: unknown;
368
+ }[];
369
+ /**
370
+ * List of capabilities the device needs to have (e.g., 'gpu', 'compute', 'utility').
371
+ */
372
+ export type ListOfStrings1 = string[];
373
+ /**
374
+ * List of specific device IDs to reserve.
375
+ */
376
+ export type ListOfStrings2 = string[];
377
+ /**
378
+ * Device reservations for the container.
379
+ */
380
+ export type Devices = {
381
+ capabilities: ListOfStrings1;
382
+ /**
383
+ * Number of devices of this type to reserve.
384
+ */
385
+ count?: string | number;
386
+ device_ids?: ListOfStrings2;
387
+ /**
388
+ * Device driver to use (e.g., 'nvidia').
389
+ */
390
+ driver?: string;
391
+ /**
392
+ * Driver-specific options for the device.
393
+ */
394
+ options?:
395
+ | {
396
+ /**
397
+ * Value for the key, which can be a string, number, boolean, or null.
398
+ *
399
+ * This interface was referenced by `undefined`'s JSON-Schema definition
400
+ * via the `patternProperty` ".+".
401
+ */
402
+ [k: string]: string | number | boolean | null;
403
+ }
404
+ | string[];
405
+ /**
406
+ * This interface was referenced by `undefined`'s JSON-Schema definition
407
+ * via the `patternProperty` "^x-".
408
+ */
409
+ [k: string]: unknown;
410
+ }[];
411
+ export type Deployment1 = {
412
+ /**
413
+ * Deployment mode for the service: 'replicated' (default) or 'global'.
414
+ */
415
+ mode?: string;
416
+ /**
417
+ * Endpoint mode for the service: 'vip' (default) or 'dnsrr'.
418
+ */
419
+ endpoint_mode?: string;
420
+ /**
421
+ * Number of replicas of the service container to run.
422
+ */
423
+ replicas?: number | string;
424
+ /**
425
+ * Labels to apply to the service.
426
+ */
427
+ labels?:
428
+ | {
429
+ /**
430
+ * Value for the key, which can be a string, number, boolean, or null.
431
+ *
432
+ * This interface was referenced by `undefined`'s JSON-Schema definition
433
+ * via the `patternProperty` ".+".
434
+ */
435
+ [k: string]: string | number | boolean | null;
436
+ }
437
+ | string[];
438
+ /**
439
+ * Configuration for rolling back a service update.
440
+ */
441
+ rollback_config?: {
442
+ /**
443
+ * The number of containers to rollback at a time. If set to 0, all containers rollback simultaneously.
444
+ */
445
+ parallelism?: number | string;
446
+ /**
447
+ * The time to wait between each container group's rollback (e.g., '1s', '1m30s').
448
+ */
449
+ delay?: string;
450
+ /**
451
+ * Action to take if a rollback fails: 'continue', 'pause'.
452
+ */
453
+ failure_action?: string;
454
+ /**
455
+ * Duration to monitor each task for failures after it is created (e.g., '1s', '1m30s').
456
+ */
457
+ monitor?: string;
458
+ /**
459
+ * Failure rate to tolerate during a rollback.
460
+ */
461
+ max_failure_ratio?: number | string;
462
+ /**
463
+ * Order of operations during rollbacks: 'stop-first' (default) or 'start-first'.
464
+ */
465
+ order?: "start-first" | "stop-first";
466
+ /**
467
+ * This interface was referenced by `undefined`'s JSON-Schema definition
468
+ * via the `patternProperty` "^x-".
469
+ */
470
+ [k: string]: unknown;
471
+ };
472
+ /**
473
+ * Configuration for updating a service.
474
+ */
475
+ update_config?: {
476
+ /**
477
+ * The number of containers to update at a time.
478
+ */
479
+ parallelism?: number | string;
480
+ /**
481
+ * The time to wait between updating a group of containers (e.g., '1s', '1m30s').
482
+ */
483
+ delay?: string;
484
+ /**
485
+ * Action to take if an update fails: 'continue', 'pause', 'rollback'.
486
+ */
487
+ failure_action?: string;
488
+ /**
489
+ * Duration to monitor each updated task for failures after it is created (e.g., '1s', '1m30s').
490
+ */
491
+ monitor?: string;
492
+ /**
493
+ * Failure rate to tolerate during an update (0 to 1).
494
+ */
495
+ max_failure_ratio?: number | string;
496
+ /**
497
+ * Order of operations during updates: 'stop-first' (default) or 'start-first'.
498
+ */
499
+ order?: "start-first" | "stop-first";
500
+ /**
501
+ * This interface was referenced by `undefined`'s JSON-Schema definition
502
+ * via the `patternProperty` "^x-".
503
+ */
504
+ [k: string]: unknown;
505
+ };
506
+ /**
507
+ * Resource constraints and reservations for the service.
508
+ */
509
+ resources?: {
510
+ /**
511
+ * Resource limits for the service containers.
512
+ */
513
+ limits?: {
514
+ /**
515
+ * Limit for how much of the available CPU resources, as number of cores, a container can use.
516
+ */
517
+ cpus?: number | string;
518
+ /**
519
+ * Limit on the amount of memory a container can allocate (e.g., '1g', '1024m').
520
+ */
521
+ memory?: string;
522
+ /**
523
+ * Maximum number of PIDs available to the container.
524
+ */
525
+ pids?: number | string;
526
+ /**
527
+ * This interface was referenced by `undefined`'s JSON-Schema definition
528
+ * via the `patternProperty` "^x-".
529
+ */
530
+ [k: string]: unknown;
531
+ };
532
+ /**
533
+ * Resource reservations for the service containers.
534
+ */
535
+ reservations?: {
536
+ /**
537
+ * Reservation for how much of the available CPU resources, as number of cores, a container can use.
538
+ */
539
+ cpus?: number | string;
540
+ /**
541
+ * Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m').
542
+ */
543
+ memory?: string;
544
+ generic_resources?: GenericResources;
545
+ devices?: Devices;
546
+ /**
547
+ * This interface was referenced by `undefined`'s JSON-Schema definition
548
+ * via the `patternProperty` "^x-".
549
+ */
550
+ [k: string]: unknown;
551
+ };
552
+ /**
553
+ * This interface was referenced by `undefined`'s JSON-Schema definition
554
+ * via the `patternProperty` "^x-".
555
+ */
556
+ [k: string]: unknown;
557
+ };
558
+ /**
559
+ * Restart policy for the service containers.
560
+ */
561
+ restart_policy?: {
562
+ /**
563
+ * Condition for restarting the container: 'none', 'on-failure', 'any'.
564
+ */
565
+ condition?: string;
566
+ /**
567
+ * Delay between restart attempts (e.g., '1s', '1m30s').
568
+ */
569
+ delay?: string;
570
+ /**
571
+ * Maximum number of restart attempts before giving up.
572
+ */
573
+ max_attempts?: number | string;
574
+ /**
575
+ * Time window used to evaluate the restart policy (e.g., '1s', '1m30s').
576
+ */
577
+ window?: string;
578
+ /**
579
+ * This interface was referenced by `undefined`'s JSON-Schema definition
580
+ * via the `patternProperty` "^x-".
581
+ */
582
+ [k: string]: unknown;
583
+ };
584
+ /**
585
+ * Constraints and preferences for the platform to select a physical node to run service containers
586
+ */
587
+ placement?: {
588
+ /**
589
+ * Placement constraints for the service (e.g., 'node.role==manager').
590
+ */
591
+ constraints?: string[];
592
+ /**
593
+ * Placement preferences for the service.
594
+ */
595
+ preferences?: {
596
+ /**
597
+ * Spread tasks evenly across values of the specified node label.
598
+ */
599
+ spread?: string;
600
+ /**
601
+ * This interface was referenced by `undefined`'s JSON-Schema definition
602
+ * via the `patternProperty` "^x-".
603
+ */
604
+ [k: string]: unknown;
605
+ }[];
606
+ /**
607
+ * Maximum number of replicas of the service.
608
+ */
609
+ max_replicas_per_node?: number | string;
610
+ /**
611
+ * This interface was referenced by `undefined`'s JSON-Schema definition
612
+ * via the `patternProperty` "^x-".
613
+ */
614
+ [k: string]: unknown;
615
+ };
616
+ /**
617
+ * This interface was referenced by `undefined`'s JSON-Schema definition
618
+ * via the `patternProperty` "^x-".
619
+ *
620
+ * This interface was referenced by `undefined`'s JSON-Schema definition
621
+ * via the `patternProperty` "^x-".
622
+ */
623
+ [k: string]: unknown;
624
+ } | null;
625
+ /**
626
+ * Either a dictionary mapping keys to values, or a list of strings.
627
+ */
628
+ export type ListOrDict =
629
+ | {
630
+ /**
631
+ * Value for the key, which can be a string, number, boolean, or null.
632
+ *
633
+ * This interface was referenced by `undefined`'s JSON-Schema definition
634
+ * via the `patternProperty` ".+".
635
+ */
636
+ [k: string]: string | number | boolean | null;
637
+ }
638
+ | string[];
639
+ /**
640
+ * Secrets to expose to the build. These are accessible at build-time.
641
+ */
642
+ export type ServiceConfigOrSecret = (
643
+ | string
644
+ | {
645
+ /**
646
+ * Name of the config or secret as defined in the top-level configs or secrets section.
647
+ */
648
+ source?: string;
649
+ /**
650
+ * Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
651
+ */
652
+ target?: string;
653
+ /**
654
+ * UID of the file in the container. Default is 0 (root).
655
+ */
656
+ uid?: string;
657
+ /**
658
+ * GID of the file in the container. Default is 0 (root).
659
+ */
660
+ gid?: string;
661
+ /**
662
+ * File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
663
+ */
664
+ mode?: number | string;
665
+ /**
666
+ * This interface was referenced by `undefined`'s JSON-Schema definition
667
+ * via the `patternProperty` "^x-".
668
+ */
669
+ [k: string]: unknown;
670
+ }
671
+ )[];
672
+ /**
673
+ * Grant access to Configs on a per-service basis.
674
+ */
675
+ export type ServiceConfigOrSecret1 = (
676
+ | string
677
+ | {
678
+ /**
679
+ * Name of the config or secret as defined in the top-level configs or secrets section.
680
+ */
681
+ source?: string;
682
+ /**
683
+ * Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
684
+ */
685
+ target?: string;
686
+ /**
687
+ * UID of the file in the container. Default is 0 (root).
688
+ */
689
+ uid?: string;
690
+ /**
691
+ * GID of the file in the container. Default is 0 (root).
692
+ */
693
+ gid?: string;
694
+ /**
695
+ * File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
696
+ */
697
+ mode?: number | string;
698
+ /**
699
+ * This interface was referenced by `undefined`'s JSON-Schema definition
700
+ * via the `patternProperty` "^x-".
701
+ */
702
+ [k: string]: unknown;
703
+ }
704
+ )[];
705
+ /**
706
+ * A list of unique string values.
707
+ */
708
+ export type ListOfStrings3 = string[];
709
+ /**
710
+ * A list of unique string values.
711
+ */
712
+ export type ListOfStrings4 = string[];
713
+ /**
714
+ * A list of unique string values.
715
+ */
716
+ export type ListOfStrings5 = string[];
717
+ /**
718
+ * A list of unique string values.
719
+ */
720
+ export type ListOfStrings6 = string[];
721
+ /**
722
+ * A list of unique string values.
723
+ */
724
+ export type ListOfStrings7 = string[];
725
+ /**
726
+ * A list of unique string values.
727
+ */
728
+ export type ListOfStrings8 = string[];
729
+ /**
730
+ * A list of unique string values.
731
+ */
732
+ export type ListOfStrings9 = string[];
733
+ /**
734
+ * Grant access to Secrets on a per-service basis.
735
+ */
736
+ export type ServiceConfigOrSecret2 = (
737
+ | string
738
+ | {
739
+ /**
740
+ * Name of the config or secret as defined in the top-level configs or secrets section.
741
+ */
742
+ source?: string;
743
+ /**
744
+ * Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
745
+ */
746
+ target?: string;
747
+ /**
748
+ * UID of the file in the container. Default is 0 (root).
749
+ */
750
+ uid?: string;
751
+ /**
752
+ * GID of the file in the container. Default is 0 (root).
753
+ */
754
+ gid?: string;
755
+ /**
756
+ * File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
757
+ */
758
+ mode?: number | string;
759
+ /**
760
+ * This interface was referenced by `undefined`'s JSON-Schema definition
761
+ * via the `patternProperty` "^x-".
762
+ */
763
+ [k: string]: unknown;
764
+ }
765
+ )[];
766
+ /**
767
+ * Network configuration for the Compose application.
768
+ *
769
+ * This interface was referenced by `undefined`'s JSON-Schema definition
770
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
771
+ */
772
+ export type Network = {
773
+ /**
774
+ * Custom name for this network.
775
+ */
776
+ name?: string;
777
+ /**
778
+ * Specify which driver should be used for this network. Default is 'bridge'.
779
+ */
780
+ driver?: string;
781
+ /**
782
+ * Specify driver-specific options defined as key/value pairs.
783
+ */
784
+ driver_opts?: {
785
+ /**
786
+ * This interface was referenced by `undefined`'s JSON-Schema definition
787
+ * via the `patternProperty` "^.+$".
788
+ */
789
+ [k: string]: string | number;
790
+ };
791
+ /**
792
+ * Custom IP Address Management configuration for this network.
793
+ */
794
+ ipam?: {
795
+ /**
796
+ * Custom IPAM driver, instead of the default.
797
+ */
798
+ driver?: string;
799
+ /**
800
+ * List of IPAM configuration blocks.
801
+ */
802
+ config?: {
803
+ /**
804
+ * Subnet in CIDR format that represents a network segment.
805
+ */
806
+ subnet?: string;
807
+ /**
808
+ * Range of IPs from which to allocate container IPs.
809
+ */
810
+ ip_range?: string;
811
+ /**
812
+ * IPv4 or IPv6 gateway for the subnet.
813
+ */
814
+ gateway?: string;
815
+ /**
816
+ * Auxiliary IPv4 or IPv6 addresses used by Network driver.
817
+ */
818
+ aux_addresses?: {
819
+ /**
820
+ * This interface was referenced by `undefined`'s JSON-Schema definition
821
+ * via the `patternProperty` "^.+$".
822
+ */
823
+ [k: string]: string;
824
+ };
825
+ /**
826
+ * This interface was referenced by `undefined`'s JSON-Schema definition
827
+ * via the `patternProperty` "^x-".
828
+ */
829
+ [k: string]: unknown;
830
+ }[];
831
+ /**
832
+ * Driver-specific options for the IPAM driver.
833
+ */
834
+ options?: {
835
+ /**
836
+ * This interface was referenced by `undefined`'s JSON-Schema definition
837
+ * via the `patternProperty` "^.+$".
838
+ */
839
+ [k: string]: string;
840
+ };
841
+ /**
842
+ * This interface was referenced by `undefined`'s JSON-Schema definition
843
+ * via the `patternProperty` "^x-".
844
+ */
845
+ [k: string]: unknown;
846
+ };
847
+ /**
848
+ * Specifies that this network already exists and was created outside of Compose.
849
+ */
850
+ external?:
851
+ | boolean
852
+ | string
853
+ | {
854
+ /**
855
+ * @deprecated
856
+ * Specifies the name of the external network. Deprecated: use the 'name' property instead.
857
+ */
858
+ name?: string;
859
+ /**
860
+ * This interface was referenced by `undefined`'s JSON-Schema definition
861
+ * via the `patternProperty` "^x-".
862
+ */
863
+ [k: string]: unknown;
864
+ };
865
+ /**
866
+ * Create an externally isolated network.
867
+ */
868
+ internal?: boolean | string;
869
+ /**
870
+ * Enable IPv4 networking.
871
+ */
872
+ enable_ipv4?: boolean | string;
873
+ /**
874
+ * Enable IPv6 networking.
875
+ */
876
+ enable_ipv6?: boolean | string;
877
+ /**
878
+ * If true, standalone containers can attach to this network.
879
+ */
880
+ attachable?: boolean | string;
881
+ /**
882
+ * Either a dictionary mapping keys to values, or a list of strings.
883
+ */
884
+ labels?:
885
+ | {
886
+ /**
887
+ * Value for the key, which can be a string, number, boolean, or null.
888
+ *
889
+ * This interface was referenced by `undefined`'s JSON-Schema definition
890
+ * via the `patternProperty` ".+".
891
+ */
892
+ [k: string]: string | number | boolean | null;
893
+ }
894
+ | string[];
895
+ /**
896
+ * This interface was referenced by `undefined`'s JSON-Schema definition
897
+ * via the `patternProperty` "^x-".
898
+ *
899
+ * This interface was referenced by `undefined`'s JSON-Schema definition
900
+ * via the `patternProperty` "^x-".
901
+ */
902
+ [k: string]: unknown;
903
+ } & Network1;
904
+ export type Network1 = {
905
+ /**
906
+ * Custom name for this network.
907
+ */
908
+ name?: string;
909
+ /**
910
+ * Specify which driver should be used for this network. Default is 'bridge'.
911
+ */
912
+ driver?: string;
913
+ /**
914
+ * Specify driver-specific options defined as key/value pairs.
915
+ */
916
+ driver_opts?: {
917
+ /**
918
+ * This interface was referenced by `undefined`'s JSON-Schema definition
919
+ * via the `patternProperty` "^.+$".
920
+ */
921
+ [k: string]: string | number;
922
+ };
923
+ /**
924
+ * Custom IP Address Management configuration for this network.
925
+ */
926
+ ipam?: {
927
+ /**
928
+ * Custom IPAM driver, instead of the default.
929
+ */
930
+ driver?: string;
931
+ /**
932
+ * List of IPAM configuration blocks.
933
+ */
934
+ config?: {
935
+ /**
936
+ * Subnet in CIDR format that represents a network segment.
937
+ */
938
+ subnet?: string;
939
+ /**
940
+ * Range of IPs from which to allocate container IPs.
941
+ */
942
+ ip_range?: string;
943
+ /**
944
+ * IPv4 or IPv6 gateway for the subnet.
945
+ */
946
+ gateway?: string;
947
+ /**
948
+ * Auxiliary IPv4 or IPv6 addresses used by Network driver.
949
+ */
950
+ aux_addresses?: {
951
+ /**
952
+ * This interface was referenced by `undefined`'s JSON-Schema definition
953
+ * via the `patternProperty` "^.+$".
954
+ */
955
+ [k: string]: string;
956
+ };
957
+ /**
958
+ * This interface was referenced by `undefined`'s JSON-Schema definition
959
+ * via the `patternProperty` "^x-".
960
+ */
961
+ [k: string]: unknown;
962
+ }[];
963
+ /**
964
+ * Driver-specific options for the IPAM driver.
965
+ */
966
+ options?: {
967
+ /**
968
+ * This interface was referenced by `undefined`'s JSON-Schema definition
969
+ * via the `patternProperty` "^.+$".
970
+ */
971
+ [k: string]: string;
972
+ };
973
+ /**
974
+ * This interface was referenced by `undefined`'s JSON-Schema definition
975
+ * via the `patternProperty` "^x-".
976
+ */
977
+ [k: string]: unknown;
978
+ };
979
+ /**
980
+ * Specifies that this network already exists and was created outside of Compose.
981
+ */
982
+ external?:
983
+ | boolean
984
+ | string
985
+ | {
986
+ /**
987
+ * @deprecated
988
+ * Specifies the name of the external network. Deprecated: use the 'name' property instead.
989
+ */
990
+ name?: string;
991
+ /**
992
+ * This interface was referenced by `undefined`'s JSON-Schema definition
993
+ * via the `patternProperty` "^x-".
994
+ */
995
+ [k: string]: unknown;
996
+ };
997
+ /**
998
+ * Create an externally isolated network.
999
+ */
1000
+ internal?: boolean | string;
1001
+ /**
1002
+ * Enable IPv4 networking.
1003
+ */
1004
+ enable_ipv4?: boolean | string;
1005
+ /**
1006
+ * Enable IPv6 networking.
1007
+ */
1008
+ enable_ipv6?: boolean | string;
1009
+ /**
1010
+ * If true, standalone containers can attach to this network.
1011
+ */
1012
+ attachable?: boolean | string;
1013
+ /**
1014
+ * Either a dictionary mapping keys to values, or a list of strings.
1015
+ */
1016
+ labels?:
1017
+ | {
1018
+ /**
1019
+ * Value for the key, which can be a string, number, boolean, or null.
1020
+ *
1021
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1022
+ * via the `patternProperty` ".+".
1023
+ */
1024
+ [k: string]: string | number | boolean | null;
1025
+ }
1026
+ | string[];
1027
+ /**
1028
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1029
+ * via the `patternProperty` "^x-".
1030
+ *
1031
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1032
+ * via the `patternProperty` "^x-".
1033
+ */
1034
+ [k: string]: unknown;
1035
+ } | null;
1036
+ /**
1037
+ * Volume configuration for the Compose application.
1038
+ *
1039
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1040
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
1041
+ */
1042
+ export type Volume = {
1043
+ /**
1044
+ * Custom name for this volume.
1045
+ */
1046
+ name?: string;
1047
+ /**
1048
+ * Specify which volume driver should be used for this volume.
1049
+ */
1050
+ driver?: string;
1051
+ /**
1052
+ * Specify driver-specific options.
1053
+ */
1054
+ driver_opts?: {
1055
+ /**
1056
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1057
+ * via the `patternProperty` "^.+$".
1058
+ */
1059
+ [k: string]: string | number;
1060
+ };
1061
+ /**
1062
+ * Specifies that this volume already exists and was created outside of Compose.
1063
+ */
1064
+ external?:
1065
+ | boolean
1066
+ | string
1067
+ | {
1068
+ /**
1069
+ * @deprecated
1070
+ * Specifies the name of the external volume. Deprecated: use the 'name' property instead.
1071
+ */
1072
+ name?: string;
1073
+ /**
1074
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1075
+ * via the `patternProperty` "^x-".
1076
+ */
1077
+ [k: string]: unknown;
1078
+ };
1079
+ /**
1080
+ * Either a dictionary mapping keys to values, or a list of strings.
1081
+ */
1082
+ labels?:
1083
+ | {
1084
+ /**
1085
+ * Value for the key, which can be a string, number, boolean, or null.
1086
+ *
1087
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1088
+ * via the `patternProperty` ".+".
1089
+ */
1090
+ [k: string]: string | number | boolean | null;
1091
+ }
1092
+ | string[];
1093
+ /**
1094
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1095
+ * via the `patternProperty` "^x-".
1096
+ *
1097
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1098
+ * via the `patternProperty` "^x-".
1099
+ */
1100
+ [k: string]: unknown;
1101
+ } & Volume1;
1102
+ export type Volume1 = {
1103
+ /**
1104
+ * Custom name for this volume.
1105
+ */
1106
+ name?: string;
1107
+ /**
1108
+ * Specify which volume driver should be used for this volume.
1109
+ */
1110
+ driver?: string;
1111
+ /**
1112
+ * Specify driver-specific options.
1113
+ */
1114
+ driver_opts?: {
1115
+ /**
1116
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1117
+ * via the `patternProperty` "^.+$".
1118
+ */
1119
+ [k: string]: string | number;
1120
+ };
1121
+ /**
1122
+ * Specifies that this volume already exists and was created outside of Compose.
1123
+ */
1124
+ external?:
1125
+ | boolean
1126
+ | string
1127
+ | {
1128
+ /**
1129
+ * @deprecated
1130
+ * Specifies the name of the external volume. Deprecated: use the 'name' property instead.
1131
+ */
1132
+ name?: string;
1133
+ /**
1134
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1135
+ * via the `patternProperty` "^x-".
1136
+ */
1137
+ [k: string]: unknown;
1138
+ };
1139
+ /**
1140
+ * Either a dictionary mapping keys to values, or a list of strings.
1141
+ */
1142
+ labels?:
1143
+ | {
1144
+ /**
1145
+ * Value for the key, which can be a string, number, boolean, or null.
1146
+ *
1147
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1148
+ * via the `patternProperty` ".+".
1149
+ */
1150
+ [k: string]: string | number | boolean | null;
1151
+ }
1152
+ | string[];
1153
+ /**
1154
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1155
+ * via the `patternProperty` "^x-".
1156
+ *
1157
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1158
+ * via the `patternProperty` "^x-".
1159
+ */
1160
+ [k: string]: unknown;
1161
+ } | null;
1162
+
1163
+ /**
1164
+ * The Compose file is a YAML file defining a multi-containers based application.
1165
+ */
1166
+ export interface ComposeSpecification {
1167
+ /**
1168
+ * @deprecated
1169
+ * declared for backward compatibility, ignored. Please remove it.
1170
+ */
1171
+ version?: string;
1172
+ /**
1173
+ * define the Compose project name, until user defines one explicitly.
1174
+ */
1175
+ name?: string;
1176
+ /**
1177
+ * compose sub-projects to be included.
1178
+ */
1179
+ include?: Include[];
1180
+ /**
1181
+ * The services that will be used by your application.
1182
+ */
1183
+ services?: {
1184
+ [k: string]: Service;
1185
+ };
1186
+ /**
1187
+ * Language models that will be used by your application.
1188
+ */
1189
+ models?: {
1190
+ [k: string]: Model;
1191
+ };
1192
+ /**
1193
+ * Networks that are shared among multiple services.
1194
+ */
1195
+ networks?: {
1196
+ [k: string]: Network;
1197
+ };
1198
+ /**
1199
+ * Named volumes that are shared among multiple services.
1200
+ */
1201
+ volumes?: {
1202
+ [k: string]: Volume;
1203
+ };
1204
+ /**
1205
+ * Secrets that are shared among multiple services.
1206
+ */
1207
+ secrets?: {
1208
+ [k: string]: Secret;
1209
+ };
1210
+ /**
1211
+ * Configurations that are shared among multiple services.
1212
+ */
1213
+ configs?: {
1214
+ [k: string]: Config;
1215
+ };
1216
+ /**
1217
+ * This interface was referenced by `ComposeSpecification`'s JSON-Schema definition
1218
+ * via the `patternProperty` "^x-".
1219
+ */
1220
+ [k: string]: unknown;
1221
+ }
1222
+ /**
1223
+ * Configuration for a service.
1224
+ *
1225
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1226
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
1227
+ */
1228
+ export interface Service {
1229
+ develop?: Development;
1230
+ deploy?: Deployment;
1231
+ annotations?: ListOrDict;
1232
+ attach?: boolean | string;
1233
+ /**
1234
+ * Configuration options for building the service's image.
1235
+ */
1236
+ build?:
1237
+ | string
1238
+ | {
1239
+ /**
1240
+ * Path to the build context. Can be a relative path or a URL.
1241
+ */
1242
+ context?: string;
1243
+ /**
1244
+ * Name of the Dockerfile to use for building the image.
1245
+ */
1246
+ dockerfile?: string;
1247
+ /**
1248
+ * Inline Dockerfile content to use instead of a Dockerfile from the build context.
1249
+ */
1250
+ dockerfile_inline?: string;
1251
+ /**
1252
+ * List of extra privileged entitlements to grant to the build process.
1253
+ */
1254
+ entitlements?: string[];
1255
+ /**
1256
+ * Either a dictionary mapping keys to values, or a list of strings.
1257
+ */
1258
+ args?:
1259
+ | {
1260
+ /**
1261
+ * Value for the key, which can be a string, number, boolean, or null.
1262
+ *
1263
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1264
+ * via the `patternProperty` ".+".
1265
+ */
1266
+ [k: string]: string | number | boolean | null;
1267
+ }
1268
+ | string[];
1269
+ /**
1270
+ * Either a dictionary mapping keys to values, or a list of strings.
1271
+ */
1272
+ ssh?:
1273
+ | {
1274
+ /**
1275
+ * Value for the key, which can be a string, number, boolean, or null.
1276
+ *
1277
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1278
+ * via the `patternProperty` ".+".
1279
+ */
1280
+ [k: string]: string | number | boolean | null;
1281
+ }
1282
+ | string[];
1283
+ /**
1284
+ * Either a dictionary mapping keys to values, or a list of strings.
1285
+ */
1286
+ labels?:
1287
+ | {
1288
+ /**
1289
+ * Value for the key, which can be a string, number, boolean, or null.
1290
+ *
1291
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1292
+ * via the `patternProperty` ".+".
1293
+ */
1294
+ [k: string]: string | number | boolean | null;
1295
+ }
1296
+ | string[];
1297
+ /**
1298
+ * List of sources the image builder should use for cache resolution
1299
+ */
1300
+ cache_from?: string[];
1301
+ /**
1302
+ * Cache destinations for the build cache.
1303
+ */
1304
+ cache_to?: string[];
1305
+ /**
1306
+ * Do not use cache when building the image.
1307
+ */
1308
+ no_cache?: boolean | string;
1309
+ /**
1310
+ * Do not use build cache for the specified stages.
1311
+ */
1312
+ no_cache_filter?: string | ListOfStrings;
1313
+ /**
1314
+ * Either a dictionary mapping keys to values, or a list of strings.
1315
+ */
1316
+ additional_contexts?:
1317
+ | {
1318
+ /**
1319
+ * Value for the key, which can be a string, number, boolean, or null.
1320
+ *
1321
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1322
+ * via the `patternProperty` ".+".
1323
+ */
1324
+ [k: string]: string | number | boolean | null;
1325
+ }
1326
+ | string[];
1327
+ /**
1328
+ * Network mode to use for the build. Options include 'default', 'none', 'host', or a network name.
1329
+ */
1330
+ network?: string;
1331
+ /**
1332
+ * Add a provenance attestation
1333
+ */
1334
+ provenance?: string | boolean;
1335
+ /**
1336
+ * Add a SBOM attestation
1337
+ */
1338
+ sbom?: string | boolean;
1339
+ /**
1340
+ * Always attempt to pull a newer version of the image.
1341
+ */
1342
+ pull?: boolean | string;
1343
+ /**
1344
+ * Build stage to target in a multi-stage Dockerfile.
1345
+ */
1346
+ target?: string;
1347
+ /**
1348
+ * Size of /dev/shm for the build container. A string value can use suffix like '2g' for 2 gigabytes.
1349
+ */
1350
+ shm_size?: number | string;
1351
+ /**
1352
+ * Add hostname mappings for the build container.
1353
+ */
1354
+ extra_hosts?:
1355
+ | {
1356
+ /**
1357
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1358
+ * via the `patternProperty` ".+".
1359
+ */
1360
+ [k: string]: string | string[];
1361
+ }
1362
+ | string[];
1363
+ /**
1364
+ * Container isolation technology to use for the build process.
1365
+ */
1366
+ isolation?: string;
1367
+ /**
1368
+ * Give extended privileges to the build container.
1369
+ */
1370
+ privileged?: boolean | string;
1371
+ secrets?: ServiceConfigOrSecret;
1372
+ /**
1373
+ * Additional tags to apply to the built image.
1374
+ */
1375
+ tags?: string[];
1376
+ ulimits?: Ulimits;
1377
+ /**
1378
+ * Platforms to build for, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'.
1379
+ */
1380
+ platforms?: string[];
1381
+ /**
1382
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1383
+ * via the `patternProperty` "^x-".
1384
+ */
1385
+ [k: string]: unknown;
1386
+ };
1387
+ /**
1388
+ * Block IO configuration for the service.
1389
+ */
1390
+ blkio_config?: {
1391
+ /**
1392
+ * Limit read rate (bytes per second) from a device.
1393
+ */
1394
+ device_read_bps?: BlkioLimit[];
1395
+ /**
1396
+ * Limit read rate (IO per second) from a device.
1397
+ */
1398
+ device_read_iops?: BlkioLimit[];
1399
+ /**
1400
+ * Limit write rate (bytes per second) to a device.
1401
+ */
1402
+ device_write_bps?: BlkioLimit[];
1403
+ /**
1404
+ * Limit write rate (IO per second) to a device.
1405
+ */
1406
+ device_write_iops?: BlkioLimit[];
1407
+ /**
1408
+ * Block IO weight (relative weight) for the service, between 10 and 1000.
1409
+ */
1410
+ weight?: number | string;
1411
+ /**
1412
+ * Block IO weight (relative weight) for specific devices.
1413
+ */
1414
+ weight_device?: BlkioWeight[];
1415
+ };
1416
+ /**
1417
+ * Add Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.
1418
+ */
1419
+ cap_add?: string[];
1420
+ /**
1421
+ * Drop Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.
1422
+ */
1423
+ cap_drop?: string[];
1424
+ /**
1425
+ * Specify the cgroup namespace to join. Use 'host' to use the host's cgroup namespace, or 'private' to use a private cgroup namespace.
1426
+ */
1427
+ cgroup?: "host" | "private";
1428
+ /**
1429
+ * Specify an optional parent cgroup for the container.
1430
+ */
1431
+ cgroup_parent?: string;
1432
+ /**
1433
+ * Override the default command declared by the container image, for example 'CMD' in Dockerfile.
1434
+ */
1435
+ command?: null | string | string[];
1436
+ configs?: ServiceConfigOrSecret1;
1437
+ /**
1438
+ * Specify a custom container name, rather than a generated default name.
1439
+ */
1440
+ container_name?: string;
1441
+ /**
1442
+ * Number of usable CPUs.
1443
+ */
1444
+ cpu_count?: string | number;
1445
+ /**
1446
+ * Percentage of CPU resources to use.
1447
+ */
1448
+ cpu_percent?: string | number;
1449
+ /**
1450
+ * CPU shares (relative weight) for the container.
1451
+ */
1452
+ cpu_shares?: number | string;
1453
+ /**
1454
+ * Limit the CPU CFS (Completely Fair Scheduler) quota.
1455
+ */
1456
+ cpu_quota?: number | string;
1457
+ /**
1458
+ * Limit the CPU CFS (Completely Fair Scheduler) period.
1459
+ */
1460
+ cpu_period?: number | string;
1461
+ /**
1462
+ * Limit the CPU real-time period in microseconds or a duration.
1463
+ */
1464
+ cpu_rt_period?: number | string;
1465
+ /**
1466
+ * Limit the CPU real-time runtime in microseconds or a duration.
1467
+ */
1468
+ cpu_rt_runtime?: number | string;
1469
+ /**
1470
+ * Number of CPUs to use. A floating-point value is supported to request partial CPUs.
1471
+ */
1472
+ cpus?: number | string;
1473
+ /**
1474
+ * CPUs in which to allow execution (0-3, 0,1).
1475
+ */
1476
+ cpuset?: string;
1477
+ /**
1478
+ * Configure the credential spec for managed service account.
1479
+ */
1480
+ credential_spec?: {
1481
+ /**
1482
+ * The name of the credential spec Config to use.
1483
+ */
1484
+ config?: string;
1485
+ /**
1486
+ * Path to a credential spec file.
1487
+ */
1488
+ file?: string;
1489
+ /**
1490
+ * Path to a credential spec in the Windows registry.
1491
+ */
1492
+ registry?: string;
1493
+ /**
1494
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1495
+ * via the `patternProperty` "^x-".
1496
+ */
1497
+ [k: string]: unknown;
1498
+ };
1499
+ /**
1500
+ * Express dependency between services. Service dependencies cause services to be started in dependency order. The dependent service will wait for the dependency to be ready before starting.
1501
+ */
1502
+ depends_on?:
1503
+ | ListOfStrings3
1504
+ | {
1505
+ /**
1506
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1507
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
1508
+ */
1509
+ [k: string]: {
1510
+ /**
1511
+ * Whether to restart dependent services when this service is restarted.
1512
+ */
1513
+ restart?: boolean | string;
1514
+ /**
1515
+ * Whether the dependency is required for the dependent service to start.
1516
+ */
1517
+ required?: boolean;
1518
+ /**
1519
+ * Condition to wait for. 'service_started' waits until the service has started, 'service_healthy' waits until the service is healthy (as defined by its healthcheck), 'service_completed_successfully' waits until the service has completed successfully.
1520
+ */
1521
+ condition: "service_started" | "service_healthy" | "service_completed_successfully";
1522
+ /**
1523
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1524
+ * via the `patternProperty` "^x-".
1525
+ */
1526
+ [k: string]: unknown;
1527
+ };
1528
+ };
1529
+ device_cgroup_rules?: ListOfStrings4;
1530
+ /**
1531
+ * List of device mappings for the container.
1532
+ */
1533
+ devices?: (
1534
+ | string
1535
+ | {
1536
+ /**
1537
+ * Path on the host to the device.
1538
+ */
1539
+ source: string;
1540
+ /**
1541
+ * Path in the container where the device will be mapped.
1542
+ */
1543
+ target?: string;
1544
+ /**
1545
+ * Cgroup permissions for the device (rwm).
1546
+ */
1547
+ permissions?: string;
1548
+ /**
1549
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1550
+ * via the `patternProperty` "^x-".
1551
+ */
1552
+ [k: string]: unknown;
1553
+ }
1554
+ )[];
1555
+ /**
1556
+ * Custom DNS servers to set for the service container.
1557
+ */
1558
+ dns?: string | ListOfStrings;
1559
+ /**
1560
+ * Custom DNS options to be passed to the container's DNS resolver.
1561
+ */
1562
+ dns_opt?: string[];
1563
+ /**
1564
+ * Custom DNS search domains to set on the service container.
1565
+ */
1566
+ dns_search?: string | ListOfStrings;
1567
+ /**
1568
+ * Custom domain name to use for the service container.
1569
+ */
1570
+ domainname?: string;
1571
+ /**
1572
+ * Override the default entrypoint declared by the container image, for example 'ENTRYPOINT' in Dockerfile.
1573
+ */
1574
+ entrypoint?: null | string | string[];
1575
+ /**
1576
+ * Add environment variables from a file or multiple files. Can be a single file path or a list of file paths.
1577
+ */
1578
+ env_file?:
1579
+ | string
1580
+ | (
1581
+ | string
1582
+ | {
1583
+ /**
1584
+ * Path to the environment file.
1585
+ */
1586
+ path: string;
1587
+ /**
1588
+ * Format attribute lets you to use an alternative file formats for env_file. When not set, env_file is parsed according to Compose rules.
1589
+ */
1590
+ format?: string;
1591
+ /**
1592
+ * Whether the file is required. If true and the file doesn't exist, an error will be raised.
1593
+ */
1594
+ required?: boolean | string;
1595
+ }
1596
+ )[];
1597
+ /**
1598
+ * Add metadata to containers using files containing Docker labels.
1599
+ */
1600
+ label_file?: string | string[];
1601
+ /**
1602
+ * Either a dictionary mapping keys to values, or a list of strings.
1603
+ */
1604
+ environment?:
1605
+ | {
1606
+ /**
1607
+ * Value for the key, which can be a string, number, boolean, or null.
1608
+ *
1609
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1610
+ * via the `patternProperty` ".+".
1611
+ */
1612
+ [k: string]: string | number | boolean | null;
1613
+ }
1614
+ | string[];
1615
+ /**
1616
+ * Expose ports without publishing them to the host machine - they'll only be accessible to linked services.
1617
+ */
1618
+ expose?: (string | number)[];
1619
+ /**
1620
+ * Extend another service, in the current file or another file.
1621
+ */
1622
+ extends?:
1623
+ | string
1624
+ | {
1625
+ /**
1626
+ * The name of the service to extend.
1627
+ */
1628
+ service: string;
1629
+ /**
1630
+ * The file path where the service to extend is defined.
1631
+ */
1632
+ file?: string;
1633
+ };
1634
+ /**
1635
+ * Specify a service which will not be manage by Compose directly, and delegate its management to an external provider.
1636
+ */
1637
+ provider?: {
1638
+ /**
1639
+ * External component used by Compose to manage setup and teardown lifecycle of the service.
1640
+ */
1641
+ type: string;
1642
+ /**
1643
+ * Provider-specific options.
1644
+ */
1645
+ options?: {
1646
+ /**
1647
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1648
+ * via the `patternProperty` "^.+$".
1649
+ */
1650
+ [k: string]: (string | number | boolean) | (string | number | boolean)[];
1651
+ };
1652
+ /**
1653
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1654
+ * via the `patternProperty` "^x-".
1655
+ */
1656
+ [k: string]: unknown;
1657
+ };
1658
+ /**
1659
+ * Link to services started outside this Compose application. Specify services as <service_name>:<alias>.
1660
+ */
1661
+ external_links?: string[];
1662
+ /**
1663
+ * Add hostname mappings to the container network interface configuration.
1664
+ */
1665
+ extra_hosts?:
1666
+ | {
1667
+ /**
1668
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1669
+ * via the `patternProperty` ".+".
1670
+ */
1671
+ [k: string]: string | string[];
1672
+ }
1673
+ | string[];
1674
+ /**
1675
+ * Define GPU devices to use. Can be set to 'all' to use all GPUs, or a list of specific GPU devices.
1676
+ */
1677
+ gpus?:
1678
+ | "all"
1679
+ | {
1680
+ capabilities?: ListOfStrings5;
1681
+ /**
1682
+ * Number of GPUs to use.
1683
+ */
1684
+ count?: string | number;
1685
+ device_ids?: ListOfStrings6;
1686
+ /**
1687
+ * GPU driver to use (e.g., 'nvidia').
1688
+ */
1689
+ driver?: string;
1690
+ /**
1691
+ * Either a dictionary mapping keys to values, or a list of strings.
1692
+ */
1693
+ options?:
1694
+ | {
1695
+ /**
1696
+ * Value for the key, which can be a string, number, boolean, or null.
1697
+ *
1698
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1699
+ * via the `patternProperty` ".+".
1700
+ */
1701
+ [k: string]: string | number | boolean | null;
1702
+ }
1703
+ | string[];
1704
+ [k: string]: unknown;
1705
+ }[];
1706
+ /**
1707
+ * Add additional groups which user inside the container should be member of.
1708
+ */
1709
+ group_add?: (string | number)[];
1710
+ healthcheck?: Healthcheck;
1711
+ /**
1712
+ * Define a custom hostname for the service container.
1713
+ */
1714
+ hostname?: string;
1715
+ /**
1716
+ * Specify the image to start the container from. Can be a repository/tag, a digest, or a local image ID.
1717
+ */
1718
+ image?: string;
1719
+ /**
1720
+ * Run as an init process inside the container that forwards signals and reaps processes.
1721
+ */
1722
+ init?: boolean | string;
1723
+ /**
1724
+ * IPC sharing mode for the service container. Use 'host' to share the host's IPC namespace, 'service:[service_name]' to share with another service, or 'shareable' to allow other services to share this service's IPC namespace.
1725
+ */
1726
+ ipc?: string;
1727
+ /**
1728
+ * Container isolation technology to use. Supported values are platform-specific.
1729
+ */
1730
+ isolation?: string;
1731
+ /**
1732
+ * Either a dictionary mapping keys to values, or a list of strings.
1733
+ */
1734
+ labels?:
1735
+ | {
1736
+ /**
1737
+ * Value for the key, which can be a string, number, boolean, or null.
1738
+ *
1739
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1740
+ * via the `patternProperty` ".+".
1741
+ */
1742
+ [k: string]: string | number | boolean | null;
1743
+ }
1744
+ | string[];
1745
+ /**
1746
+ * Link to containers in another service. Either specify both the service name and a link alias (SERVICE:ALIAS), or just the service name.
1747
+ */
1748
+ links?: string[];
1749
+ /**
1750
+ * Logging configuration for the service.
1751
+ */
1752
+ logging?: {
1753
+ /**
1754
+ * Logging driver to use, such as 'json-file', 'syslog', 'journald', etc.
1755
+ */
1756
+ driver?: string;
1757
+ /**
1758
+ * Options for the logging driver.
1759
+ */
1760
+ options?: {
1761
+ /**
1762
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1763
+ * via the `patternProperty` "^.+$".
1764
+ */
1765
+ [k: string]: string | number | null;
1766
+ };
1767
+ /**
1768
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1769
+ * via the `patternProperty` "^x-".
1770
+ */
1771
+ [k: string]: unknown;
1772
+ };
1773
+ /**
1774
+ * Container MAC address to set.
1775
+ */
1776
+ mac_address?: string;
1777
+ /**
1778
+ * Memory limit for the container. A string value can use suffix like '2g' for 2 gigabytes.
1779
+ */
1780
+ mem_limit?: number | string;
1781
+ /**
1782
+ * Memory reservation for the container.
1783
+ */
1784
+ mem_reservation?: string | number;
1785
+ /**
1786
+ * Container memory swappiness as percentage (0 to 100).
1787
+ */
1788
+ mem_swappiness?: number | string;
1789
+ /**
1790
+ * Amount of memory the container is allowed to swap to disk. Set to -1 to enable unlimited swap.
1791
+ */
1792
+ memswap_limit?: number | string;
1793
+ /**
1794
+ * Network mode. Values can be 'bridge', 'host', 'none', 'service:[service name]', or 'container:[container name]'.
1795
+ */
1796
+ network_mode?: string;
1797
+ /**
1798
+ * AI Models to use, referencing entries under the top-level models key.
1799
+ */
1800
+ models?:
1801
+ | ListOfStrings3
1802
+ | {
1803
+ /**
1804
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1805
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
1806
+ */
1807
+ [k: string]: {
1808
+ /**
1809
+ * Environment variable set to AI model endpoint.
1810
+ */
1811
+ endpoint_var?: string;
1812
+ /**
1813
+ * Environment variable set to AI model name.
1814
+ */
1815
+ model_var?: string;
1816
+ /**
1817
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1818
+ * via the `patternProperty` "^x-".
1819
+ */
1820
+ [k: string]: unknown;
1821
+ } | null;
1822
+ };
1823
+ /**
1824
+ * Networks to join, referencing entries under the top-level networks key. Can be a list of network names or a mapping of network name to network configuration.
1825
+ */
1826
+ networks?:
1827
+ | ListOfStrings3
1828
+ | {
1829
+ /**
1830
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1831
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
1832
+ */
1833
+ [k: string]: {
1834
+ aliases?: ListOfStrings7;
1835
+ /**
1836
+ * Interface network name used to connect to network
1837
+ */
1838
+ interface_name?: string;
1839
+ /**
1840
+ * Specify a static IPv4 address for this service on this network.
1841
+ */
1842
+ ipv4_address?: string;
1843
+ /**
1844
+ * Specify a static IPv6 address for this service on this network.
1845
+ */
1846
+ ipv6_address?: string;
1847
+ link_local_ips?: ListOfStrings8;
1848
+ /**
1849
+ * Specify a MAC address for this service on this network.
1850
+ */
1851
+ mac_address?: string;
1852
+ /**
1853
+ * Driver options for this network.
1854
+ */
1855
+ driver_opts?: {
1856
+ /**
1857
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1858
+ * via the `patternProperty` "^.+$".
1859
+ */
1860
+ [k: string]: string | number;
1861
+ };
1862
+ /**
1863
+ * Specify the priority for the network connection.
1864
+ */
1865
+ priority?: number;
1866
+ /**
1867
+ * Specify the gateway priority for the network connection.
1868
+ */
1869
+ gw_priority?: number;
1870
+ /**
1871
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1872
+ * via the `patternProperty` "^x-".
1873
+ */
1874
+ [k: string]: unknown;
1875
+ } | null;
1876
+ };
1877
+ /**
1878
+ * Disable OOM Killer for the container.
1879
+ */
1880
+ oom_kill_disable?: boolean | string;
1881
+ /**
1882
+ * Tune host's OOM preferences for the container (accepts -1000 to 1000).
1883
+ */
1884
+ oom_score_adj?: string | number;
1885
+ /**
1886
+ * PID mode for container.
1887
+ */
1888
+ pid?: string | null;
1889
+ /**
1890
+ * Tune a container's PIDs limit. Set to -1 for unlimited PIDs.
1891
+ */
1892
+ pids_limit?: number | string;
1893
+ /**
1894
+ * Target platform to run on, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'.
1895
+ */
1896
+ platform?: string;
1897
+ /**
1898
+ * Expose container ports. Short format ([HOST:]CONTAINER[/PROTOCOL]).
1899
+ */
1900
+ ports?: (
1901
+ | number
1902
+ | string
1903
+ | {
1904
+ /**
1905
+ * A human-readable name for this port mapping.
1906
+ */
1907
+ name?: string;
1908
+ /**
1909
+ * The port binding mode, either 'host' for publishing a host port or 'ingress' for load balancing.
1910
+ */
1911
+ mode?: string;
1912
+ /**
1913
+ * The host IP to bind to.
1914
+ */
1915
+ host_ip?: string;
1916
+ /**
1917
+ * The port inside the container.
1918
+ */
1919
+ target?: number | string;
1920
+ /**
1921
+ * The publicly exposed port.
1922
+ */
1923
+ published?: string | number;
1924
+ /**
1925
+ * The port protocol (tcp or udp).
1926
+ */
1927
+ protocol?: string;
1928
+ /**
1929
+ * Application protocol to use with the port (e.g., http, https, mysql).
1930
+ */
1931
+ app_protocol?: string;
1932
+ /**
1933
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1934
+ * via the `patternProperty` "^x-".
1935
+ */
1936
+ [k: string]: unknown;
1937
+ }
1938
+ )[];
1939
+ /**
1940
+ * Init containers to run to completion before the service container is started. Each step runs in its own ephemeral container, in declared order; a non-zero exit fails the bring-up of the service and its dependents.
1941
+ */
1942
+ pre_start?: PreStartHook[];
1943
+ /**
1944
+ * Commands to run after the container starts. If any command fails, the container stops.
1945
+ */
1946
+ post_start?: ServiceHook1[];
1947
+ /**
1948
+ * Commands to run before the container stops. If any command fails, the container stop is aborted.
1949
+ */
1950
+ pre_stop?: ServiceHook1[];
1951
+ /**
1952
+ * Give extended privileges to the service container.
1953
+ */
1954
+ privileged?: boolean | string;
1955
+ profiles?: ListOfStrings9;
1956
+ /**
1957
+ * Policy for pulling images. Options include: 'always', 'never', 'if_not_present', 'missing', 'build', or time-based refresh policies.
1958
+ */
1959
+ pull_policy?: string;
1960
+ /**
1961
+ * Time after which to refresh the image. Used with pull_policy=refresh.
1962
+ */
1963
+ pull_refresh_after?: string;
1964
+ /**
1965
+ * Mount the container's filesystem as read only.
1966
+ */
1967
+ read_only?: boolean | string;
1968
+ /**
1969
+ * Restart policy for the service container. Options include: 'no', 'always', 'on-failure', and 'unless-stopped'.
1970
+ */
1971
+ restart?: string;
1972
+ /**
1973
+ * Runtime to use for this container, e.g., 'runc'.
1974
+ */
1975
+ runtime?: string;
1976
+ /**
1977
+ * Number of containers to deploy for this service.
1978
+ */
1979
+ scale?: number | string;
1980
+ /**
1981
+ * Override the default labeling scheme for each container.
1982
+ */
1983
+ security_opt?: string[];
1984
+ /**
1985
+ * Size of /dev/shm. A string value can use suffix like '2g' for 2 gigabytes.
1986
+ */
1987
+ shm_size?: number | string;
1988
+ secrets?: ServiceConfigOrSecret2;
1989
+ /**
1990
+ * Either a dictionary mapping keys to values, or a list of strings.
1991
+ */
1992
+ sysctls?:
1993
+ | {
1994
+ /**
1995
+ * Value for the key, which can be a string, number, boolean, or null.
1996
+ *
1997
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1998
+ * via the `patternProperty` ".+".
1999
+ */
2000
+ [k: string]: string | number | boolean | null;
2001
+ }
2002
+ | string[];
2003
+ /**
2004
+ * Keep STDIN open even if not attached.
2005
+ */
2006
+ stdin_open?: boolean | string;
2007
+ /**
2008
+ * Time to wait for the container to stop gracefully before sending SIGKILL (e.g., '1s', '1m30s').
2009
+ */
2010
+ stop_grace_period?: string;
2011
+ /**
2012
+ * Signal to stop the container (e.g., 'SIGTERM', 'SIGINT').
2013
+ */
2014
+ stop_signal?: string;
2015
+ /**
2016
+ * Storage driver options for the container.
2017
+ */
2018
+ storage_opt?: {
2019
+ [k: string]: unknown;
2020
+ };
2021
+ /**
2022
+ * Mount a temporary filesystem (tmpfs) into the container. Can be a single value or a list.
2023
+ */
2024
+ tmpfs?: string | ListOfStrings;
2025
+ /**
2026
+ * Allocate a pseudo-TTY to service container.
2027
+ */
2028
+ tty?: boolean | string;
2029
+ ulimits?: Ulimits1;
2030
+ /**
2031
+ * Bind mount Docker API socket and required auth.
2032
+ */
2033
+ use_api_socket?: boolean;
2034
+ /**
2035
+ * Username or UID to run the container process as.
2036
+ */
2037
+ user?: string;
2038
+ /**
2039
+ * UTS namespace to use. 'host' shares the host's UTS namespace.
2040
+ */
2041
+ uts?: string;
2042
+ /**
2043
+ * User namespace to use. 'host' shares the host's user namespace.
2044
+ */
2045
+ userns_mode?: string;
2046
+ /**
2047
+ * Mount host paths or named volumes accessible to the container. Short syntax (VOLUME:CONTAINER_PATH[:MODE])
2048
+ */
2049
+ volumes?: (
2050
+ | string
2051
+ | {
2052
+ /**
2053
+ * The mount type: bind for mounting host directories, volume for named volumes, tmpfs for temporary filesystems, cluster for cluster volumes, npipe for named pipes, or image for mounting from an image.
2054
+ */
2055
+ type: "bind" | "volume" | "tmpfs" | "cluster" | "npipe" | "image";
2056
+ /**
2057
+ * The source of the mount, a path on the host for a bind mount, a docker image reference for an image mount, or the name of a volume defined in the top-level volumes key. Not applicable for a tmpfs mount.
2058
+ */
2059
+ source?: string;
2060
+ /**
2061
+ * The path in the container where the volume is mounted.
2062
+ */
2063
+ target?: string;
2064
+ /**
2065
+ * Flag to set the volume as read-only.
2066
+ */
2067
+ read_only?: boolean | string;
2068
+ /**
2069
+ * The consistency requirements for the mount. Available values are platform specific.
2070
+ */
2071
+ consistency?: string;
2072
+ /**
2073
+ * Configuration specific to bind mounts.
2074
+ */
2075
+ bind?: {
2076
+ /**
2077
+ * The propagation mode for the bind mount: 'shared', 'slave', 'private', 'rshared', 'rslave', or 'rprivate'.
2078
+ */
2079
+ propagation?: string;
2080
+ /**
2081
+ * Create the host path if it doesn't exist.
2082
+ */
2083
+ create_host_path?: boolean | string;
2084
+ /**
2085
+ * Recursively mount the source directory.
2086
+ */
2087
+ recursive?: "enabled" | "disabled" | "writable" | "readonly";
2088
+ /**
2089
+ * SELinux relabeling options: 'z' for shared content, 'Z' for private unshared content.
2090
+ */
2091
+ selinux?: "z" | "Z";
2092
+ /**
2093
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2094
+ * via the `patternProperty` "^x-".
2095
+ */
2096
+ [k: string]: unknown;
2097
+ };
2098
+ /**
2099
+ * Configuration specific to volume mounts.
2100
+ */
2101
+ volume?: {
2102
+ /**
2103
+ * Either a dictionary mapping keys to values, or a list of strings.
2104
+ */
2105
+ labels?:
2106
+ | {
2107
+ /**
2108
+ * Value for the key, which can be a string, number, boolean, or null.
2109
+ *
2110
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2111
+ * via the `patternProperty` ".+".
2112
+ */
2113
+ [k: string]: string | number | boolean | null;
2114
+ }
2115
+ | string[];
2116
+ /**
2117
+ * Flag to disable copying of data from a container when a volume is created.
2118
+ */
2119
+ nocopy?: boolean | string;
2120
+ /**
2121
+ * Path within the volume to mount instead of the volume root.
2122
+ */
2123
+ subpath?: string;
2124
+ /**
2125
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2126
+ * via the `patternProperty` "^x-".
2127
+ */
2128
+ [k: string]: unknown;
2129
+ };
2130
+ /**
2131
+ * Configuration specific to tmpfs mounts.
2132
+ */
2133
+ tmpfs?: {
2134
+ /**
2135
+ * Size of the tmpfs mount in bytes.
2136
+ */
2137
+ size?: number | string;
2138
+ /**
2139
+ * File mode of the tmpfs in octal.
2140
+ */
2141
+ mode?: number | string;
2142
+ /**
2143
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2144
+ * via the `patternProperty` "^x-".
2145
+ */
2146
+ [k: string]: unknown;
2147
+ };
2148
+ /**
2149
+ * Configuration specific to image mounts.
2150
+ */
2151
+ image?: {
2152
+ /**
2153
+ * Path within the image to mount instead of the image root.
2154
+ */
2155
+ subpath?: string;
2156
+ /**
2157
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2158
+ * via the `patternProperty` "^x-".
2159
+ */
2160
+ [k: string]: unknown;
2161
+ };
2162
+ /**
2163
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2164
+ * via the `patternProperty` "^x-".
2165
+ */
2166
+ [k: string]: unknown;
2167
+ }
2168
+ )[];
2169
+ /**
2170
+ * Mount volumes from another service or container. Optionally specify read-only access (ro) or read-write (rw).
2171
+ */
2172
+ volumes_from?: string[];
2173
+ /**
2174
+ * The working directory in which the entrypoint or command will be run
2175
+ */
2176
+ working_dir?: string;
2177
+ /**
2178
+ * This interface was referenced by `Service`'s JSON-Schema definition
2179
+ * via the `patternProperty` "^x-".
2180
+ */
2181
+ [k: string]: unknown;
2182
+ }
2183
+ /**
2184
+ * Command to execute when a change is detected and action is sync+exec.
2185
+ */
2186
+ export interface ServiceHook {
2187
+ /**
2188
+ * Command to execute as part of the hook.
2189
+ */
2190
+ command: null | string | string[];
2191
+ /**
2192
+ * User to run the command as.
2193
+ */
2194
+ user?: string;
2195
+ /**
2196
+ * Whether to run the command with extended privileges.
2197
+ */
2198
+ privileged?: boolean | string;
2199
+ /**
2200
+ * Working directory for the command.
2201
+ */
2202
+ working_dir?: string;
2203
+ /**
2204
+ * Environment variables for the command.
2205
+ */
2206
+ environment?:
2207
+ | {
2208
+ /**
2209
+ * Value for the key, which can be a string, number, boolean, or null.
2210
+ *
2211
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2212
+ * via the `patternProperty` ".+".
2213
+ */
2214
+ [k: string]: string | number | boolean | null;
2215
+ }
2216
+ | string[];
2217
+ /**
2218
+ * This interface was referenced by `ServiceHook`'s JSON-Schema definition
2219
+ * via the `patternProperty` "^x-".
2220
+ *
2221
+ * This interface was referenced by `ServiceHook1`'s JSON-Schema definition
2222
+ * via the `patternProperty` "^x-".
2223
+ */
2224
+ [k: string]: unknown;
2225
+ }
2226
+ /**
2227
+ * Override the default ulimits for the build container.
2228
+ */
2229
+ export interface Ulimits {
2230
+ /**
2231
+ * This interface was referenced by `Ulimits`'s JSON-Schema definition
2232
+ * via the `patternProperty` "^[a-z]+$".
2233
+ *
2234
+ * This interface was referenced by `Ulimits1`'s JSON-Schema definition
2235
+ * via the `patternProperty` "^[a-z]+$".
2236
+ */
2237
+ [k: string]:
2238
+ | (number | string)
2239
+ | {
2240
+ /**
2241
+ * Hard limit for the ulimit type. This is the maximum allowed value.
2242
+ */
2243
+ hard: number | string;
2244
+ /**
2245
+ * Soft limit for the ulimit type. This is the value that's actually enforced.
2246
+ */
2247
+ soft: number | string;
2248
+ /**
2249
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2250
+ * via the `patternProperty` "^x-".
2251
+ */
2252
+ [k: string]: unknown;
2253
+ };
2254
+ }
2255
+ /**
2256
+ * Block IO limit for a specific device.
2257
+ */
2258
+ export interface BlkioLimit {
2259
+ /**
2260
+ * Path to the device (e.g., '/dev/sda').
2261
+ */
2262
+ path?: string;
2263
+ /**
2264
+ * Rate limit in bytes per second or IO operations per second.
2265
+ */
2266
+ rate?: number | string;
2267
+ }
2268
+ /**
2269
+ * Block IO weight for a specific device.
2270
+ */
2271
+ export interface BlkioWeight {
2272
+ /**
2273
+ * Path to the device (e.g., '/dev/sda').
2274
+ */
2275
+ path?: string;
2276
+ /**
2277
+ * Relative weight for the device, between 10 and 1000.
2278
+ */
2279
+ weight?: number | string;
2280
+ }
2281
+ /**
2282
+ * Configure a health check for the container to monitor its health status.
2283
+ */
2284
+ export interface Healthcheck {
2285
+ /**
2286
+ * Disable any container-specified healthcheck. Set to true to disable.
2287
+ */
2288
+ disable?: boolean | string;
2289
+ /**
2290
+ * Time between running the check (e.g., '1s', '1m30s'). Default: 30s.
2291
+ */
2292
+ interval?: string;
2293
+ /**
2294
+ * Number of consecutive failures needed to consider the container as unhealthy. Default: 3.
2295
+ */
2296
+ retries?: number | string;
2297
+ /**
2298
+ * The test to perform to check container health. Can be a string or a list. The first item is either NONE, CMD, or CMD-SHELL. If it's CMD, the rest of the command is exec'd. If it's CMD-SHELL, the rest is run in the shell.
2299
+ */
2300
+ test?: string | string[];
2301
+ /**
2302
+ * Maximum time to allow one check to run (e.g., '1s', '1m30s'). Default: 30s.
2303
+ */
2304
+ timeout?: string;
2305
+ /**
2306
+ * Start period for the container to initialize before starting health-retries countdown (e.g., '1s', '1m30s'). Default: 0s.
2307
+ */
2308
+ start_period?: string;
2309
+ /**
2310
+ * Time between running the check during the start period (e.g., '1s', '1m30s'). Default: interval value.
2311
+ */
2312
+ start_interval?: string;
2313
+ /**
2314
+ * This interface was referenced by `Healthcheck`'s JSON-Schema definition
2315
+ * via the `patternProperty` "^x-".
2316
+ */
2317
+ [k: string]: unknown;
2318
+ }
2319
+ /**
2320
+ * Configuration for a pre_start init container, run to completion before the service container starts.
2321
+ */
2322
+ export interface PreStartHook {
2323
+ /**
2324
+ * Command to execute. Optional when the chosen image's entrypoint already runs the intended command.
2325
+ */
2326
+ command?: null | string | string[];
2327
+ /**
2328
+ * Image used for the ephemeral container. If omitted, the parent service's image is used.
2329
+ */
2330
+ image?: string;
2331
+ /**
2332
+ * User to run the command as. Defaults to the user declared in image (or to the service's user when image is omitted).
2333
+ */
2334
+ user?: string;
2335
+ /**
2336
+ * Whether to run the command with extended privileges.
2337
+ */
2338
+ privileged?: boolean | string;
2339
+ /**
2340
+ * Working directory for the command. Defaults to the service's working directory.
2341
+ */
2342
+ working_dir?: string;
2343
+ /**
2344
+ * Either a dictionary mapping keys to values, or a list of strings.
2345
+ */
2346
+ environment?:
2347
+ | {
2348
+ /**
2349
+ * Value for the key, which can be a string, number, boolean, or null.
2350
+ *
2351
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2352
+ * via the `patternProperty` ".+".
2353
+ */
2354
+ [k: string]: string | number | boolean | null;
2355
+ }
2356
+ | string[];
2357
+ /**
2358
+ * Whether the hook runs once per service replica (true), or once for the service as a whole before any replica starts (false, the default).
2359
+ */
2360
+ per_replica?: boolean | string;
2361
+ /**
2362
+ * This interface was referenced by `PreStartHook`'s JSON-Schema definition
2363
+ * via the `patternProperty` "^x-".
2364
+ */
2365
+ [k: string]: unknown;
2366
+ }
2367
+ /**
2368
+ * Configuration for service lifecycle hooks, which are commands executed at specific points in a container's lifecycle.
2369
+ */
2370
+ export interface ServiceHook1 {
2371
+ /**
2372
+ * Command to execute as part of the hook.
2373
+ */
2374
+ command: null | string | string[];
2375
+ /**
2376
+ * User to run the command as.
2377
+ */
2378
+ user?: string;
2379
+ /**
2380
+ * Whether to run the command with extended privileges.
2381
+ */
2382
+ privileged?: boolean | string;
2383
+ /**
2384
+ * Working directory for the command.
2385
+ */
2386
+ working_dir?: string;
2387
+ /**
2388
+ * Environment variables for the command.
2389
+ */
2390
+ environment?:
2391
+ | {
2392
+ /**
2393
+ * Value for the key, which can be a string, number, boolean, or null.
2394
+ *
2395
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2396
+ * via the `patternProperty` ".+".
2397
+ */
2398
+ [k: string]: string | number | boolean | null;
2399
+ }
2400
+ | string[];
2401
+ /**
2402
+ * This interface was referenced by `ServiceHook`'s JSON-Schema definition
2403
+ * via the `patternProperty` "^x-".
2404
+ *
2405
+ * This interface was referenced by `ServiceHook1`'s JSON-Schema definition
2406
+ * via the `patternProperty` "^x-".
2407
+ */
2408
+ [k: string]: unknown;
2409
+ }
2410
+ /**
2411
+ * Override the default ulimits for a container.
2412
+ */
2413
+ export interface Ulimits1 {
2414
+ /**
2415
+ * This interface was referenced by `Ulimits`'s JSON-Schema definition
2416
+ * via the `patternProperty` "^[a-z]+$".
2417
+ *
2418
+ * This interface was referenced by `Ulimits1`'s JSON-Schema definition
2419
+ * via the `patternProperty` "^[a-z]+$".
2420
+ */
2421
+ [k: string]:
2422
+ | (number | string)
2423
+ | {
2424
+ /**
2425
+ * Hard limit for the ulimit type. This is the maximum allowed value.
2426
+ */
2427
+ hard: number | string;
2428
+ /**
2429
+ * Soft limit for the ulimit type. This is the value that's actually enforced.
2430
+ */
2431
+ soft: number | string;
2432
+ /**
2433
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2434
+ * via the `patternProperty` "^x-".
2435
+ */
2436
+ [k: string]: unknown;
2437
+ };
2438
+ }
2439
+ /**
2440
+ * Language Model for the Compose application.
2441
+ *
2442
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2443
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
2444
+ */
2445
+ export interface Model {
2446
+ /**
2447
+ * Custom name for this model.
2448
+ */
2449
+ name?: string;
2450
+ /**
2451
+ * Language Model to run.
2452
+ */
2453
+ model: string;
2454
+ context_size?: number;
2455
+ /**
2456
+ * Raw runtime flags to pass to the inference engine.
2457
+ */
2458
+ runtime_flags?: string[];
2459
+ /**
2460
+ * This interface was referenced by `Model`'s JSON-Schema definition
2461
+ * via the `patternProperty` "^x-".
2462
+ */
2463
+ [k: string]: unknown;
2464
+ }
2465
+ /**
2466
+ * Secret configuration for the Compose application.
2467
+ *
2468
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2469
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
2470
+ */
2471
+ export interface Secret {
2472
+ /**
2473
+ * Custom name for this secret.
2474
+ */
2475
+ name?: string;
2476
+ /**
2477
+ * Name of an environment variable from which to get the secret value.
2478
+ */
2479
+ environment?: string;
2480
+ /**
2481
+ * Path to a file containing the secret value.
2482
+ */
2483
+ file?: string;
2484
+ /**
2485
+ * Specifies that this secret already exists and was created outside of Compose.
2486
+ */
2487
+ external?:
2488
+ | boolean
2489
+ | string
2490
+ | {
2491
+ /**
2492
+ * Specifies the name of the external secret.
2493
+ */
2494
+ name?: string;
2495
+ [k: string]: unknown;
2496
+ };
2497
+ /**
2498
+ * Either a dictionary mapping keys to values, or a list of strings.
2499
+ */
2500
+ labels?:
2501
+ | {
2502
+ /**
2503
+ * Value for the key, which can be a string, number, boolean, or null.
2504
+ *
2505
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2506
+ * via the `patternProperty` ".+".
2507
+ */
2508
+ [k: string]: string | number | boolean | null;
2509
+ }
2510
+ | string[];
2511
+ /**
2512
+ * Specify which secret driver should be used for this secret.
2513
+ */
2514
+ driver?: string;
2515
+ /**
2516
+ * Specify driver-specific options.
2517
+ */
2518
+ driver_opts?: {
2519
+ /**
2520
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2521
+ * via the `patternProperty` "^.+$".
2522
+ */
2523
+ [k: string]: string | number;
2524
+ };
2525
+ /**
2526
+ * Driver to use for templating the secret's value.
2527
+ */
2528
+ template_driver?: string;
2529
+ /**
2530
+ * This interface was referenced by `Secret`'s JSON-Schema definition
2531
+ * via the `patternProperty` "^x-".
2532
+ */
2533
+ [k: string]: unknown;
2534
+ }
2535
+ /**
2536
+ * Config configuration for the Compose application.
2537
+ *
2538
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2539
+ * via the `patternProperty` "^[a-zA-Z0-9._-]+$".
2540
+ */
2541
+ export interface Config {
2542
+ /**
2543
+ * Custom name for this config.
2544
+ */
2545
+ name?: string;
2546
+ /**
2547
+ * Inline content of the config.
2548
+ */
2549
+ content?: string;
2550
+ /**
2551
+ * Name of an environment variable from which to get the config value.
2552
+ */
2553
+ environment?: string;
2554
+ /**
2555
+ * Path to a file containing the config value.
2556
+ */
2557
+ file?: string;
2558
+ /**
2559
+ * Specifies that this config already exists and was created outside of Compose.
2560
+ */
2561
+ external?:
2562
+ | boolean
2563
+ | string
2564
+ | {
2565
+ /**
2566
+ * @deprecated
2567
+ * Specifies the name of the external config. Deprecated: use the 'name' property instead.
2568
+ */
2569
+ name?: string;
2570
+ [k: string]: unknown;
2571
+ };
2572
+ /**
2573
+ * Either a dictionary mapping keys to values, or a list of strings.
2574
+ */
2575
+ labels?:
2576
+ | {
2577
+ /**
2578
+ * Value for the key, which can be a string, number, boolean, or null.
2579
+ *
2580
+ * This interface was referenced by `undefined`'s JSON-Schema definition
2581
+ * via the `patternProperty` ".+".
2582
+ */
2583
+ [k: string]: string | number | boolean | null;
2584
+ }
2585
+ | string[];
2586
+ /**
2587
+ * Driver to use for templating the config's value.
2588
+ */
2589
+ template_driver?: string;
2590
+ /**
2591
+ * This interface was referenced by `Config`'s JSON-Schema definition
2592
+ * via the `patternProperty` "^x-".
2593
+ */
2594
+ [k: string]: unknown;
2595
+ }