@xemahq/contracts 0.51.0 → 0.52.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 (63) hide show
  1. package/dist/.source-stamp.json +2 -2
  2. package/dist/biome/lib/biome-component-process-facts.d.ts.map +1 -1
  3. package/dist/biome/lib/biome-component-process-facts.js.map +1 -1
  4. package/dist/biome/lib/biome-component-vocabulary.d.ts +16 -0
  5. package/dist/biome/lib/biome-component-vocabulary.d.ts.map +1 -1
  6. package/dist/biome/lib/biome-component-vocabulary.js +20 -1
  7. package/dist/biome/lib/biome-component-vocabulary.js.map +1 -1
  8. package/dist/biome/lib/biome-component.d.ts +243 -7
  9. package/dist/biome/lib/biome-component.d.ts.map +1 -1
  10. package/dist/biome/lib/biome-component.js +166 -18
  11. package/dist/biome/lib/biome-component.js.map +1 -1
  12. package/dist/biome/lib/biome-manifest.d.ts +270 -12
  13. package/dist/biome/lib/biome-manifest.d.ts.map +1 -1
  14. package/dist/biome/xema-biome.schema.json +616 -160
  15. package/dist/deployment/index.d.ts +1 -0
  16. package/dist/deployment/index.d.ts.map +1 -1
  17. package/dist/deployment/index.js +1 -0
  18. package/dist/deployment/index.js.map +1 -1
  19. package/dist/deployment/lib/deployment-id.d.ts +3 -0
  20. package/dist/deployment/lib/deployment-id.d.ts.map +1 -1
  21. package/dist/deployment/lib/deployment-id.js +14 -5
  22. package/dist/deployment/lib/deployment-id.js.map +1 -1
  23. package/dist/deployment/lib/trust-domain.d.ts +6 -0
  24. package/dist/deployment/lib/trust-domain.d.ts.map +1 -0
  25. package/dist/deployment/lib/trust-domain.js +13 -0
  26. package/dist/deployment/lib/trust-domain.js.map +1 -0
  27. package/dist/distribution/index.d.ts +1 -0
  28. package/dist/distribution/index.d.ts.map +1 -1
  29. package/dist/distribution/index.js +1 -0
  30. package/dist/distribution/index.js.map +1 -1
  31. package/dist/distribution/lib/distribution-lock.d.ts +4 -0
  32. package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
  33. package/dist/distribution/lib/distribution-lock.js +7 -2
  34. package/dist/distribution/lib/distribution-lock.js.map +1 -1
  35. package/dist/distribution/lib/nexus-binding.d.ts +29 -0
  36. package/dist/distribution/lib/nexus-binding.d.ts.map +1 -0
  37. package/dist/distribution/lib/nexus-binding.js +109 -0
  38. package/dist/distribution/lib/nexus-binding.js.map +1 -0
  39. package/dist/process-topology/lib/process-topology.d.ts +2 -2
  40. package/dist/process-topology/lib/process-topology.d.ts.map +1 -1
  41. package/dist/process-topology/lib/process-topology.js +7 -11
  42. package/dist/process-topology/lib/process-topology.js.map +1 -1
  43. package/dist/process-topology/lib/resolve-process-topology.d.ts +1 -1
  44. package/dist/process-topology/lib/resolve-process-topology.d.ts.map +1 -1
  45. package/dist/process-topology/lib/resolve-process-topology.js +20 -5
  46. package/dist/process-topology/lib/resolve-process-topology.js.map +1 -1
  47. package/dist/workflow/index.d.ts +3 -0
  48. package/dist/workflow/index.d.ts.map +1 -1
  49. package/dist/workflow/index.js +3 -0
  50. package/dist/workflow/index.js.map +1 -1
  51. package/dist/workflow/lib/biome-task-queue.d.ts +6 -0
  52. package/dist/workflow/lib/biome-task-queue.d.ts.map +1 -0
  53. package/dist/workflow/lib/biome-task-queue.js +21 -0
  54. package/dist/workflow/lib/biome-task-queue.js.map +1 -0
  55. package/dist/workflow/lib/nexus-endpoint.d.ts +12 -0
  56. package/dist/workflow/lib/nexus-endpoint.d.ts.map +1 -0
  57. package/dist/workflow/lib/nexus-endpoint.js +36 -0
  58. package/dist/workflow/lib/nexus-endpoint.js.map +1 -0
  59. package/dist/workflow/lib/trust-domain-namespace.d.ts +2 -0
  60. package/dist/workflow/lib/trust-domain-namespace.d.ts.map +1 -0
  61. package/dist/workflow/lib/trust-domain-namespace.js +26 -0
  62. package/dist/workflow/lib/trust-domain-namespace.js.map +1 -0
  63. package/package.json +1 -1
@@ -432,95 +432,323 @@
432
432
  "additionalProperties": false
433
433
  },
434
434
  {
435
- "type": "object",
436
- "properties": {
437
- "kind": {
438
- "type": "string",
439
- "const": "worker"
440
- },
441
- "revision": {
442
- "type": "string",
443
- "pattern": "^v[1-9]\\d*$"
444
- },
445
- "requiresServices": {
446
- "type": "array",
447
- "items": {
448
- "type": "string",
449
- "minLength": 1
450
- }
451
- },
452
- "optionalServices": {
453
- "type": "array",
454
- "items": {
455
- "type": "string",
456
- "minLength": 1
457
- }
458
- },
459
- "resources": {
460
- "type": "array",
461
- "items": {
462
- "type": "object",
463
- "properties": {
464
- "kind": {
465
- "type": "string",
466
- "maxLength": 128,
467
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
468
- },
469
- "logicalName": {
470
- "type": "string",
471
- "maxLength": 63,
472
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
473
- },
474
- "scope": {
435
+ "oneOf": [
436
+ {
437
+ "type": "object",
438
+ "properties": {
439
+ "kind": {
440
+ "type": "string",
441
+ "const": "worker"
442
+ },
443
+ "requiresServices": {
444
+ "type": "array",
445
+ "items": {
475
446
  "type": "string",
476
- "enum": [
477
- "system",
478
- "org"
479
- ]
480
- },
481
- "inclusion": {
447
+ "minLength": 1
448
+ }
449
+ },
450
+ "optionalServices": {
451
+ "type": "array",
452
+ "items": {
482
453
  "type": "string",
483
- "enum": [
484
- "required",
485
- "optional"
486
- ]
487
- },
488
- "whyNotOrgScoped": {
489
- "type": "string"
454
+ "minLength": 1
490
455
  }
491
456
  },
492
- "required": [
493
- "kind",
494
- "logicalName",
495
- "scope",
496
- "inclusion"
497
- ],
498
- "additionalProperties": false
499
- }
457
+ "resources": {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "object",
461
+ "properties": {
462
+ "kind": {
463
+ "type": "string",
464
+ "maxLength": 128,
465
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
466
+ },
467
+ "logicalName": {
468
+ "type": "string",
469
+ "maxLength": 63,
470
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
471
+ },
472
+ "scope": {
473
+ "type": "string",
474
+ "enum": [
475
+ "system",
476
+ "org"
477
+ ]
478
+ },
479
+ "inclusion": {
480
+ "type": "string",
481
+ "enum": [
482
+ "required",
483
+ "optional"
484
+ ]
485
+ },
486
+ "whyNotOrgScoped": {
487
+ "type": "string"
488
+ }
489
+ },
490
+ "required": [
491
+ "kind",
492
+ "logicalName",
493
+ "scope",
494
+ "inclusion"
495
+ ],
496
+ "additionalProperties": false
497
+ }
498
+ },
499
+ "providesResources": {
500
+ "type": "array",
501
+ "items": {
502
+ "type": "object",
503
+ "properties": {
504
+ "kind": {
505
+ "type": "string",
506
+ "maxLength": 128,
507
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
508
+ }
509
+ },
510
+ "required": [
511
+ "kind"
512
+ ],
513
+ "additionalProperties": false
514
+ }
515
+ },
516
+ "revision": {
517
+ "type": "string",
518
+ "const": "v1"
519
+ }
520
+ },
521
+ "required": [
522
+ "kind",
523
+ "revision"
524
+ ],
525
+ "additionalProperties": false
500
526
  },
501
- "providesResources": {
502
- "type": "array",
503
- "items": {
504
- "type": "object",
505
- "properties": {
506
- "kind": {
527
+ {
528
+ "type": "object",
529
+ "properties": {
530
+ "kind": {
531
+ "type": "string",
532
+ "const": "worker"
533
+ },
534
+ "requiresServices": {
535
+ "type": "array",
536
+ "items": {
507
537
  "type": "string",
508
- "maxLength": 128,
509
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
538
+ "minLength": 1
510
539
  }
511
540
  },
512
- "required": [
513
- "kind"
514
- ],
515
- "additionalProperties": false
516
- }
541
+ "optionalServices": {
542
+ "type": "array",
543
+ "items": {
544
+ "type": "string",
545
+ "minLength": 1
546
+ }
547
+ },
548
+ "resources": {
549
+ "type": "array",
550
+ "items": {
551
+ "type": "object",
552
+ "properties": {
553
+ "kind": {
554
+ "type": "string",
555
+ "maxLength": 128,
556
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
557
+ },
558
+ "logicalName": {
559
+ "type": "string",
560
+ "maxLength": 63,
561
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
562
+ },
563
+ "scope": {
564
+ "type": "string",
565
+ "enum": [
566
+ "system",
567
+ "org"
568
+ ]
569
+ },
570
+ "inclusion": {
571
+ "type": "string",
572
+ "enum": [
573
+ "required",
574
+ "optional"
575
+ ]
576
+ },
577
+ "whyNotOrgScoped": {
578
+ "type": "string"
579
+ }
580
+ },
581
+ "required": [
582
+ "kind",
583
+ "logicalName",
584
+ "scope",
585
+ "inclusion"
586
+ ],
587
+ "additionalProperties": false
588
+ }
589
+ },
590
+ "providesResources": {
591
+ "type": "array",
592
+ "items": {
593
+ "type": "object",
594
+ "properties": {
595
+ "kind": {
596
+ "type": "string",
597
+ "maxLength": 128,
598
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
599
+ }
600
+ },
601
+ "required": [
602
+ "kind"
603
+ ],
604
+ "additionalProperties": false
605
+ }
606
+ },
607
+ "revision": {
608
+ "type": "string",
609
+ "const": "v2"
610
+ },
611
+ "taskQueues": {
612
+ "minItems": 1,
613
+ "type": "array",
614
+ "items": {
615
+ "type": "object",
616
+ "properties": {
617
+ "name": {
618
+ "type": "string",
619
+ "pattern": "^[a-z][a-z0-9-]{0,40}$"
620
+ },
621
+ "serves": {
622
+ "minItems": 1,
623
+ "type": "array",
624
+ "items": {
625
+ "type": "string",
626
+ "enum": [
627
+ "workflows",
628
+ "activities",
629
+ "nexus"
630
+ ]
631
+ }
632
+ },
633
+ "fairness": {
634
+ "type": "string",
635
+ "enum": [
636
+ "org",
637
+ "none"
638
+ ]
639
+ }
640
+ },
641
+ "required": [
642
+ "name",
643
+ "serves",
644
+ "fairness"
645
+ ],
646
+ "additionalProperties": false
647
+ }
648
+ },
649
+ "nexus": {
650
+ "type": "object",
651
+ "properties": {
652
+ "provides": {
653
+ "type": "array",
654
+ "items": {
655
+ "type": "object",
656
+ "properties": {
657
+ "service": {
658
+ "type": "string",
659
+ "maxLength": 63,
660
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
661
+ },
662
+ "version": {
663
+ "type": "string",
664
+ "pattern": "^v[1-9]\\d*$"
665
+ },
666
+ "taskQueue": {
667
+ "type": "string",
668
+ "pattern": "^[a-z][a-z0-9-]{0,40}$"
669
+ },
670
+ "operations": {
671
+ "minItems": 1,
672
+ "type": "array",
673
+ "items": {
674
+ "type": "object",
675
+ "properties": {
676
+ "name": {
677
+ "type": "string",
678
+ "pattern": "^[a-z][a-zA-Z0-9]*$"
679
+ },
680
+ "mode": {
681
+ "type": "string",
682
+ "enum": [
683
+ "sync",
684
+ "async"
685
+ ]
686
+ }
687
+ },
688
+ "required": [
689
+ "name",
690
+ "mode"
691
+ ],
692
+ "additionalProperties": false
693
+ }
694
+ }
695
+ },
696
+ "required": [
697
+ "service",
698
+ "version",
699
+ "taskQueue",
700
+ "operations"
701
+ ],
702
+ "additionalProperties": false
703
+ }
704
+ },
705
+ "requires": {
706
+ "type": "array",
707
+ "items": {
708
+ "type": "object",
709
+ "properties": {
710
+ "service": {
711
+ "type": "string",
712
+ "maxLength": 63,
713
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
714
+ },
715
+ "version": {
716
+ "type": "string",
717
+ "pattern": "^v[1-9]\\d*$"
718
+ },
719
+ "operations": {
720
+ "minItems": 1,
721
+ "type": "array",
722
+ "items": {
723
+ "type": "string",
724
+ "pattern": "^[a-z][a-zA-Z0-9]*$"
725
+ }
726
+ },
727
+ "optional": {
728
+ "type": "boolean",
729
+ "const": true
730
+ }
731
+ },
732
+ "required": [
733
+ "service",
734
+ "version",
735
+ "operations"
736
+ ],
737
+ "additionalProperties": false
738
+ }
739
+ }
740
+ },
741
+ "additionalProperties": false
742
+ }
743
+ },
744
+ "required": [
745
+ "kind",
746
+ "revision",
747
+ "taskQueues"
748
+ ],
749
+ "additionalProperties": false
517
750
  }
518
- },
519
- "required": [
520
- "kind",
521
- "revision"
522
- ],
523
- "additionalProperties": false
751
+ ]
524
752
  },
525
753
  {
526
754
  "type": "object",
@@ -1916,95 +2144,323 @@
1916
2144
  "additionalProperties": false
1917
2145
  },
1918
2146
  {
1919
- "type": "object",
1920
- "properties": {
1921
- "kind": {
1922
- "type": "string",
1923
- "const": "worker"
1924
- },
1925
- "revision": {
1926
- "type": "string",
1927
- "pattern": "^v[1-9]\\d*$"
1928
- },
1929
- "requiresServices": {
1930
- "type": "array",
1931
- "items": {
1932
- "type": "string",
1933
- "minLength": 1
1934
- }
1935
- },
1936
- "optionalServices": {
1937
- "type": "array",
1938
- "items": {
1939
- "type": "string",
1940
- "minLength": 1
1941
- }
1942
- },
1943
- "resources": {
1944
- "type": "array",
1945
- "items": {
1946
- "type": "object",
1947
- "properties": {
1948
- "kind": {
1949
- "type": "string",
1950
- "maxLength": 128,
1951
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
1952
- },
1953
- "logicalName": {
1954
- "type": "string",
1955
- "maxLength": 63,
1956
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1957
- },
1958
- "scope": {
2147
+ "oneOf": [
2148
+ {
2149
+ "type": "object",
2150
+ "properties": {
2151
+ "kind": {
2152
+ "type": "string",
2153
+ "const": "worker"
2154
+ },
2155
+ "requiresServices": {
2156
+ "type": "array",
2157
+ "items": {
1959
2158
  "type": "string",
1960
- "enum": [
1961
- "system",
1962
- "org"
1963
- ]
1964
- },
1965
- "inclusion": {
2159
+ "minLength": 1
2160
+ }
2161
+ },
2162
+ "optionalServices": {
2163
+ "type": "array",
2164
+ "items": {
1966
2165
  "type": "string",
1967
- "enum": [
1968
- "required",
1969
- "optional"
1970
- ]
1971
- },
1972
- "whyNotOrgScoped": {
1973
- "type": "string"
2166
+ "minLength": 1
1974
2167
  }
1975
2168
  },
1976
- "required": [
1977
- "kind",
1978
- "logicalName",
1979
- "scope",
1980
- "inclusion"
1981
- ],
1982
- "additionalProperties": false
1983
- }
2169
+ "resources": {
2170
+ "type": "array",
2171
+ "items": {
2172
+ "type": "object",
2173
+ "properties": {
2174
+ "kind": {
2175
+ "type": "string",
2176
+ "maxLength": 128,
2177
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
2178
+ },
2179
+ "logicalName": {
2180
+ "type": "string",
2181
+ "maxLength": 63,
2182
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
2183
+ },
2184
+ "scope": {
2185
+ "type": "string",
2186
+ "enum": [
2187
+ "system",
2188
+ "org"
2189
+ ]
2190
+ },
2191
+ "inclusion": {
2192
+ "type": "string",
2193
+ "enum": [
2194
+ "required",
2195
+ "optional"
2196
+ ]
2197
+ },
2198
+ "whyNotOrgScoped": {
2199
+ "type": "string"
2200
+ }
2201
+ },
2202
+ "required": [
2203
+ "kind",
2204
+ "logicalName",
2205
+ "scope",
2206
+ "inclusion"
2207
+ ],
2208
+ "additionalProperties": false
2209
+ }
2210
+ },
2211
+ "providesResources": {
2212
+ "type": "array",
2213
+ "items": {
2214
+ "type": "object",
2215
+ "properties": {
2216
+ "kind": {
2217
+ "type": "string",
2218
+ "maxLength": 128,
2219
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
2220
+ }
2221
+ },
2222
+ "required": [
2223
+ "kind"
2224
+ ],
2225
+ "additionalProperties": false
2226
+ }
2227
+ },
2228
+ "revision": {
2229
+ "type": "string",
2230
+ "const": "v1"
2231
+ }
2232
+ },
2233
+ "required": [
2234
+ "kind",
2235
+ "revision"
2236
+ ],
2237
+ "additionalProperties": false
1984
2238
  },
1985
- "providesResources": {
1986
- "type": "array",
1987
- "items": {
1988
- "type": "object",
1989
- "properties": {
1990
- "kind": {
2239
+ {
2240
+ "type": "object",
2241
+ "properties": {
2242
+ "kind": {
2243
+ "type": "string",
2244
+ "const": "worker"
2245
+ },
2246
+ "requiresServices": {
2247
+ "type": "array",
2248
+ "items": {
1991
2249
  "type": "string",
1992
- "maxLength": 128,
1993
- "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
2250
+ "minLength": 1
1994
2251
  }
1995
2252
  },
1996
- "required": [
1997
- "kind"
1998
- ],
1999
- "additionalProperties": false
2000
- }
2253
+ "optionalServices": {
2254
+ "type": "array",
2255
+ "items": {
2256
+ "type": "string",
2257
+ "minLength": 1
2258
+ }
2259
+ },
2260
+ "resources": {
2261
+ "type": "array",
2262
+ "items": {
2263
+ "type": "object",
2264
+ "properties": {
2265
+ "kind": {
2266
+ "type": "string",
2267
+ "maxLength": 128,
2268
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
2269
+ },
2270
+ "logicalName": {
2271
+ "type": "string",
2272
+ "maxLength": 63,
2273
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
2274
+ },
2275
+ "scope": {
2276
+ "type": "string",
2277
+ "enum": [
2278
+ "system",
2279
+ "org"
2280
+ ]
2281
+ },
2282
+ "inclusion": {
2283
+ "type": "string",
2284
+ "enum": [
2285
+ "required",
2286
+ "optional"
2287
+ ]
2288
+ },
2289
+ "whyNotOrgScoped": {
2290
+ "type": "string"
2291
+ }
2292
+ },
2293
+ "required": [
2294
+ "kind",
2295
+ "logicalName",
2296
+ "scope",
2297
+ "inclusion"
2298
+ ],
2299
+ "additionalProperties": false
2300
+ }
2301
+ },
2302
+ "providesResources": {
2303
+ "type": "array",
2304
+ "items": {
2305
+ "type": "object",
2306
+ "properties": {
2307
+ "kind": {
2308
+ "type": "string",
2309
+ "maxLength": 128,
2310
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*)+$"
2311
+ }
2312
+ },
2313
+ "required": [
2314
+ "kind"
2315
+ ],
2316
+ "additionalProperties": false
2317
+ }
2318
+ },
2319
+ "revision": {
2320
+ "type": "string",
2321
+ "const": "v2"
2322
+ },
2323
+ "taskQueues": {
2324
+ "minItems": 1,
2325
+ "type": "array",
2326
+ "items": {
2327
+ "type": "object",
2328
+ "properties": {
2329
+ "name": {
2330
+ "type": "string",
2331
+ "pattern": "^[a-z][a-z0-9-]{0,40}$"
2332
+ },
2333
+ "serves": {
2334
+ "minItems": 1,
2335
+ "type": "array",
2336
+ "items": {
2337
+ "type": "string",
2338
+ "enum": [
2339
+ "workflows",
2340
+ "activities",
2341
+ "nexus"
2342
+ ]
2343
+ }
2344
+ },
2345
+ "fairness": {
2346
+ "type": "string",
2347
+ "enum": [
2348
+ "org",
2349
+ "none"
2350
+ ]
2351
+ }
2352
+ },
2353
+ "required": [
2354
+ "name",
2355
+ "serves",
2356
+ "fairness"
2357
+ ],
2358
+ "additionalProperties": false
2359
+ }
2360
+ },
2361
+ "nexus": {
2362
+ "type": "object",
2363
+ "properties": {
2364
+ "provides": {
2365
+ "type": "array",
2366
+ "items": {
2367
+ "type": "object",
2368
+ "properties": {
2369
+ "service": {
2370
+ "type": "string",
2371
+ "maxLength": 63,
2372
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
2373
+ },
2374
+ "version": {
2375
+ "type": "string",
2376
+ "pattern": "^v[1-9]\\d*$"
2377
+ },
2378
+ "taskQueue": {
2379
+ "type": "string",
2380
+ "pattern": "^[a-z][a-z0-9-]{0,40}$"
2381
+ },
2382
+ "operations": {
2383
+ "minItems": 1,
2384
+ "type": "array",
2385
+ "items": {
2386
+ "type": "object",
2387
+ "properties": {
2388
+ "name": {
2389
+ "type": "string",
2390
+ "pattern": "^[a-z][a-zA-Z0-9]*$"
2391
+ },
2392
+ "mode": {
2393
+ "type": "string",
2394
+ "enum": [
2395
+ "sync",
2396
+ "async"
2397
+ ]
2398
+ }
2399
+ },
2400
+ "required": [
2401
+ "name",
2402
+ "mode"
2403
+ ],
2404
+ "additionalProperties": false
2405
+ }
2406
+ }
2407
+ },
2408
+ "required": [
2409
+ "service",
2410
+ "version",
2411
+ "taskQueue",
2412
+ "operations"
2413
+ ],
2414
+ "additionalProperties": false
2415
+ }
2416
+ },
2417
+ "requires": {
2418
+ "type": "array",
2419
+ "items": {
2420
+ "type": "object",
2421
+ "properties": {
2422
+ "service": {
2423
+ "type": "string",
2424
+ "maxLength": 63,
2425
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
2426
+ },
2427
+ "version": {
2428
+ "type": "string",
2429
+ "pattern": "^v[1-9]\\d*$"
2430
+ },
2431
+ "operations": {
2432
+ "minItems": 1,
2433
+ "type": "array",
2434
+ "items": {
2435
+ "type": "string",
2436
+ "pattern": "^[a-z][a-zA-Z0-9]*$"
2437
+ }
2438
+ },
2439
+ "optional": {
2440
+ "type": "boolean",
2441
+ "const": true
2442
+ }
2443
+ },
2444
+ "required": [
2445
+ "service",
2446
+ "version",
2447
+ "operations"
2448
+ ],
2449
+ "additionalProperties": false
2450
+ }
2451
+ }
2452
+ },
2453
+ "additionalProperties": false
2454
+ }
2455
+ },
2456
+ "required": [
2457
+ "kind",
2458
+ "revision",
2459
+ "taskQueues"
2460
+ ],
2461
+ "additionalProperties": false
2001
2462
  }
2002
- },
2003
- "required": [
2004
- "kind",
2005
- "revision"
2006
- ],
2007
- "additionalProperties": false
2463
+ ]
2008
2464
  },
2009
2465
  {
2010
2466
  "type": "object",