@modellink/data 0.1.2 → 0.1.3

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 (3) hide show
  1. package/manifest.json +5 -5
  2. package/package.json +1 -1
  3. package/schema.json +1085 -294
package/schema.json CHANGED
@@ -6,6 +6,34 @@
6
6
  "x-modellink-schema-version": 1,
7
7
  "$ref": "#/definitions/Catalog",
8
8
  "definitions": {
9
+ "JsonValue": {
10
+ "anyOf": [
11
+ {
12
+ "type": "string"
13
+ },
14
+ {
15
+ "type": "number"
16
+ },
17
+ {
18
+ "type": "boolean"
19
+ },
20
+ {
21
+ "type": "null"
22
+ },
23
+ {
24
+ "type": "array",
25
+ "items": {
26
+ "$ref": "#/definitions/JsonValue"
27
+ }
28
+ },
29
+ {
30
+ "type": "object",
31
+ "additionalProperties": {
32
+ "$ref": "#/definitions/JsonValue"
33
+ }
34
+ }
35
+ ]
36
+ },
9
37
  "ModelMetadata": {
10
38
  "type": "object",
11
39
  "properties": {
@@ -283,10 +311,12 @@
283
311
  "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
284
312
  },
285
313
  "release_date": {
286
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
314
+ "type": "string",
315
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
287
316
  },
288
317
  "last_updated": {
289
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
318
+ "type": "string",
319
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
290
320
  },
291
321
  "modalities": {
292
322
  "type": "object",
@@ -308,7 +338,14 @@
308
338
  "output": {
309
339
  "type": "array",
310
340
  "items": {
311
- "$ref": "#/definitions/ModelMetadata/properties/modalities/properties/input/items"
341
+ "type": "string",
342
+ "enum": [
343
+ "text",
344
+ "audio",
345
+ "image",
346
+ "video",
347
+ "pdf"
348
+ ]
312
349
  },
313
350
  "description": "Output modalities produced by the model."
314
351
  }
@@ -395,7 +432,8 @@
395
432
  "minLength": 1
396
433
  },
397
434
  "url": {
398
- "$ref": "#/definitions/ModelMetadata/properties/links/items/properties/url"
435
+ "type": "string",
436
+ "format": "uri"
399
437
  },
400
438
  "format": {
401
439
  "type": "string",
@@ -453,10 +491,12 @@
453
491
  "minLength": 1
454
492
  },
455
493
  "source": {
456
- "$ref": "#/definitions/ModelMetadata/properties/links/items/properties/url"
494
+ "type": "string",
495
+ "format": "uri"
457
496
  },
458
497
  "date": {
459
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
498
+ "type": "string",
499
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
460
500
  }
461
501
  },
462
502
  "required": [
@@ -574,14 +614,38 @@
574
614
  "description": "Supported reasoning effort values; JSON null disables reasoning when supported."
575
615
  },
576
616
  "default": {
577
- "$ref": "#/definitions/ReasoningOption/anyOf/1/properties/values/items",
617
+ "anyOf": [
618
+ {
619
+ "type": "null"
620
+ },
621
+ {
622
+ "type": "string",
623
+ "enum": [
624
+ "none",
625
+ "minimal",
626
+ "low",
627
+ "medium",
628
+ "high",
629
+ "xhigh",
630
+ "max"
631
+ ]
632
+ }
633
+ ],
578
634
  "description": "Default reasoning effort when the provider documents one."
579
635
  },
580
636
  "field": {
581
- "$ref": "#/definitions/ReasoningOption/anyOf/0/properties/field"
637
+ "type": "string",
638
+ "minLength": 1,
639
+ "description": "Request body field used by this reasoning control."
582
640
  },
583
641
  "endpoints": {
584
- "$ref": "#/definitions/ReasoningOption/anyOf/0/properties/endpoints"
642
+ "type": "array",
643
+ "items": {
644
+ "type": "string",
645
+ "pattern": "^[a-z][a-z0-9-]*$"
646
+ },
647
+ "minItems": 1,
648
+ "description": "Provider endpoint IDs where this reasoning control applies."
585
649
  }
586
650
  },
587
651
  "required": [
@@ -608,10 +672,18 @@
608
672
  "description": "Maximum reasoning token budget."
609
673
  },
610
674
  "field": {
611
- "$ref": "#/definitions/ReasoningOption/anyOf/0/properties/field"
675
+ "type": "string",
676
+ "minLength": 1,
677
+ "description": "Request body field used by this reasoning control."
612
678
  },
613
679
  "endpoints": {
614
- "$ref": "#/definitions/ReasoningOption/anyOf/0/properties/endpoints"
680
+ "type": "array",
681
+ "items": {
682
+ "type": "string",
683
+ "pattern": "^[a-z][a-z0-9-]*$"
684
+ },
685
+ "minItems": 1,
686
+ "description": "Provider endpoint IDs where this reasoning control applies."
615
687
  }
616
688
  },
617
689
  "required": [
@@ -637,215 +709,513 @@
637
709
  "minLength": 1
638
710
  },
639
711
  "family": {
640
- "$ref": "#/definitions/ModelMetadata/properties/family"
641
- },
642
- "series": {
643
712
  "type": "string",
644
- "minLength": 1
645
- },
646
- "attachment": {
647
- "$ref": "#/definitions/ModelMetadata/properties/attachment"
648
- },
649
- "reasoning": {
650
- "$ref": "#/definitions/ModelMetadata/properties/reasoning",
651
- "description": "Whether reasoning is supported. Missing means unknown; false means explicitly unsupported."
652
- },
653
- "reasoning_options": {
654
- "type": "array",
655
- "items": {
656
- "$ref": "#/definitions/ReasoningOption"
657
- },
658
- "description": "Provider-specific controls for enabling or configuring reasoning."
659
- },
660
- "tool_call": {
661
- "$ref": "#/definitions/ModelMetadata/properties/tool_call",
662
- "description": "Whether tool calling is supported. Missing means unknown; false means explicitly unsupported."
663
- },
664
- "interleaved": {
665
- "anyOf": [
666
- {
667
- "type": "boolean",
668
- "const": true
669
- },
670
- {
671
- "type": "object",
672
- "properties": {
673
- "field": {
674
- "type": "string",
675
- "enum": [
676
- "reasoning_content",
677
- "reasoning_details"
678
- ]
679
- }
680
- },
681
- "required": [
682
- "field"
683
- ],
684
- "additionalProperties": false
685
- }
686
- ],
687
- "description": "Whether reasoning content is returned alongside output, optionally naming its response field."
688
- },
689
- "structured_output": {
690
- "$ref": "#/definitions/ModelMetadata/properties/structured_output",
691
- "description": "Whether structured output is supported. Missing means unknown; false means explicitly unsupported."
692
- },
693
- "temperature": {
694
- "$ref": "#/definitions/ModelMetadata/properties/temperature",
695
- "description": "Whether temperature is explicitly adjustable. Missing means unknown; false means fixed or unsupported."
696
- },
697
- "knowledge": {
698
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
699
- },
700
- "release_date": {
701
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
702
- },
703
- "last_updated": {
704
- "$ref": "#/definitions/ModelMetadata/properties/knowledge"
705
- },
706
- "modalities": {
707
- "$ref": "#/definitions/ModelMetadata/properties/modalities"
708
- },
709
- "open_weights": {
710
- "type": "boolean"
711
- },
712
- "limit": {
713
- "type": "object",
714
- "properties": {
715
- "context": {
716
- "$ref": "#/definitions/ModelMetadata/properties/limit/properties/context"
717
- },
718
- "input": {
719
- "$ref": "#/definitions/ModelMetadata/properties/limit/properties/input"
720
- },
721
- "output": {
722
- "type": "integer",
723
- "minimum": 0,
724
- "description": "Maximum output length in tokens when documented."
725
- }
726
- },
727
- "required": [
728
- "context"
729
- ],
730
- "additionalProperties": false,
731
- "description": "Token limits exposed by this provider model endpoint."
732
- },
733
- "doc": {
734
- "$ref": "#/definitions/ModelMetadata/properties/links/items/properties/url"
735
- },
736
- "endpoints": {
737
- "type": "array",
738
- "items": {
739
- "type": "string",
740
- "pattern": "^[a-z][a-z0-9-]*$"
741
- },
742
- "minItems": 1,
743
- "description": "Provider endpoint IDs enabled for this model; missing means the provider default endpoint."
744
- },
745
- "cost_points": {
746
- "type": "object",
747
- "properties": {
748
- "input": {
749
- "type": "number",
750
- "minimum": 0
751
- },
752
- "output": {
753
- "type": "number",
754
- "minimum": 0
755
- },
756
- "cache_read": {
757
- "type": "number",
758
- "minimum": 0
759
- },
760
- "per_tokens": {
761
- "type": "integer",
762
- "exclusiveMinimum": 0
763
- },
764
- "tiers": {
765
- "type": "array",
766
- "items": {
767
- "type": "object",
768
- "properties": {
769
- "input": {
770
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/input"
771
- },
772
- "output": {
773
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/output"
774
- },
775
- "cache_read": {
776
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/cache_read"
777
- },
778
- "tier": {
779
- "anyOf": [
780
- {
781
- "type": "object",
782
- "properties": {
783
- "type": {
784
- "type": "string",
785
- "const": "context"
786
- },
787
- "size": {
788
- "type": "integer",
789
- "minimum": 0
790
- }
791
- },
792
- "required": [
793
- "type",
794
- "size"
795
- ],
796
- "additionalProperties": false
797
- },
798
- {
799
- "type": "object",
800
- "properties": {
801
- "type": {
802
- "type": "string",
803
- "const": "conditional"
804
- },
805
- "input": {
806
- "type": "object",
807
- "properties": {
808
- "gte": {
809
- "type": "integer",
810
- "minimum": 0
811
- },
812
- "gt": {
813
- "type": "integer",
814
- "minimum": 0
815
- },
816
- "lt": {
817
- "type": "integer",
818
- "minimum": 0
819
- },
820
- "lte": {
821
- "type": "integer",
822
- "minimum": 0
823
- }
824
- },
825
- "additionalProperties": false
826
- },
827
- "output": {
828
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/tiers/items/properties/tier/anyOf/1/properties/input"
829
- },
830
- "time": {
831
- "type": "object",
832
- "properties": {
833
- "timezone": {
834
- "type": "string",
835
- "minLength": 1
836
- },
837
- "windows": {
838
- "type": "array",
839
- "items": {
840
- "type": "object",
841
- "properties": {
842
- "days": {
843
- "type": "array",
844
- "items": {
845
- "type": "string",
846
- "enum": [
847
- "monday",
848
- "tuesday",
713
+ "enum": [
714
+ "trinity",
715
+ "trinity-mini",
716
+ "gpt",
717
+ "gpt-codex",
718
+ "gpt-codex-spark",
719
+ "gpt-codex-mini",
720
+ "gpt-pro",
721
+ "gpt-mini",
722
+ "gpt-nano",
723
+ "gpt-sol",
724
+ "gpt-terra",
725
+ "gpt-luna",
726
+ "gpt-oss",
727
+ "gpt-image",
728
+ "o",
729
+ "o-mini",
730
+ "o-pro",
731
+ "claude",
732
+ "claude-haiku",
733
+ "claude-sonnet",
734
+ "claude-opus",
735
+ "claude-fable",
736
+ "gemini",
737
+ "gemini-pro",
738
+ "gemini-flash",
739
+ "gemini-flash-lite",
740
+ "gemini-embedding",
741
+ "glm",
742
+ "glmv",
743
+ "glm-air",
744
+ "glm-flash",
745
+ "glm-free",
746
+ "glm-z",
747
+ "llama",
748
+ "muse",
749
+ "qwen",
750
+ "qwen3.5",
751
+ "qwen3.6",
752
+ "qwen3.7-plus",
753
+ "qwen3.7-max",
754
+ "qwen3.7-flash",
755
+ "qwen3.8-max",
756
+ "qwen-free",
757
+ "ornith",
758
+ "deepseek",
759
+ "deepseek-thinking",
760
+ "deepseek-flash",
761
+ "deepseek-flash-free",
762
+ "deepseek-flash-think",
763
+ "doubao-seed",
764
+ "phi",
765
+ "kimi",
766
+ "kimi-k2",
767
+ "kimi-k3",
768
+ "kimi-free",
769
+ "kimi-thinking",
770
+ "laguna",
771
+ "laguna-s",
772
+ "mistral",
773
+ "mistral-large",
774
+ "mistral-medium",
775
+ "mistral-small",
776
+ "mistral-nemo",
777
+ "ministral",
778
+ "codestral",
779
+ "devstral",
780
+ "pixtral",
781
+ "mixtral",
782
+ "grok",
783
+ "grok-build",
784
+ "grok-vision",
785
+ "grok-beta",
786
+ "gemma",
787
+ "nova",
788
+ "nova-pro",
789
+ "nova-lite",
790
+ "nova-micro",
791
+ "command",
792
+ "command-r",
793
+ "command-a",
794
+ "command-light",
795
+ "north",
796
+ "north-free",
797
+ "jamba",
798
+ "nemotron",
799
+ "nemotron-free",
800
+ "titan",
801
+ "titan-embed",
802
+ "minimax",
803
+ "minimax-m2",
804
+ "minimax-m2.1",
805
+ "minimax-m2.5",
806
+ "minimax-m2.7",
807
+ "minimax-m3",
808
+ "minimax-m3-free",
809
+ "minimax-free",
810
+ "hunyuan",
811
+ "Hy",
812
+ "ernie",
813
+ "baichuan",
814
+ "sensenova",
815
+ "yi",
816
+ "granite",
817
+ "reka",
818
+ "sonar",
819
+ "sonar-pro",
820
+ "sonar-reasoning",
821
+ "sonar-deep-research",
822
+ "solar",
823
+ "solar-mini",
824
+ "solar-pro",
825
+ "step",
826
+ "spark-x2",
827
+ "openpangu",
828
+ "text-embedding",
829
+ "cohere-embed",
830
+ "voyage",
831
+ "mistral-embed",
832
+ "bge",
833
+ "plamo",
834
+ "codestral-embed",
835
+ "dall-e",
836
+ "flux",
837
+ "imagen",
838
+ "recraft",
839
+ "stable-diffusion",
840
+ "ideogram",
841
+ "dreamshaper",
842
+ "sora",
843
+ "veo",
844
+ "runway",
845
+ "dream-machine",
846
+ "whisper",
847
+ "elevenlabs",
848
+ "lyria",
849
+ "melotts",
850
+ "hermes",
851
+ "zephyr",
852
+ "openchat",
853
+ "starling",
854
+ "qvq",
855
+ "sherlock",
856
+ "pony",
857
+ "mercury",
858
+ "cogito",
859
+ "mimo",
860
+ "mimo-pro",
861
+ "mimo-omni",
862
+ "mimo-v2-pro",
863
+ "mimo-v2-omni",
864
+ "mimo-v2.5-pro",
865
+ "mimo-v2.5",
866
+ "mimo-v2.5-free",
867
+ "mimo-pro-free",
868
+ "mimo-omni-free",
869
+ "mimo-flash-free",
870
+ "mm-poly",
871
+ "longcat",
872
+ "nex-n2",
873
+ "intern-s",
874
+ "internvl",
875
+ "joyai",
876
+ "magistral",
877
+ "magistral-small",
878
+ "magistral-medium",
879
+ "phoenix",
880
+ "lucid",
881
+ "agi",
882
+ "intellect",
883
+ "aura",
884
+ "jais",
885
+ "sarvam",
886
+ "falcon",
887
+ "skywork",
888
+ "bart",
889
+ "distilbert",
890
+ "resnet",
891
+ "m2m",
892
+ "indictrans",
893
+ "llava",
894
+ "seed",
895
+ "ray",
896
+ "tstars",
897
+ "rnj",
898
+ "hy3",
899
+ "hy3-free",
900
+ "ling",
901
+ "ling-flash-free",
902
+ "ring",
903
+ "ring-1t-free",
904
+ "kat-coder",
905
+ "sqlcoder",
906
+ "discolm",
907
+ "osmosis",
908
+ "parakeet",
909
+ "nemoretriever",
910
+ "nano-banana",
911
+ "una-cybertron",
912
+ "morph",
913
+ "voxtral",
914
+ "venice",
915
+ "auto",
916
+ "model-router",
917
+ "fugu",
918
+ "v0",
919
+ "tako",
920
+ "mai",
921
+ "rednote",
922
+ "smart-turn",
923
+ "qwerky",
924
+ "big-pickle",
925
+ "chutesai",
926
+ "opengvlab",
927
+ "tngtech",
928
+ "topazlabs",
929
+ "unsloth",
930
+ "nousresearch",
931
+ "alpha",
932
+ "oswe",
933
+ "neural-chat",
934
+ "pangu",
935
+ "liquid",
936
+ "sourceful",
937
+ "allenai",
938
+ "palmyra",
939
+ "allam",
940
+ "canopylabs",
941
+ "groq",
942
+ "elephant"
943
+ ]
944
+ },
945
+ "series": {
946
+ "type": "string",
947
+ "minLength": 1
948
+ },
949
+ "attachment": {
950
+ "type": "boolean",
951
+ "description": "Whether attachments are supported. Missing on optional metadata means unknown."
952
+ },
953
+ "reasoning": {
954
+ "type": "boolean",
955
+ "description": "Whether reasoning is supported. Missing means unknown; false means explicitly unsupported."
956
+ },
957
+ "reasoning_options": {
958
+ "type": "array",
959
+ "items": {
960
+ "$ref": "#/definitions/ReasoningOption"
961
+ },
962
+ "description": "Provider-specific controls for enabling or configuring reasoning."
963
+ },
964
+ "tool_call": {
965
+ "type": "boolean",
966
+ "description": "Whether tool calling is supported. Missing means unknown; false means explicitly unsupported."
967
+ },
968
+ "interleaved": {
969
+ "anyOf": [
970
+ {
971
+ "type": "boolean",
972
+ "const": true
973
+ },
974
+ {
975
+ "type": "object",
976
+ "properties": {
977
+ "field": {
978
+ "type": "string",
979
+ "enum": [
980
+ "reasoning_content",
981
+ "reasoning_details"
982
+ ]
983
+ }
984
+ },
985
+ "required": [
986
+ "field"
987
+ ],
988
+ "additionalProperties": false
989
+ }
990
+ ],
991
+ "description": "Whether reasoning content is returned alongside output, optionally naming its response field."
992
+ },
993
+ "structured_output": {
994
+ "type": "boolean",
995
+ "description": "Whether structured output is supported. Missing means unknown; false means explicitly unsupported."
996
+ },
997
+ "temperature": {
998
+ "type": "boolean",
999
+ "description": "Whether temperature is explicitly adjustable. Missing means unknown; false means fixed or unsupported."
1000
+ },
1001
+ "knowledge": {
1002
+ "type": "string",
1003
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
1004
+ },
1005
+ "release_date": {
1006
+ "type": "string",
1007
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
1008
+ },
1009
+ "last_updated": {
1010
+ "type": "string",
1011
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
1012
+ },
1013
+ "modalities": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "input": {
1017
+ "type": "array",
1018
+ "items": {
1019
+ "type": "string",
1020
+ "enum": [
1021
+ "text",
1022
+ "audio",
1023
+ "image",
1024
+ "video",
1025
+ "pdf"
1026
+ ]
1027
+ },
1028
+ "description": "Input modalities accepted by the model."
1029
+ },
1030
+ "output": {
1031
+ "type": "array",
1032
+ "items": {
1033
+ "type": "string",
1034
+ "enum": [
1035
+ "text",
1036
+ "audio",
1037
+ "image",
1038
+ "video",
1039
+ "pdf"
1040
+ ]
1041
+ },
1042
+ "description": "Output modalities produced by the model."
1043
+ }
1044
+ },
1045
+ "required": [
1046
+ "input",
1047
+ "output"
1048
+ ],
1049
+ "additionalProperties": false,
1050
+ "description": "Input and output modalities exposed by this model endpoint."
1051
+ },
1052
+ "open_weights": {
1053
+ "type": "boolean"
1054
+ },
1055
+ "limit": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "context": {
1059
+ "type": "integer",
1060
+ "minimum": 0,
1061
+ "description": "Maximum context window in tokens."
1062
+ },
1063
+ "input": {
1064
+ "type": "integer",
1065
+ "minimum": 0,
1066
+ "description": "Maximum input length in tokens when separately documented."
1067
+ },
1068
+ "output": {
1069
+ "type": "integer",
1070
+ "minimum": 0,
1071
+ "description": "Maximum output length in tokens when documented."
1072
+ }
1073
+ },
1074
+ "required": [
1075
+ "context"
1076
+ ],
1077
+ "additionalProperties": false,
1078
+ "description": "Token limits exposed by this provider model endpoint."
1079
+ },
1080
+ "doc": {
1081
+ "type": "string",
1082
+ "format": "uri"
1083
+ },
1084
+ "endpoints": {
1085
+ "type": "array",
1086
+ "items": {
1087
+ "type": "string",
1088
+ "pattern": "^[a-z][a-z0-9-]*$"
1089
+ },
1090
+ "minItems": 1,
1091
+ "description": "Provider endpoint IDs enabled for this model; missing means the provider default endpoint."
1092
+ },
1093
+ "cost_points": {
1094
+ "type": "object",
1095
+ "properties": {
1096
+ "input": {
1097
+ "type": "number",
1098
+ "minimum": 0
1099
+ },
1100
+ "output": {
1101
+ "type": "number",
1102
+ "minimum": 0
1103
+ },
1104
+ "cache_read": {
1105
+ "type": "number",
1106
+ "minimum": 0
1107
+ },
1108
+ "per_tokens": {
1109
+ "type": "integer",
1110
+ "exclusiveMinimum": 0
1111
+ },
1112
+ "tiers": {
1113
+ "type": "array",
1114
+ "items": {
1115
+ "type": "object",
1116
+ "properties": {
1117
+ "input": {
1118
+ "type": "number",
1119
+ "minimum": 0
1120
+ },
1121
+ "output": {
1122
+ "type": "number",
1123
+ "minimum": 0
1124
+ },
1125
+ "cache_read": {
1126
+ "type": "number",
1127
+ "minimum": 0
1128
+ },
1129
+ "tier": {
1130
+ "anyOf": [
1131
+ {
1132
+ "type": "object",
1133
+ "properties": {
1134
+ "type": {
1135
+ "type": "string",
1136
+ "const": "context"
1137
+ },
1138
+ "size": {
1139
+ "type": "integer",
1140
+ "minimum": 0
1141
+ }
1142
+ },
1143
+ "required": [
1144
+ "type",
1145
+ "size"
1146
+ ],
1147
+ "additionalProperties": false
1148
+ },
1149
+ {
1150
+ "type": "object",
1151
+ "properties": {
1152
+ "type": {
1153
+ "type": "string",
1154
+ "const": "conditional"
1155
+ },
1156
+ "input": {
1157
+ "type": "object",
1158
+ "properties": {
1159
+ "gte": {
1160
+ "type": "integer",
1161
+ "minimum": 0
1162
+ },
1163
+ "gt": {
1164
+ "type": "integer",
1165
+ "minimum": 0
1166
+ },
1167
+ "lt": {
1168
+ "type": "integer",
1169
+ "minimum": 0
1170
+ },
1171
+ "lte": {
1172
+ "type": "integer",
1173
+ "minimum": 0
1174
+ }
1175
+ },
1176
+ "additionalProperties": false
1177
+ },
1178
+ "output": {
1179
+ "type": "object",
1180
+ "properties": {
1181
+ "gte": {
1182
+ "type": "integer",
1183
+ "minimum": 0
1184
+ },
1185
+ "gt": {
1186
+ "type": "integer",
1187
+ "minimum": 0
1188
+ },
1189
+ "lt": {
1190
+ "type": "integer",
1191
+ "minimum": 0
1192
+ },
1193
+ "lte": {
1194
+ "type": "integer",
1195
+ "minimum": 0
1196
+ }
1197
+ },
1198
+ "additionalProperties": false
1199
+ },
1200
+ "time": {
1201
+ "type": "object",
1202
+ "properties": {
1203
+ "timezone": {
1204
+ "type": "string",
1205
+ "minLength": 1
1206
+ },
1207
+ "windows": {
1208
+ "type": "array",
1209
+ "items": {
1210
+ "type": "object",
1211
+ "properties": {
1212
+ "days": {
1213
+ "type": "array",
1214
+ "items": {
1215
+ "type": "string",
1216
+ "enum": [
1217
+ "monday",
1218
+ "tuesday",
849
1219
  "wednesday",
850
1220
  "thursday",
851
1221
  "friday",
@@ -911,7 +1281,16 @@
911
1281
  "days": {
912
1282
  "type": "array",
913
1283
  "items": {
914
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/tiers/items/properties/tier/anyOf/1/properties/time/properties/windows/items/properties/days/items"
1284
+ "type": "string",
1285
+ "enum": [
1286
+ "monday",
1287
+ "tuesday",
1288
+ "wednesday",
1289
+ "thursday",
1290
+ "friday",
1291
+ "saturday",
1292
+ "sunday"
1293
+ ]
915
1294
  },
916
1295
  "minItems": 1
917
1296
  },
@@ -1000,7 +1379,42 @@
1000
1379
  "additionalProperties": false
1001
1380
  },
1002
1381
  "cost_cn": {
1003
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost"
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "input": {
1385
+ "type": "number",
1386
+ "minimum": 0
1387
+ },
1388
+ "output": {
1389
+ "type": "number",
1390
+ "minimum": 0
1391
+ },
1392
+ "reasoning": {
1393
+ "type": "number",
1394
+ "minimum": 0
1395
+ },
1396
+ "cache_read": {
1397
+ "type": "number",
1398
+ "minimum": 0
1399
+ },
1400
+ "cache_write": {
1401
+ "type": "number",
1402
+ "minimum": 0
1403
+ },
1404
+ "input_audio": {
1405
+ "type": "number",
1406
+ "minimum": 0
1407
+ },
1408
+ "output_audio": {
1409
+ "type": "number",
1410
+ "minimum": 0
1411
+ }
1412
+ },
1413
+ "required": [
1414
+ "input",
1415
+ "output"
1416
+ ],
1417
+ "additionalProperties": false
1004
1418
  },
1005
1419
  "provider": {
1006
1420
  "type": "object",
@@ -1008,32 +1422,7 @@
1008
1422
  "body": {
1009
1423
  "type": "object",
1010
1424
  "additionalProperties": {
1011
- "anyOf": [
1012
- {
1013
- "type": "string"
1014
- },
1015
- {
1016
- "type": "number"
1017
- },
1018
- {
1019
- "type": "boolean"
1020
- },
1021
- {
1022
- "type": "null"
1023
- },
1024
- {
1025
- "type": "array",
1026
- "items": {
1027
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/provider/properties/body/additionalProperties"
1028
- }
1029
- },
1030
- {
1031
- "type": "object",
1032
- "additionalProperties": {
1033
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/provider/properties/body/additionalProperties"
1034
- }
1035
- }
1036
- ]
1425
+ "$ref": "#/definitions/JsonValue"
1037
1426
  }
1038
1427
  },
1039
1428
  "headers": {
@@ -1071,7 +1460,7 @@
1071
1460
  "body": {
1072
1461
  "type": "object",
1073
1462
  "additionalProperties": {
1074
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/provider/properties/body/additionalProperties"
1463
+ "$ref": "#/definitions/JsonValue"
1075
1464
  }
1076
1465
  },
1077
1466
  "headers": {
@@ -1087,28 +1476,70 @@
1087
1476
  "type": "object",
1088
1477
  "properties": {
1089
1478
  "input": {
1090
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1479
+ "type": "number",
1480
+ "minimum": 0
1091
1481
  },
1092
1482
  "output": {
1093
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1483
+ "type": "number",
1484
+ "minimum": 0
1094
1485
  },
1095
1486
  "reasoning": {
1096
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/reasoning"
1487
+ "type": "number",
1488
+ "minimum": 0
1097
1489
  },
1098
1490
  "cache_read": {
1099
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1491
+ "type": "number",
1492
+ "minimum": 0
1100
1493
  },
1101
1494
  "cache_write": {
1102
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1495
+ "type": "number",
1496
+ "minimum": 0
1103
1497
  },
1104
1498
  "input_audio": {
1105
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1499
+ "type": "number",
1500
+ "minimum": 0
1106
1501
  },
1107
1502
  "output_audio": {
1108
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1503
+ "type": "number",
1504
+ "minimum": 0
1109
1505
  },
1110
1506
  "context_over_200k": {
1111
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost"
1507
+ "type": "object",
1508
+ "properties": {
1509
+ "input": {
1510
+ "type": "number",
1511
+ "minimum": 0
1512
+ },
1513
+ "output": {
1514
+ "type": "number",
1515
+ "minimum": 0
1516
+ },
1517
+ "reasoning": {
1518
+ "type": "number",
1519
+ "minimum": 0
1520
+ },
1521
+ "cache_read": {
1522
+ "type": "number",
1523
+ "minimum": 0
1524
+ },
1525
+ "cache_write": {
1526
+ "type": "number",
1527
+ "minimum": 0
1528
+ },
1529
+ "input_audio": {
1530
+ "type": "number",
1531
+ "minimum": 0
1532
+ },
1533
+ "output_audio": {
1534
+ "type": "number",
1535
+ "minimum": 0
1536
+ }
1537
+ },
1538
+ "required": [
1539
+ "input",
1540
+ "output"
1541
+ ],
1542
+ "additionalProperties": false
1112
1543
  },
1113
1544
  "tiers": {
1114
1545
  "type": "array",
@@ -1116,28 +1547,167 @@
1116
1547
  "type": "object",
1117
1548
  "properties": {
1118
1549
  "input": {
1119
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1550
+ "type": "number",
1551
+ "minimum": 0
1120
1552
  },
1121
1553
  "output": {
1122
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1554
+ "type": "number",
1555
+ "minimum": 0
1123
1556
  },
1124
1557
  "reasoning": {
1125
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/reasoning"
1558
+ "type": "number",
1559
+ "minimum": 0
1126
1560
  },
1127
1561
  "cache_read": {
1128
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1562
+ "type": "number",
1563
+ "minimum": 0
1129
1564
  },
1130
1565
  "cache_write": {
1131
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1566
+ "type": "number",
1567
+ "minimum": 0
1132
1568
  },
1133
1569
  "input_audio": {
1134
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1570
+ "type": "number",
1571
+ "minimum": 0
1135
1572
  },
1136
1573
  "output_audio": {
1137
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1574
+ "type": "number",
1575
+ "minimum": 0
1138
1576
  },
1139
1577
  "tier": {
1140
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/tiers/items/properties/tier"
1578
+ "anyOf": [
1579
+ {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "type": {
1583
+ "type": "string",
1584
+ "const": "context"
1585
+ },
1586
+ "size": {
1587
+ "type": "integer",
1588
+ "minimum": 0
1589
+ }
1590
+ },
1591
+ "required": [
1592
+ "type",
1593
+ "size"
1594
+ ],
1595
+ "additionalProperties": false
1596
+ },
1597
+ {
1598
+ "type": "object",
1599
+ "properties": {
1600
+ "type": {
1601
+ "type": "string",
1602
+ "const": "conditional"
1603
+ },
1604
+ "input": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "gte": {
1608
+ "type": "integer",
1609
+ "minimum": 0
1610
+ },
1611
+ "gt": {
1612
+ "type": "integer",
1613
+ "minimum": 0
1614
+ },
1615
+ "lt": {
1616
+ "type": "integer",
1617
+ "minimum": 0
1618
+ },
1619
+ "lte": {
1620
+ "type": "integer",
1621
+ "minimum": 0
1622
+ }
1623
+ },
1624
+ "additionalProperties": false
1625
+ },
1626
+ "output": {
1627
+ "type": "object",
1628
+ "properties": {
1629
+ "gte": {
1630
+ "type": "integer",
1631
+ "minimum": 0
1632
+ },
1633
+ "gt": {
1634
+ "type": "integer",
1635
+ "minimum": 0
1636
+ },
1637
+ "lt": {
1638
+ "type": "integer",
1639
+ "minimum": 0
1640
+ },
1641
+ "lte": {
1642
+ "type": "integer",
1643
+ "minimum": 0
1644
+ }
1645
+ },
1646
+ "additionalProperties": false
1647
+ },
1648
+ "time": {
1649
+ "type": "object",
1650
+ "properties": {
1651
+ "timezone": {
1652
+ "type": "string",
1653
+ "minLength": 1
1654
+ },
1655
+ "windows": {
1656
+ "type": "array",
1657
+ "items": {
1658
+ "type": "object",
1659
+ "properties": {
1660
+ "days": {
1661
+ "type": "array",
1662
+ "items": {
1663
+ "type": "string",
1664
+ "enum": [
1665
+ "monday",
1666
+ "tuesday",
1667
+ "wednesday",
1668
+ "thursday",
1669
+ "friday",
1670
+ "saturday",
1671
+ "sunday"
1672
+ ]
1673
+ },
1674
+ "minItems": 1
1675
+ },
1676
+ "start": {
1677
+ "type": "string",
1678
+ "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
1679
+ },
1680
+ "end": {
1681
+ "type": "string",
1682
+ "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$"
1683
+ }
1684
+ },
1685
+ "required": [
1686
+ "start",
1687
+ "end"
1688
+ ],
1689
+ "additionalProperties": false
1690
+ },
1691
+ "minItems": 1
1692
+ }
1693
+ },
1694
+ "required": [
1695
+ "timezone",
1696
+ "windows"
1697
+ ],
1698
+ "additionalProperties": false
1699
+ },
1700
+ "label": {
1701
+ "type": "string",
1702
+ "minLength": 1
1703
+ }
1704
+ },
1705
+ "required": [
1706
+ "type"
1707
+ ],
1708
+ "additionalProperties": false
1709
+ }
1710
+ ]
1141
1711
  }
1142
1712
  },
1143
1713
  "required": [
@@ -1160,46 +1730,59 @@
1160
1730
  "type": "object",
1161
1731
  "properties": {
1162
1732
  "input": {
1163
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1733
+ "type": "number",
1734
+ "minimum": 0
1164
1735
  },
1165
1736
  "output": {
1166
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1737
+ "type": "number",
1738
+ "minimum": 0
1167
1739
  },
1168
1740
  "reasoning": {
1169
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/reasoning"
1741
+ "type": "number",
1742
+ "minimum": 0
1170
1743
  },
1171
1744
  "cache_read": {
1172
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1745
+ "type": "number",
1746
+ "minimum": 0
1173
1747
  },
1174
1748
  "cache_write": {
1175
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1749
+ "type": "number",
1750
+ "minimum": 0
1176
1751
  },
1177
1752
  "input_audio": {
1178
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1753
+ "type": "number",
1754
+ "minimum": 0
1179
1755
  },
1180
1756
  "output_audio": {
1181
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1757
+ "type": "number",
1758
+ "minimum": 0
1182
1759
  },
1183
1760
  "thinking": {
1184
1761
  "type": "object",
1185
1762
  "properties": {
1186
1763
  "input": {
1187
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1764
+ "type": "number",
1765
+ "minimum": 0
1188
1766
  },
1189
1767
  "output": {
1190
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1768
+ "type": "number",
1769
+ "minimum": 0
1191
1770
  },
1192
1771
  "cache_read": {
1193
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1772
+ "type": "number",
1773
+ "minimum": 0
1194
1774
  },
1195
1775
  "cache_write": {
1196
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1776
+ "type": "number",
1777
+ "minimum": 0
1197
1778
  },
1198
1779
  "input_audio": {
1199
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1780
+ "type": "number",
1781
+ "minimum": 0
1200
1782
  },
1201
1783
  "output_audio": {
1202
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1784
+ "type": "number",
1785
+ "minimum": 0
1203
1786
  }
1204
1787
  },
1205
1788
  "required": [
@@ -1212,28 +1795,66 @@
1212
1795
  "type": "object",
1213
1796
  "properties": {
1214
1797
  "input": {
1215
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1798
+ "type": "number",
1799
+ "minimum": 0
1216
1800
  },
1217
1801
  "output": {
1218
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1802
+ "type": "number",
1803
+ "minimum": 0
1219
1804
  },
1220
1805
  "reasoning": {
1221
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/reasoning"
1806
+ "type": "number",
1807
+ "minimum": 0
1222
1808
  },
1223
1809
  "cache_read": {
1224
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1810
+ "type": "number",
1811
+ "minimum": 0
1225
1812
  },
1226
1813
  "cache_write": {
1227
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1814
+ "type": "number",
1815
+ "minimum": 0
1228
1816
  },
1229
1817
  "input_audio": {
1230
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1818
+ "type": "number",
1819
+ "minimum": 0
1231
1820
  },
1232
1821
  "output_audio": {
1233
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1822
+ "type": "number",
1823
+ "minimum": 0
1234
1824
  },
1235
1825
  "thinking": {
1236
- "$ref": "#/definitions/ProviderModel/properties/cost_cn/properties/thinking"
1826
+ "type": "object",
1827
+ "properties": {
1828
+ "input": {
1829
+ "type": "number",
1830
+ "minimum": 0
1831
+ },
1832
+ "output": {
1833
+ "type": "number",
1834
+ "minimum": 0
1835
+ },
1836
+ "cache_read": {
1837
+ "type": "number",
1838
+ "minimum": 0
1839
+ },
1840
+ "cache_write": {
1841
+ "type": "number",
1842
+ "minimum": 0
1843
+ },
1844
+ "input_audio": {
1845
+ "type": "number",
1846
+ "minimum": 0
1847
+ },
1848
+ "output_audio": {
1849
+ "type": "number",
1850
+ "minimum": 0
1851
+ }
1852
+ },
1853
+ "required": [
1854
+ "input",
1855
+ "output"
1856
+ ],
1857
+ "additionalProperties": false
1237
1858
  }
1238
1859
  },
1239
1860
  "required": [
@@ -1248,31 +1869,201 @@
1248
1869
  "type": "object",
1249
1870
  "properties": {
1250
1871
  "input": {
1251
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input"
1872
+ "type": "number",
1873
+ "minimum": 0
1252
1874
  },
1253
1875
  "output": {
1254
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output"
1876
+ "type": "number",
1877
+ "minimum": 0
1255
1878
  },
1256
1879
  "reasoning": {
1257
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/reasoning"
1880
+ "type": "number",
1881
+ "minimum": 0
1258
1882
  },
1259
1883
  "cache_read": {
1260
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_read"
1884
+ "type": "number",
1885
+ "minimum": 0
1261
1886
  },
1262
1887
  "cache_write": {
1263
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/cache_write"
1888
+ "type": "number",
1889
+ "minimum": 0
1264
1890
  },
1265
1891
  "input_audio": {
1266
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/input_audio"
1892
+ "type": "number",
1893
+ "minimum": 0
1267
1894
  },
1268
1895
  "output_audio": {
1269
- "$ref": "#/definitions/ProviderModel/properties/experimental/properties/modes/additionalProperties/properties/cost/properties/output_audio"
1896
+ "type": "number",
1897
+ "minimum": 0
1270
1898
  },
1271
1899
  "thinking": {
1272
- "$ref": "#/definitions/ProviderModel/properties/cost_cn/properties/thinking"
1900
+ "type": "object",
1901
+ "properties": {
1902
+ "input": {
1903
+ "type": "number",
1904
+ "minimum": 0
1905
+ },
1906
+ "output": {
1907
+ "type": "number",
1908
+ "minimum": 0
1909
+ },
1910
+ "cache_read": {
1911
+ "type": "number",
1912
+ "minimum": 0
1913
+ },
1914
+ "cache_write": {
1915
+ "type": "number",
1916
+ "minimum": 0
1917
+ },
1918
+ "input_audio": {
1919
+ "type": "number",
1920
+ "minimum": 0
1921
+ },
1922
+ "output_audio": {
1923
+ "type": "number",
1924
+ "minimum": 0
1925
+ }
1926
+ },
1927
+ "required": [
1928
+ "input",
1929
+ "output"
1930
+ ],
1931
+ "additionalProperties": false
1273
1932
  },
1274
1933
  "tier": {
1275
- "$ref": "#/definitions/ProviderModel/properties/cost_points/properties/tiers/items/properties/tier"
1934
+ "anyOf": [
1935
+ {
1936
+ "type": "object",
1937
+ "properties": {
1938
+ "type": {
1939
+ "type": "string",
1940
+ "const": "context"
1941
+ },
1942
+ "size": {
1943
+ "type": "integer",
1944
+ "minimum": 0
1945
+ }
1946
+ },
1947
+ "required": [
1948
+ "type",
1949
+ "size"
1950
+ ],
1951
+ "additionalProperties": false
1952
+ },
1953
+ {
1954
+ "type": "object",
1955
+ "properties": {
1956
+ "type": {
1957
+ "type": "string",
1958
+ "const": "conditional"
1959
+ },
1960
+ "input": {
1961
+ "type": "object",
1962
+ "properties": {
1963
+ "gte": {
1964
+ "type": "integer",
1965
+ "minimum": 0
1966
+ },
1967
+ "gt": {
1968
+ "type": "integer",
1969
+ "minimum": 0
1970
+ },
1971
+ "lt": {
1972
+ "type": "integer",
1973
+ "minimum": 0
1974
+ },
1975
+ "lte": {
1976
+ "type": "integer",
1977
+ "minimum": 0
1978
+ }
1979
+ },
1980
+ "additionalProperties": false
1981
+ },
1982
+ "output": {
1983
+ "type": "object",
1984
+ "properties": {
1985
+ "gte": {
1986
+ "type": "integer",
1987
+ "minimum": 0
1988
+ },
1989
+ "gt": {
1990
+ "type": "integer",
1991
+ "minimum": 0
1992
+ },
1993
+ "lt": {
1994
+ "type": "integer",
1995
+ "minimum": 0
1996
+ },
1997
+ "lte": {
1998
+ "type": "integer",
1999
+ "minimum": 0
2000
+ }
2001
+ },
2002
+ "additionalProperties": false
2003
+ },
2004
+ "time": {
2005
+ "type": "object",
2006
+ "properties": {
2007
+ "timezone": {
2008
+ "type": "string",
2009
+ "minLength": 1
2010
+ },
2011
+ "windows": {
2012
+ "type": "array",
2013
+ "items": {
2014
+ "type": "object",
2015
+ "properties": {
2016
+ "days": {
2017
+ "type": "array",
2018
+ "items": {
2019
+ "type": "string",
2020
+ "enum": [
2021
+ "monday",
2022
+ "tuesday",
2023
+ "wednesday",
2024
+ "thursday",
2025
+ "friday",
2026
+ "saturday",
2027
+ "sunday"
2028
+ ]
2029
+ },
2030
+ "minItems": 1
2031
+ },
2032
+ "start": {
2033
+ "type": "string",
2034
+ "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
2035
+ },
2036
+ "end": {
2037
+ "type": "string",
2038
+ "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$"
2039
+ }
2040
+ },
2041
+ "required": [
2042
+ "start",
2043
+ "end"
2044
+ ],
2045
+ "additionalProperties": false
2046
+ },
2047
+ "minItems": 1
2048
+ }
2049
+ },
2050
+ "required": [
2051
+ "timezone",
2052
+ "windows"
2053
+ ],
2054
+ "additionalProperties": false
2055
+ },
2056
+ "label": {
2057
+ "type": "string",
2058
+ "minLength": 1
2059
+ }
2060
+ },
2061
+ "required": [
2062
+ "type"
2063
+ ],
2064
+ "additionalProperties": false
2065
+ }
2066
+ ]
1276
2067
  }
1277
2068
  },
1278
2069
  "required": [