@gozargah/xray-schema 0.0.3 → 0.0.5

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.
@@ -318,7 +318,7 @@
318
318
  ]
319
319
  },
320
320
  "then": {
321
- "$ref": "#/definitions/__schema613"
321
+ "$ref": "#/definitions/__schema619"
322
322
  }
323
323
  },
324
324
  {
@@ -333,7 +333,7 @@
333
333
  ]
334
334
  },
335
335
  "then": {
336
- "$ref": "#/definitions/__schema635"
336
+ "$ref": "#/definitions/__schema641"
337
337
  }
338
338
  },
339
339
  {
@@ -348,7 +348,7 @@
348
348
  ]
349
349
  },
350
350
  "then": {
351
- "$ref": "#/definitions/__schema647"
351
+ "$ref": "#/definitions/__schema653"
352
352
  }
353
353
  },
354
354
  {
@@ -363,7 +363,7 @@
363
363
  ]
364
364
  },
365
365
  "then": {
366
- "$ref": "#/definitions/__schema656"
366
+ "$ref": "#/definitions/__schema662"
367
367
  }
368
368
  },
369
369
  {
@@ -378,7 +378,7 @@
378
378
  ]
379
379
  },
380
380
  "then": {
381
- "$ref": "#/definitions/__schema664"
381
+ "$ref": "#/definitions/__schema670"
382
382
  }
383
383
  },
384
384
  {
@@ -393,7 +393,7 @@
393
393
  ]
394
394
  },
395
395
  "then": {
396
- "$ref": "#/definitions/__schema681"
396
+ "$ref": "#/definitions/__schema687"
397
397
  }
398
398
  }
399
399
  ]
@@ -440,7 +440,7 @@
440
440
  ]
441
441
  },
442
442
  "then": {
443
- "$ref": "#/definitions/__schema688"
443
+ "$ref": "#/definitions/__schema694"
444
444
  }
445
445
  },
446
446
  {
@@ -458,7 +458,7 @@
458
458
  ]
459
459
  },
460
460
  "then": {
461
- "$ref": "#/definitions/__schema710"
461
+ "$ref": "#/definitions/__schema716"
462
462
  }
463
463
  },
464
464
  {
@@ -473,7 +473,7 @@
473
473
  ]
474
474
  },
475
475
  "then": {
476
- "$ref": "#/definitions/__schema730"
476
+ "$ref": "#/definitions/__schema736"
477
477
  }
478
478
  },
479
479
  {
@@ -488,7 +488,7 @@
488
488
  ]
489
489
  },
490
490
  "then": {
491
- "$ref": "#/definitions/__schema750"
491
+ "$ref": "#/definitions/__schema756"
492
492
  }
493
493
  },
494
494
  {
@@ -503,7 +503,7 @@
503
503
  ]
504
504
  },
505
505
  "then": {
506
- "$ref": "#/definitions/__schema756"
506
+ "$ref": "#/definitions/__schema762"
507
507
  }
508
508
  },
509
509
  {
@@ -518,7 +518,7 @@
518
518
  ]
519
519
  },
520
520
  "then": {
521
- "$ref": "#/definitions/__schema760"
521
+ "$ref": "#/definitions/__schema766"
522
522
  }
523
523
  },
524
524
  {
@@ -533,7 +533,7 @@
533
533
  ]
534
534
  },
535
535
  "then": {
536
- "$ref": "#/definitions/__schema769"
536
+ "$ref": "#/definitions/__schema775"
537
537
  }
538
538
  },
539
539
  {
@@ -548,7 +548,7 @@
548
548
  ]
549
549
  },
550
550
  "then": {
551
- "$ref": "#/definitions/__schema783"
551
+ "$ref": "#/definitions/__schema789"
552
552
  }
553
553
  },
554
554
  {
@@ -563,7 +563,7 @@
563
563
  ]
564
564
  },
565
565
  "then": {
566
- "$ref": "#/definitions/__schema790"
566
+ "$ref": "#/definitions/__schema796"
567
567
  }
568
568
  },
569
569
  {
@@ -578,7 +578,7 @@
578
578
  ]
579
579
  },
580
580
  "then": {
581
- "$ref": "#/definitions/__schema804"
581
+ "$ref": "#/definitions/__schema815"
582
582
  }
583
583
  },
584
584
  {
@@ -593,7 +593,7 @@
593
593
  ]
594
594
  },
595
595
  "then": {
596
- "$ref": "#/definitions/__schema816"
596
+ "$ref": "#/definitions/__schema827"
597
597
  }
598
598
  }
599
599
  ]
@@ -7617,15 +7617,69 @@
7617
7617
  "const": "shadowsocks"
7618
7618
  },
7619
7619
  "__schema597": {
7620
- "oneOf": [
7620
+ "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n",
7621
+ "properties": {
7622
+ "method": {
7623
+ "enum": [
7624
+ "2022-blake3-aes-128-gcm",
7625
+ "2022-blake3-aes-256-gcm",
7626
+ "2022-blake3-chacha20-poly1305",
7627
+ "aes-256-gcm",
7628
+ "aes-128-gcm",
7629
+ "chacha20-poly1305",
7630
+ "chacha20-ietf-poly1305",
7631
+ "xchacha20-poly1305",
7632
+ "xchacha20-ietf-poly1305",
7633
+ "none",
7634
+ ""
7635
+ ]
7636
+ }
7637
+ },
7638
+ "allOf": [
7621
7639
  {
7622
- "$ref": "#/definitions/__schema598"
7640
+ "if": {
7641
+ "properties": {
7642
+ "method": {
7643
+ "enum": [
7644
+ "2022-blake3-aes-128-gcm",
7645
+ "2022-blake3-aes-256-gcm",
7646
+ "2022-blake3-chacha20-poly1305"
7647
+ ]
7648
+ }
7649
+ },
7650
+ "required": [
7651
+ "method"
7652
+ ]
7653
+ },
7654
+ "then": {
7655
+ "$ref": "#/definitions/__schema598"
7656
+ }
7623
7657
  },
7624
7658
  {
7625
- "$ref": "#/definitions/__schema608"
7659
+ "if": {
7660
+ "properties": {
7661
+ "method": {
7662
+ "enum": [
7663
+ "aes-256-gcm",
7664
+ "aes-128-gcm",
7665
+ "chacha20-poly1305",
7666
+ "chacha20-ietf-poly1305",
7667
+ "xchacha20-poly1305",
7668
+ "xchacha20-ietf-poly1305",
7669
+ "none",
7670
+ ""
7671
+ ]
7672
+ }
7673
+ },
7674
+ "required": [
7675
+ "method"
7676
+ ]
7677
+ },
7678
+ "then": {
7679
+ "$ref": "#/definitions/__schema611"
7680
+ }
7626
7681
  }
7627
- ],
7628
- "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
7682
+ ]
7629
7683
  },
7630
7684
  "__schema598": {
7631
7685
  "type": "object",
@@ -7648,17 +7702,15 @@
7648
7702
  "markdownDescription": "Encryption method. See the recommended and supported options in the protocol description above.\n",
7649
7703
  "allOf": [
7650
7704
  {
7651
- "$ref": "#/definitions/__schema604"
7705
+ "$ref": "#/definitions/__schema606"
7652
7706
  }
7653
7707
  ]
7654
7708
  },
7655
7709
  "users": {
7656
- "markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
7657
- "allOf": [
7658
- {
7659
- "$ref": "#/definitions/__schema605"
7660
- }
7661
- ]
7710
+ "$ref": "#/definitions/__schema607"
7711
+ },
7712
+ "clients": {
7713
+ "$ref": "#/definitions/__schema607"
7662
7714
  }
7663
7715
  },
7664
7716
  "required": [
@@ -7704,13 +7756,39 @@
7704
7756
  },
7705
7757
  "__schema604": {
7706
7758
  "type": "string",
7707
- "enum": [
7708
- "2022-blake3-aes-128-gcm",
7709
- "2022-blake3-aes-256-gcm",
7710
- "2022-blake3-chacha20-poly1305"
7711
- ]
7759
+ "const": "2022-blake3-aes-128-gcm"
7712
7760
  },
7713
7761
  "__schema605": {
7762
+ "anyOf": [
7763
+ {
7764
+ "type": "string",
7765
+ "const": "2022-blake3-aes-256-gcm"
7766
+ },
7767
+ {
7768
+ "type": "string",
7769
+ "const": "2022-blake3-chacha20-poly1305"
7770
+ }
7771
+ ]
7772
+ },
7773
+ "__schema606": {
7774
+ "anyOf": [
7775
+ {
7776
+ "$ref": "#/definitions/__schema604"
7777
+ },
7778
+ {
7779
+ "$ref": "#/definitions/__schema605"
7780
+ }
7781
+ ]
7782
+ },
7783
+ "__schema607": {
7784
+ "markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
7785
+ "allOf": [
7786
+ {
7787
+ "$ref": "#/definitions/__schema608"
7788
+ }
7789
+ ]
7790
+ },
7791
+ "__schema608": {
7714
7792
  "type": "array",
7715
7793
  "items": {
7716
7794
  "type": "object",
@@ -7719,7 +7797,7 @@
7719
7797
  "markdownDescription": "Note that SS2022 does not ignore the upper-level `password` like the old SS did. The correct password format for the client should be `ServerPassword:UserPassword`. For example: `\"password\": \"114514:1919810\"`.\n",
7720
7798
  "allOf": [
7721
7799
  {
7722
- "$ref": "#/definitions/__schema606"
7800
+ "$ref": "#/definitions/__schema609"
7723
7801
  }
7724
7802
  ]
7725
7803
  },
@@ -7727,7 +7805,7 @@
7727
7805
  "markdownDescription": "Same meaning as `level` in `InboundConfigurationObject`.\n",
7728
7806
  "allOf": [
7729
7807
  {
7730
- "$ref": "#/definitions/__schema607"
7808
+ "$ref": "#/definitions/__schema610"
7731
7809
  }
7732
7810
  ]
7733
7811
  },
@@ -7743,14 +7821,14 @@
7743
7821
  "additionalProperties": false
7744
7822
  }
7745
7823
  },
7746
- "__schema606": {
7824
+ "__schema609": {
7747
7825
  "type": "string"
7748
7826
  },
7749
- "__schema607": {
7827
+ "__schema610": {
7750
7828
  "default": 0,
7751
7829
  "type": "number"
7752
7830
  },
7753
- "__schema608": {
7831
+ "__schema611": {
7754
7832
  "type": "object",
7755
7833
  "properties": {
7756
7834
  "network": {
@@ -7771,17 +7849,15 @@
7771
7849
  "markdownDescription": "Encryption method. See the recommended and supported options in the protocol description above.\n",
7772
7850
  "allOf": [
7773
7851
  {
7774
- "$ref": "#/definitions/__schema609"
7852
+ "$ref": "#/definitions/__schema614"
7775
7853
  }
7776
7854
  ]
7777
7855
  },
7778
7856
  "users": {
7779
- "markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
7780
- "allOf": [
7781
- {
7782
- "$ref": "#/definitions/__schema610"
7783
- }
7784
- ]
7857
+ "$ref": "#/definitions/__schema615"
7858
+ },
7859
+ "clients": {
7860
+ "$ref": "#/definitions/__schema615"
7785
7861
  }
7786
7862
  },
7787
7863
  "required": [
@@ -7789,20 +7865,81 @@
7789
7865
  ],
7790
7866
  "additionalProperties": false
7791
7867
  },
7792
- "__schema609": {
7868
+ "__schema612": {
7793
7869
  "type": "string",
7794
- "enum": [
7795
- "aes-256-gcm",
7796
- "aes-128-gcm",
7797
- "chacha20-poly1305",
7798
- "chacha20-ietf-poly1305",
7799
- "xchacha20-poly1305",
7800
- "xchacha20-ietf-poly1305",
7801
- "none",
7802
- ""
7870
+ "const": "aes-256-gcm"
7871
+ },
7872
+ "__schema613": {
7873
+ "anyOf": [
7874
+ {
7875
+ "type": "string",
7876
+ "const": "aes-128-gcm"
7877
+ },
7878
+ {
7879
+ "anyOf": [
7880
+ {
7881
+ "type": "string",
7882
+ "const": "chacha20-poly1305"
7883
+ },
7884
+ {
7885
+ "anyOf": [
7886
+ {
7887
+ "type": "string",
7888
+ "const": "chacha20-ietf-poly1305"
7889
+ },
7890
+ {
7891
+ "anyOf": [
7892
+ {
7893
+ "type": "string",
7894
+ "const": "xchacha20-poly1305"
7895
+ },
7896
+ {
7897
+ "anyOf": [
7898
+ {
7899
+ "type": "string",
7900
+ "const": "xchacha20-ietf-poly1305"
7901
+ },
7902
+ {
7903
+ "anyOf": [
7904
+ {
7905
+ "type": "string",
7906
+ "const": "none"
7907
+ },
7908
+ {
7909
+ "type": "string",
7910
+ "const": ""
7911
+ }
7912
+ ]
7913
+ }
7914
+ ]
7915
+ }
7916
+ ]
7917
+ }
7918
+ ]
7919
+ }
7920
+ ]
7921
+ }
7803
7922
  ]
7804
7923
  },
7805
- "__schema610": {
7924
+ "__schema614": {
7925
+ "anyOf": [
7926
+ {
7927
+ "$ref": "#/definitions/__schema612"
7928
+ },
7929
+ {
7930
+ "$ref": "#/definitions/__schema613"
7931
+ }
7932
+ ]
7933
+ },
7934
+ "__schema615": {
7935
+ "markdownDescription": "An array representing a group of users recognized by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/shadowsocks.html#userobject).\n\nWhen this option exists, it indicates that multi-user mode is enabled.\n",
7936
+ "allOf": [
7937
+ {
7938
+ "$ref": "#/definitions/__schema616"
7939
+ }
7940
+ ]
7941
+ },
7942
+ "__schema616": {
7806
7943
  "type": "array",
7807
7944
  "items": {
7808
7945
  "type": "object",
@@ -7811,7 +7948,7 @@
7811
7948
  "markdownDescription": "Note that SS2022 does not ignore the upper-level `password` like the old SS did. The correct password format for the client should be `ServerPassword:UserPassword`. For example: `\"password\": \"114514:1919810\"`.\n",
7812
7949
  "allOf": [
7813
7950
  {
7814
- "$ref": "#/definitions/__schema611"
7951
+ "$ref": "#/definitions/__schema617"
7815
7952
  }
7816
7953
  ]
7817
7954
  },
@@ -7819,7 +7956,7 @@
7819
7956
  "markdownDescription": "Same meaning as `level` in `InboundConfigurationObject`.\n",
7820
7957
  "allOf": [
7821
7958
  {
7822
- "$ref": "#/definitions/__schema612"
7959
+ "$ref": "#/definitions/__schema618"
7823
7960
  }
7824
7961
  ]
7825
7962
  },
@@ -7832,7 +7969,7 @@
7832
7969
  "markdownDescription": "When the `method` in `InboundConfigurationObject` is not an SS2022 option, you can specify `method` for each user here (only non-SS2022 options are supported) together with `password`. In that case, the `password` set in `InboundConfigurationObject` will be ignored.\n\nWhen the `method` in `InboundConfigurationObject` is an SS2022 option, setting `method` for individual users is not supported; it is unified to the method specified in `InboundConfigurationObject`.\n",
7833
7970
  "allOf": [
7834
7971
  {
7835
- "$ref": "#/definitions/__schema609"
7972
+ "$ref": "#/definitions/__schema614"
7836
7973
  }
7837
7974
  ]
7838
7975
  }
@@ -7843,14 +7980,14 @@
7843
7980
  "additionalProperties": false
7844
7981
  }
7845
7982
  },
7846
- "__schema611": {
7983
+ "__schema617": {
7847
7984
  "type": "string"
7848
7985
  },
7849
- "__schema612": {
7986
+ "__schema618": {
7850
7987
  "default": 0,
7851
7988
  "type": "number"
7852
7989
  },
7853
- "__schema613": {
7990
+ "__schema619": {
7854
7991
  "type": "object",
7855
7992
  "properties": {
7856
7993
  "tag": {
@@ -7869,10 +8006,10 @@
7869
8006
  "$ref": "#/definitions/__schema552"
7870
8007
  },
7871
8008
  "protocol": {
7872
- "$ref": "#/definitions/__schema614"
8009
+ "$ref": "#/definitions/__schema620"
7873
8010
  },
7874
8011
  "settings": {
7875
- "$ref": "#/definitions/__schema615"
8012
+ "$ref": "#/definitions/__schema621"
7876
8013
  }
7877
8014
  },
7878
8015
  "required": [
@@ -7882,35 +8019,35 @@
7882
8019
  "additionalProperties": false,
7883
8020
  "markdownDescription": "VLESS is a stateless, lightweight transport protocol. It is divided into inbound and outbound parts and can serve as a bridge between Xray clients and servers.\n\nUnlike [VMess](https://xtls.github.io/en/config/inbounds/vmess.html), VLESS does not depend on system time. The authentication method is also UUID.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/vless.html)\n"
7884
8021
  },
7885
- "__schema614": {
8022
+ "__schema620": {
7886
8023
  "type": "string",
7887
8024
  "const": "vless"
7888
8025
  },
7889
- "__schema615": {
8026
+ "__schema621": {
7890
8027
  "anyOf": [
7891
8028
  {
7892
- "$ref": "#/definitions/__schema616"
8029
+ "$ref": "#/definitions/__schema622"
7893
8030
  },
7894
8031
  {
7895
- "$ref": "#/definitions/__schema633"
8032
+ "$ref": "#/definitions/__schema639"
7896
8033
  }
7897
8034
  ],
7898
8035
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
7899
8036
  },
7900
- "__schema616": {
8037
+ "__schema622": {
7901
8038
  "type": "object",
7902
8039
  "properties": {
7903
8040
  "decryption": {
7904
- "$ref": "#/definitions/__schema617"
8041
+ "$ref": "#/definitions/__schema623"
7905
8042
  },
7906
8043
  "fallbacks": {
7907
- "$ref": "#/definitions/__schema620"
8044
+ "$ref": "#/definitions/__schema626"
7908
8045
  },
7909
8046
  "users": {
7910
8047
  "markdownDescription": "An array representing a group of users approved by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/vless.html#userobject).\n",
7911
8048
  "allOf": [
7912
8049
  {
7913
- "$ref": "#/definitions/__schema622"
8050
+ "$ref": "#/definitions/__schema628"
7914
8051
  }
7915
8052
  ]
7916
8053
  }
@@ -7920,33 +8057,33 @@
7920
8057
  ],
7921
8058
  "additionalProperties": false
7922
8059
  },
7923
- "__schema617": {
8060
+ "__schema623": {
7924
8061
  "anyOf": [
7925
8062
  {
7926
- "$ref": "#/definitions/__schema618"
8063
+ "$ref": "#/definitions/__schema624"
7927
8064
  },
7928
8065
  {
7929
- "$ref": "#/definitions/__schema619"
8066
+ "$ref": "#/definitions/__schema625"
7930
8067
  }
7931
8068
  ],
7932
8069
  "markdownDescription": "VLESS Encryption settings. Cannot be left empty; to disable, explicitly set it to `\"none\"`.\n\nIt is recommended for most users to use the `xray vlessenc` command to automatically generate this field to avoid configuration mistakes. The detailed configuration below is recommended for advanced users only.\n\nDetailed configuration format is a string of blocks connected by dots, for example:\n\n`mlkem768x25519plus.native.600s.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`\n\nThis document refers to the individual parts separated by dots as blocks.\n\n- The 1st block is the handshake method. Currently, there is only `mlkem768x25519plus`. Requires the server and client to match.\n- The 2nd block is the encryption method. Options are `native`/`xorpub`/`random`, corresponding to: raw format packets / raw format + obfuscated public key part / full random numbers (similar to VMess/Shadowsocks). Requires the server and client to match.\n- The 3rd block is the session resumption ticket validity time. Format is `600s` or `100-500s`. The former will pick a random time between that duration and half of that duration (e.g., `600s` = `300-600s`); the latter manually specifies a random range.\n\nFollowing this is padding. After the connection is established, the server sends garbage data to obfuscate length characteristics. This does not need to be the same as the client (the same part in the outbound is the padding sent from the client to the server). It is a variable-length part, formatted as `padding.delay.padding` + `(.delay.padding)*n`. Multiple paddings can be inserted, requiring a delay block between two padding blocks.\n\n- The `padding` format is `probability-min-max`, e.g., `100-111-1111` means 100% probability of sending a padding with a length of 111~1111.\n- The `delay` format is also `probability-min-max`, e.g., `75-0-111` means 75% probability of waiting for 0~111 milliseconds.\n\nThe first padding block has special requirements: it requires 100% probability and a minimum length greater than 0. If no padding exists, the core automatically uses `100-111-1111.75-0-111.50-0-3333` as the padding setting.\n\nThe last block is identified by the core as the parameter used to authenticate the client. It can be generated using `./xray x25519` (using the PrivateKey part) or `./xray mlkem768` (using the Seed part). It must correspond to the client. `mlkem768` is a post-quantum algorithm that prevents the private key from being cracked by quantum computers (in the future) to impersonate the server if client parameters are leaked. This parameter is only used for verification; the handshake process is post-quantum secure regardless, and existing encrypted data cannot be cracked by future quantum computers.\n"
7933
8070
  },
7934
- "__schema618": {
8071
+ "__schema624": {
7935
8072
  "type": "string",
7936
8073
  "const": "none"
7937
8074
  },
7938
- "__schema619": {
8075
+ "__schema625": {
7939
8076
  "type": "string"
7940
8077
  },
7941
- "__schema620": {
8078
+ "__schema626": {
7942
8079
  "markdownDescription": "An array containing a series of powerful fallback distribution configurations (optional). For specific fallback configurations, see [FallbackObject](https://xtls.github.io/en/config/features/fallback.html#fallbacks-configuration).\n",
7943
8080
  "allOf": [
7944
8081
  {
7945
- "$ref": "#/definitions/__schema621"
8082
+ "$ref": "#/definitions/__schema627"
7946
8083
  }
7947
8084
  ]
7948
8085
  },
7949
- "__schema621": {
8086
+ "__schema627": {
7950
8087
  "type": "array",
7951
8088
  "items": {
7952
8089
  "type": "object",
@@ -7981,26 +8118,26 @@
7981
8118
  "additionalProperties": false
7982
8119
  }
7983
8120
  },
7984
- "__schema622": {
8121
+ "__schema628": {
7985
8122
  "default": [],
7986
8123
  "type": "array",
7987
8124
  "items": {
7988
8125
  "type": "object",
7989
8126
  "properties": {
7990
8127
  "id": {
7991
- "$ref": "#/definitions/__schema623"
8128
+ "$ref": "#/definitions/__schema629"
7992
8129
  },
7993
8130
  "level": {
7994
- "$ref": "#/definitions/__schema624"
8131
+ "$ref": "#/definitions/__schema630"
7995
8132
  },
7996
8133
  "email": {
7997
- "$ref": "#/definitions/__schema626"
8134
+ "$ref": "#/definitions/__schema632"
7998
8135
  },
7999
8136
  "flow": {
8000
- "$ref": "#/definitions/__schema628"
8137
+ "$ref": "#/definitions/__schema634"
8001
8138
  },
8002
8139
  "reverse": {
8003
- "$ref": "#/definitions/__schema630"
8140
+ "$ref": "#/definitions/__schema636"
8004
8141
  }
8005
8142
  },
8006
8143
  "required": [
@@ -8009,43 +8146,43 @@
8009
8146
  "additionalProperties": {}
8010
8147
  }
8011
8148
  },
8012
- "__schema623": {
8149
+ "__schema629": {
8013
8150
  "type": "string",
8014
8151
  "minLength": 1,
8015
8152
  "markdownDescription": "The user ID for VLESS. It can be any string less than 30 bytes or a valid UUID. A custom string and its mapped UUID are equivalent.\n\nMapping standard: [VLESS UUID Mapping Standard: Mapping Custom Strings to a UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nUse `xray uuid -i \"custom string\"` to generate the mapped UUID, or `xray uuid` to generate a random UUID.\n"
8016
8153
  },
8017
- "__schema624": {
8154
+ "__schema630": {
8018
8155
  "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
8019
8156
  "allOf": [
8020
8157
  {
8021
- "$ref": "#/definitions/__schema625"
8158
+ "$ref": "#/definitions/__schema631"
8022
8159
  }
8023
8160
  ]
8024
8161
  },
8025
- "__schema625": {
8162
+ "__schema631": {
8026
8163
  "default": 0,
8027
8164
  "type": "number"
8028
8165
  },
8029
- "__schema626": {
8166
+ "__schema632": {
8030
8167
  "markdownDescription": "User email, used to distinguish traffic from different users (reflected in logs and statistics).\n",
8031
8168
  "allOf": [
8032
8169
  {
8033
- "$ref": "#/definitions/__schema627"
8170
+ "$ref": "#/definitions/__schema633"
8034
8171
  }
8035
8172
  ]
8036
8173
  },
8037
- "__schema627": {
8174
+ "__schema633": {
8038
8175
  "type": "string"
8039
8176
  },
8040
- "__schema628": {
8177
+ "__schema634": {
8041
8178
  "markdownDescription": "Flow control mode, used to select the XTLS algorithm.\n\nAvailable inbound flow control modes:\n\n- Empty string: use standard TLS proxy.\n- `xtls-rprx-vision`: use the new XTLS mode, including inner handshake random padding.\n\nXTLS is only available under the following combinations:\n\n- TCP+TLS/REALITY: In this case, if transmitting TLS 1.3, the core will attempt to Splice encrypted data at the bottom layer. If successful, it saves all core IO overhead.\n- VLESS Encryption: no underlying transport restrictions. If the underlying layer does not support direct copying (see above), it only penetrates Encryption.\n",
8042
8179
  "allOf": [
8043
8180
  {
8044
- "$ref": "#/definitions/__schema629"
8181
+ "$ref": "#/definitions/__schema635"
8045
8182
  }
8046
8183
  ]
8047
8184
  },
8048
- "__schema629": {
8185
+ "__schema635": {
8049
8186
  "default": "",
8050
8187
  "type": "string",
8051
8188
  "enum": [
@@ -8053,15 +8190,15 @@
8053
8190
  "xtls-rprx-vision"
8054
8191
  ]
8055
8192
  },
8056
- "__schema630": {
8193
+ "__schema636": {
8057
8194
  "markdownDescription": "VLESS simplified reverse proxy configuration.\n\nThe presence of this item indicates that connections from this user can be used to establish a reverse proxy tunnel, while disabling normal forward proxy usage.\n\n### TIP\n\nFull tutorial: [VLESS Reverse Proxy Examples](https://xtls.github.io/en/document/level-2/vless_reverse.html)\n",
8058
8195
  "allOf": [
8059
8196
  {
8060
- "$ref": "#/definitions/__schema631"
8197
+ "$ref": "#/definitions/__schema637"
8061
8198
  }
8062
8199
  ]
8063
8200
  },
8064
- "__schema631": {
8201
+ "__schema637": {
8065
8202
  "default": {},
8066
8203
  "type": "object",
8067
8204
  "properties": {
@@ -8069,31 +8206,31 @@
8069
8206
  "markdownDescription": "`tag` is the outbound proxy tag for this reverse proxy. Routing traffic to this outbound using routing rules will forward it through the reverse proxy to the connected client's routing system (see VLESS outbound for client configuration details).\n\nWhen multiple different connections (potentially from different devices) are connected, the core randomly selects one to dispatch reverse proxy data for each request.\n",
8070
8207
  "allOf": [
8071
8208
  {
8072
- "$ref": "#/definitions/__schema632"
8209
+ "$ref": "#/definitions/__schema638"
8073
8210
  }
8074
8211
  ]
8075
8212
  }
8076
8213
  },
8077
8214
  "additionalProperties": false
8078
8215
  },
8079
- "__schema632": {
8216
+ "__schema638": {
8080
8217
  "type": "string",
8081
8218
  "minLength": 1
8082
8219
  },
8083
- "__schema633": {
8220
+ "__schema639": {
8084
8221
  "type": "object",
8085
8222
  "properties": {
8086
8223
  "decryption": {
8087
- "$ref": "#/definitions/__schema617"
8224
+ "$ref": "#/definitions/__schema623"
8088
8225
  },
8089
8226
  "fallbacks": {
8090
- "$ref": "#/definitions/__schema620"
8227
+ "$ref": "#/definitions/__schema626"
8091
8228
  },
8092
8229
  "clients": {
8093
8230
  "markdownDescription": "An array representing a group of users approved by the server. Each item is a [UserObject](https://xtls.github.io/en/config/inbounds/vless.html#userobject).\n",
8094
8231
  "allOf": [
8095
8232
  {
8096
- "$ref": "#/definitions/__schema634"
8233
+ "$ref": "#/definitions/__schema640"
8097
8234
  }
8098
8235
  ]
8099
8236
  }
@@ -8103,26 +8240,26 @@
8103
8240
  ],
8104
8241
  "additionalProperties": false
8105
8242
  },
8106
- "__schema634": {
8243
+ "__schema640": {
8107
8244
  "default": [],
8108
8245
  "type": "array",
8109
8246
  "items": {
8110
8247
  "type": "object",
8111
8248
  "properties": {
8112
8249
  "id": {
8113
- "$ref": "#/definitions/__schema623"
8250
+ "$ref": "#/definitions/__schema629"
8114
8251
  },
8115
8252
  "level": {
8116
- "$ref": "#/definitions/__schema624"
8253
+ "$ref": "#/definitions/__schema630"
8117
8254
  },
8118
8255
  "email": {
8119
- "$ref": "#/definitions/__schema626"
8256
+ "$ref": "#/definitions/__schema632"
8120
8257
  },
8121
8258
  "flow": {
8122
- "$ref": "#/definitions/__schema628"
8259
+ "$ref": "#/definitions/__schema634"
8123
8260
  },
8124
8261
  "reverse": {
8125
- "$ref": "#/definitions/__schema630"
8262
+ "$ref": "#/definitions/__schema636"
8126
8263
  }
8127
8264
  },
8128
8265
  "required": [
@@ -8131,7 +8268,7 @@
8131
8268
  "additionalProperties": {}
8132
8269
  }
8133
8270
  },
8134
- "__schema635": {
8271
+ "__schema641": {
8135
8272
  "type": "object",
8136
8273
  "properties": {
8137
8274
  "tag": {
@@ -8150,10 +8287,10 @@
8150
8287
  "$ref": "#/definitions/__schema552"
8151
8288
  },
8152
8289
  "protocol": {
8153
- "$ref": "#/definitions/__schema636"
8290
+ "$ref": "#/definitions/__schema642"
8154
8291
  },
8155
8292
  "settings": {
8156
- "$ref": "#/definitions/__schema637"
8293
+ "$ref": "#/definitions/__schema643"
8157
8294
  }
8158
8295
  },
8159
8296
  "required": [
@@ -8163,47 +8300,47 @@
8163
8300
  "additionalProperties": false,
8164
8301
  "markdownDescription": "[VMess](https://xtls.github.io/en/development/protocols/vmess.html) is an encrypted transport protocol, commonly acting as a bridge between the Xray client and server.\n\n### DANGER\n\nVMess depends on system time. Please ensure that the system UTC time of the device running Xray is within 120 seconds of the actual time, regardless of the time zone. On Linux systems, you can install the `ntp` service to automatically synchronize system time.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/vmess.html)\n"
8165
8302
  },
8166
- "__schema636": {
8303
+ "__schema642": {
8167
8304
  "type": "string",
8168
8305
  "const": "vmess"
8169
8306
  },
8170
- "__schema637": {
8307
+ "__schema643": {
8171
8308
  "anyOf": [
8172
8309
  {
8173
- "$ref": "#/definitions/__schema638"
8310
+ "$ref": "#/definitions/__schema644"
8174
8311
  },
8175
8312
  {
8176
- "$ref": "#/definitions/__schema645"
8313
+ "$ref": "#/definitions/__schema651"
8177
8314
  }
8178
8315
  ],
8179
8316
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
8180
8317
  },
8181
- "__schema638": {
8318
+ "__schema644": {
8182
8319
  "type": "object",
8183
8320
  "properties": {
8184
8321
  "default": {
8185
- "$ref": "#/definitions/__schema639"
8322
+ "$ref": "#/definitions/__schema645"
8186
8323
  },
8187
8324
  "clients": {
8188
8325
  "markdownDescription": "An array representing a group of users accepted by the server. Each item is a UserObject.\n\nWhen this configuration is used for dynamic ports, Xray will automatically create users.\n",
8189
8326
  "allOf": [
8190
8327
  {
8191
- "$ref": "#/definitions/__schema641"
8328
+ "$ref": "#/definitions/__schema647"
8192
8329
  }
8193
8330
  ]
8194
8331
  }
8195
8332
  },
8196
8333
  "additionalProperties": false
8197
8334
  },
8198
- "__schema639": {
8335
+ "__schema645": {
8199
8336
  "markdownDescription": "Optional. Default configuration for `users`. Only valid when used in conjunction with `detour`.\n",
8200
8337
  "allOf": [
8201
8338
  {
8202
- "$ref": "#/definitions/__schema640"
8339
+ "$ref": "#/definitions/__schema646"
8203
8340
  }
8204
8341
  ]
8205
8342
  },
8206
- "__schema640": {
8343
+ "__schema646": {
8207
8344
  "type": "object",
8208
8345
  "properties": {
8209
8346
  "level": {
@@ -8216,14 +8353,14 @@
8216
8353
  ],
8217
8354
  "additionalProperties": false
8218
8355
  },
8219
- "__schema641": {
8356
+ "__schema647": {
8220
8357
  "default": [],
8221
8358
  "type": "array",
8222
8359
  "items": {
8223
- "$ref": "#/definitions/__schema642"
8360
+ "$ref": "#/definitions/__schema648"
8224
8361
  }
8225
8362
  },
8226
- "__schema642": {
8363
+ "__schema648": {
8227
8364
  "type": "object",
8228
8365
  "properties": {
8229
8366
  "id": {
@@ -8235,7 +8372,7 @@
8235
8372
  "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
8236
8373
  "allOf": [
8237
8374
  {
8238
- "$ref": "#/definitions/__schema643"
8375
+ "$ref": "#/definitions/__schema649"
8239
8376
  }
8240
8377
  ]
8241
8378
  },
@@ -8243,7 +8380,7 @@
8243
8380
  "markdownDescription": "User email address, used to distinguish traffic from different users.\n",
8244
8381
  "allOf": [
8245
8382
  {
8246
- "$ref": "#/definitions/__schema644"
8383
+ "$ref": "#/definitions/__schema650"
8247
8384
  }
8248
8385
  ]
8249
8386
  }
@@ -8253,37 +8390,37 @@
8253
8390
  ],
8254
8391
  "additionalProperties": false
8255
8392
  },
8256
- "__schema643": {
8393
+ "__schema649": {
8257
8394
  "type": "number"
8258
8395
  },
8259
- "__schema644": {
8396
+ "__schema650": {
8260
8397
  "type": "string"
8261
8398
  },
8262
- "__schema645": {
8399
+ "__schema651": {
8263
8400
  "type": "object",
8264
8401
  "properties": {
8265
8402
  "default": {
8266
- "$ref": "#/definitions/__schema639"
8403
+ "$ref": "#/definitions/__schema645"
8267
8404
  },
8268
8405
  "users": {
8269
8406
  "markdownDescription": "An array representing a group of users accepted by the server. Each item is a UserObject.\n\nWhen this configuration is used for dynamic ports, Xray will automatically create users.\n",
8270
8407
  "allOf": [
8271
8408
  {
8272
- "$ref": "#/definitions/__schema646"
8409
+ "$ref": "#/definitions/__schema652"
8273
8410
  }
8274
8411
  ]
8275
8412
  }
8276
8413
  },
8277
8414
  "additionalProperties": false
8278
8415
  },
8279
- "__schema646": {
8416
+ "__schema652": {
8280
8417
  "default": [],
8281
8418
  "type": "array",
8282
8419
  "items": {
8283
- "$ref": "#/definitions/__schema642"
8420
+ "$ref": "#/definitions/__schema648"
8284
8421
  }
8285
8422
  },
8286
- "__schema647": {
8423
+ "__schema653": {
8287
8424
  "type": "object",
8288
8425
  "properties": {
8289
8426
  "tag": {
@@ -8302,10 +8439,10 @@
8302
8439
  "$ref": "#/definitions/__schema552"
8303
8440
  },
8304
8441
  "protocol": {
8305
- "$ref": "#/definitions/__schema648"
8442
+ "$ref": "#/definitions/__schema654"
8306
8443
  },
8307
8444
  "settings": {
8308
- "$ref": "#/definitions/__schema649"
8445
+ "$ref": "#/definitions/__schema655"
8309
8446
  }
8310
8447
  },
8311
8448
  "required": [
@@ -8315,21 +8452,21 @@
8315
8452
  "additionalProperties": false,
8316
8453
  "markdownDescription": "User-space WireGuard protocol implementation.\n\n### DANGER\n\n**The WireGuard protocol is not designed specifically for bypassing firewalls. If used as the outer layer to cross the firewall, its distinct characteristics may lead to the server being blocked.**\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/wireguard.html)\n"
8317
8454
  },
8318
- "__schema648": {
8455
+ "__schema654": {
8319
8456
  "type": "string",
8320
8457
  "const": "wireguard"
8321
8458
  },
8322
- "__schema649": {
8459
+ "__schema655": {
8323
8460
  "type": "object",
8324
8461
  "properties": {
8325
8462
  "secretKey": {
8326
- "$ref": "#/definitions/__schema650"
8463
+ "$ref": "#/definitions/__schema656"
8327
8464
  },
8328
8465
  "peers": {
8329
- "$ref": "#/definitions/__schema651"
8466
+ "$ref": "#/definitions/__schema657"
8330
8467
  },
8331
8468
  "mtu": {
8332
- "$ref": "#/definitions/__schema654"
8469
+ "$ref": "#/definitions/__schema660"
8333
8470
  }
8334
8471
  },
8335
8472
  "required": [
@@ -8338,19 +8475,19 @@
8338
8475
  "additionalProperties": false,
8339
8476
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
8340
8477
  },
8341
- "__schema650": {
8478
+ "__schema656": {
8342
8479
  "type": "string",
8343
8480
  "markdownDescription": "Private key. Required.\n"
8344
8481
  },
8345
- "__schema651": {
8482
+ "__schema657": {
8346
8483
  "markdownDescription": "List of peers, where each item is a peer configuration.\n",
8347
8484
  "allOf": [
8348
8485
  {
8349
- "$ref": "#/definitions/__schema652"
8486
+ "$ref": "#/definitions/__schema658"
8350
8487
  }
8351
8488
  ]
8352
8489
  },
8353
- "__schema652": {
8490
+ "__schema658": {
8354
8491
  "default": [],
8355
8492
  "type": "array",
8356
8493
  "items": {
@@ -8364,7 +8501,7 @@
8364
8501
  "allowedIPs": {
8365
8502
  "type": "array",
8366
8503
  "items": {
8367
- "$ref": "#/definitions/__schema653"
8504
+ "$ref": "#/definitions/__schema659"
8368
8505
  },
8369
8506
  "markdownDescription": "Allowed source IPs.\n"
8370
8507
  }
@@ -8376,23 +8513,23 @@
8376
8513
  "additionalProperties": false
8377
8514
  }
8378
8515
  },
8379
- "__schema653": {
8516
+ "__schema659": {
8380
8517
  "type": "string",
8381
8518
  "minLength": 1
8382
8519
  },
8383
- "__schema654": {
8520
+ "__schema660": {
8384
8521
  "markdownDescription": "The MTU size of the underlying WireGuard TUN.\n\nMethod to Calculate MTU\n\n- 20-byte IPv4 header or 40 byte IPv6 header\n- 8-byte UDP header\n- 4-byte type\n- 4-byte key index\n- 8-byte nonce\n- N-byte encrypted data\n- 16-byte authentication tag\n\n`N-byte encrypted data` is the MTU value needed. Depending on whether the endpoint is IPv4 or IPv6, the specific value can be 1440 (IPv4) or 1420 (IPv6). If you are in a special network environment, you may need to subtract more (e.g., home broadband PPPoE requires an extra -8).\n",
8385
8522
  "allOf": [
8386
8523
  {
8387
- "$ref": "#/definitions/__schema655"
8524
+ "$ref": "#/definitions/__schema661"
8388
8525
  }
8389
8526
  ]
8390
8527
  },
8391
- "__schema655": {
8528
+ "__schema661": {
8392
8529
  "default": 1420,
8393
8530
  "type": "number"
8394
8531
  },
8395
- "__schema656": {
8532
+ "__schema662": {
8396
8533
  "type": "object",
8397
8534
  "properties": {
8398
8535
  "tag": {
@@ -8411,10 +8548,10 @@
8411
8548
  "$ref": "#/definitions/__schema552"
8412
8549
  },
8413
8550
  "protocol": {
8414
- "$ref": "#/definitions/__schema657"
8551
+ "$ref": "#/definitions/__schema663"
8415
8552
  },
8416
8553
  "settings": {
8417
- "$ref": "#/definitions/__schema658"
8554
+ "$ref": "#/definitions/__schema664"
8418
8555
  }
8419
8556
  },
8420
8557
  "required": [
@@ -8424,32 +8561,32 @@
8424
8561
  "additionalProperties": false,
8425
8562
  "markdownDescription": "[Trojan](https://trojan-gfw.github.io/trojan/protocol) protocol.\n\n### DANGER\n\nTrojan is designed to work over correctly configured encrypted TLS tunnels.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/trojan.html)\n"
8426
8563
  },
8427
- "__schema657": {
8564
+ "__schema663": {
8428
8565
  "type": "string",
8429
8566
  "const": "trojan"
8430
8567
  },
8431
- "__schema658": {
8568
+ "__schema664": {
8432
8569
  "type": "object",
8433
8570
  "properties": {
8434
8571
  "users": {
8435
- "$ref": "#/definitions/__schema659"
8572
+ "$ref": "#/definitions/__schema665"
8436
8573
  },
8437
8574
  "fallbacks": {
8438
- "$ref": "#/definitions/__schema662"
8575
+ "$ref": "#/definitions/__schema668"
8439
8576
  }
8440
8577
  },
8441
8578
  "additionalProperties": false,
8442
8579
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
8443
8580
  },
8444
- "__schema659": {
8581
+ "__schema665": {
8445
8582
  "markdownDescription": "An array representing a group of users accepted by the server. Each item is a [UserObjects](https://xtls.github.io/en/config/inbounds/trojan.html#userobject).\n",
8446
8583
  "allOf": [
8447
8584
  {
8448
- "$ref": "#/definitions/__schema660"
8585
+ "$ref": "#/definitions/__schema666"
8449
8586
  }
8450
8587
  ]
8451
8588
  },
8452
- "__schema660": {
8589
+ "__schema666": {
8453
8590
  "default": [],
8454
8591
  "type": "array",
8455
8592
  "items": {
@@ -8469,7 +8606,7 @@
8469
8606
  "markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
8470
8607
  "allOf": [
8471
8608
  {
8472
- "$ref": "#/definitions/__schema661"
8609
+ "$ref": "#/definitions/__schema667"
8473
8610
  }
8474
8611
  ]
8475
8612
  }
@@ -8481,21 +8618,21 @@
8481
8618
  "additionalProperties": false
8482
8619
  }
8483
8620
  },
8484
- "__schema661": {
8621
+ "__schema667": {
8485
8622
  "default": 0,
8486
8623
  "type": "integer",
8487
8624
  "minimum": -9007199254740991,
8488
8625
  "maximum": 9007199254740991
8489
8626
  },
8490
- "__schema662": {
8627
+ "__schema668": {
8491
8628
  "markdownDescription": "An array containing a series of powerful fallback configurations (optional). For specific configuration of fallbacks, see [FallbackObject](https://xtls.github.io/en/config/features/fallback.html#fallbackobject).\n\n### TIP\n\nXray's Trojan has complete support for fallbacks, and the configuration method is exactly the same as VLESS. The conditions for triggering fallback are also similar to VLESS: the length of the first packet < 58, OR the 57th byte is not `\\r` (because Trojan has no protocol version), OR authentication fails.\n",
8492
8629
  "allOf": [
8493
8630
  {
8494
- "$ref": "#/definitions/__schema663"
8631
+ "$ref": "#/definitions/__schema669"
8495
8632
  }
8496
8633
  ]
8497
8634
  },
8498
- "__schema663": {
8635
+ "__schema669": {
8499
8636
  "type": "array",
8500
8637
  "items": {
8501
8638
  "type": "object",
@@ -8530,7 +8667,7 @@
8530
8667
  "additionalProperties": false
8531
8668
  }
8532
8669
  },
8533
- "__schema664": {
8670
+ "__schema670": {
8534
8671
  "type": "object",
8535
8672
  "properties": {
8536
8673
  "tag": {
@@ -8549,10 +8686,10 @@
8549
8686
  "$ref": "#/definitions/__schema552"
8550
8687
  },
8551
8688
  "protocol": {
8552
- "$ref": "#/definitions/__schema665"
8689
+ "$ref": "#/definitions/__schema671"
8553
8690
  },
8554
8691
  "settings": {
8555
- "$ref": "#/definitions/__schema666"
8692
+ "$ref": "#/definitions/__schema672"
8556
8693
  }
8557
8694
  },
8558
8695
  "required": [
@@ -8562,33 +8699,33 @@
8562
8699
  "additionalProperties": false,
8563
8700
  "markdownDescription": "Creates a TUN interface; traffic sent to this interface will be processed by Xray. Currently, Windows, Linux, macOS, and FreeBSD are supported.\n\nOn Android, the TUN FD must be passed in from an external app, which uses VPN Service to redirect traffic. It cannot run standalone and only serves as a way for an app to feed traffic into Xray.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/tun.html)\n\n\n\n## Usage Tips\n\nIf `autoSystemRoutingTable` is not configured, you still need to add routes manually to direct traffic to the created TUN interface; otherwise, it remains just an interface.\n\nWhen `gateway`, `dns`, `autoSystemRoutingTable`, and `autoOutboundsInterface` are configured, Xray can perform part of the system-side setup automatically on supported platforms. If your platform does not implement these automatic settings yet, or if you need more fine-grained policy routing, you still need to configure the OS manually.\n\nIf you only want to proxy specific process(es), the process name routing in the Xray routing system will be very useful.\n\n### WARNING\n\nBe aware of potential traffic loop issues. After setting routes, requests initiated by Xray might be sent back to Xray, causing a loop. Prefer `autoOutboundsInterface` to avoid this problem. If you need manual control, you can still use `interface` in `sockopt` to bind to the actual physical network interface. `ipconfig` (Windows) or `ip a` (Linux) will help you find the interface name you need. Alternatively, use the outbound `sendThrough` setting. It is available directly in `OutboundObject` without the deep nesting level of `sockOpt.interface`. Here you need to use the IP address on the network card, such as 192.168.1.2 (As you can see, its disadvantage is that it cannot automatically support dual-stack; please choose according to the IP actually used for your outbound connection).\n"
8564
8701
  },
8565
- "__schema665": {
8702
+ "__schema671": {
8566
8703
  "type": "string",
8567
8704
  "const": "tun"
8568
8705
  },
8569
- "__schema666": {
8706
+ "__schema672": {
8570
8707
  "type": "object",
8571
8708
  "properties": {
8572
8709
  "name": {
8573
- "$ref": "#/definitions/__schema667"
8710
+ "$ref": "#/definitions/__schema673"
8574
8711
  },
8575
8712
  "mtu": {
8576
- "$ref": "#/definitions/__schema669"
8713
+ "$ref": "#/definitions/__schema675"
8577
8714
  },
8578
8715
  "userLevel": {
8579
- "$ref": "#/definitions/__schema671"
8716
+ "$ref": "#/definitions/__schema677"
8580
8717
  },
8581
8718
  "gateway": {
8582
- "$ref": "#/definitions/__schema673"
8719
+ "$ref": "#/definitions/__schema679"
8583
8720
  },
8584
8721
  "dns": {
8585
- "$ref": "#/definitions/__schema675"
8722
+ "$ref": "#/definitions/__schema681"
8586
8723
  },
8587
8724
  "autoSystemRoutingTable": {
8588
- "$ref": "#/definitions/__schema677"
8725
+ "$ref": "#/definitions/__schema683"
8589
8726
  },
8590
8727
  "autoOutboundsInterface": {
8591
- "$ref": "#/definitions/__schema679"
8728
+ "$ref": "#/definitions/__schema685"
8592
8729
  }
8593
8730
  },
8594
8731
  "required": [
@@ -8598,57 +8735,57 @@
8598
8735
  "additionalProperties": false,
8599
8736
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
8600
8737
  },
8601
- "__schema667": {
8738
+ "__schema673": {
8602
8739
  "markdownDescription": "The name of the created TUN interface. Default is `\"xray0\"`.\n",
8603
8740
  "allOf": [
8604
8741
  {
8605
- "$ref": "#/definitions/__schema668"
8742
+ "$ref": "#/definitions/__schema674"
8606
8743
  }
8607
8744
  ]
8608
8745
  },
8609
- "__schema668": {
8746
+ "__schema674": {
8610
8747
  "default": "xray0",
8611
8748
  "type": "string"
8612
8749
  },
8613
- "__schema669": {
8750
+ "__schema675": {
8614
8751
  "markdownDescription": "The MTU of the interface. The default is `1500`.\n",
8615
8752
  "allOf": [
8616
8753
  {
8617
- "$ref": "#/definitions/__schema670"
8754
+ "$ref": "#/definitions/__schema676"
8618
8755
  }
8619
8756
  ]
8620
8757
  },
8621
- "__schema670": {
8758
+ "__schema676": {
8622
8759
  "default": 1500,
8623
8760
  "type": "integer",
8624
8761
  "minimum": -9007199254740991,
8625
8762
  "maximum": 9007199254740991
8626
8763
  },
8627
- "__schema671": {
8764
+ "__schema677": {
8628
8765
  "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
8629
8766
  "allOf": [
8630
8767
  {
8631
- "$ref": "#/definitions/__schema672"
8768
+ "$ref": "#/definitions/__schema678"
8632
8769
  }
8633
8770
  ]
8634
8771
  },
8635
- "__schema672": {
8772
+ "__schema678": {
8636
8773
  "default": 0,
8637
8774
  "type": "integer",
8638
8775
  "minimum": -9007199254740991,
8639
8776
  "maximum": 9007199254740991
8640
8777
  },
8641
- "__schema673": {
8778
+ "__schema679": {
8642
8779
  "type": "array",
8643
8780
  "items": {
8644
- "$ref": "#/definitions/__schema674"
8781
+ "$ref": "#/definitions/__schema680"
8645
8782
  },
8646
8783
  "markdownDescription": "The list of address prefixes assigned to the TUN interface, usually one for IPv4 and one for IPv6, such as `\"10.0.0.1/16\"` and `\"fc00::1/64\"`.\n"
8647
8784
  },
8648
- "__schema674": {
8785
+ "__schema680": {
8649
8786
  "type": "string"
8650
8787
  },
8651
- "__schema675": {
8788
+ "__schema681": {
8652
8789
  "default": [
8653
8790
  "1.1.1.1",
8654
8791
  "8.8.8.8"
@@ -8656,39 +8793,39 @@
8656
8793
  "markdownDescription": "The list of DNS servers assigned to the TUN interface, such as `\"1.1.1.1\"` and `\"8.8.8.8\"`.\n",
8657
8794
  "allOf": [
8658
8795
  {
8659
- "$ref": "#/definitions/__schema676"
8796
+ "$ref": "#/definitions/__schema682"
8660
8797
  }
8661
8798
  ]
8662
8799
  },
8663
- "__schema676": {
8800
+ "__schema682": {
8664
8801
  "type": "array",
8665
8802
  "items": {
8666
8803
  "type": "string"
8667
8804
  }
8668
8805
  },
8669
- "__schema677": {
8806
+ "__schema683": {
8670
8807
  "markdownDescription": "The list of destination prefixes that Xray should add to the system routing table automatically so that the traffic is directed into this TUN interface. Each item is a CIDR. For example, `\"0.0.0.0/0\"` means all IPv4 traffic, and `\"::/0\"` means all IPv6 traffic.\n\nCurrently only supported on Windows. On other systems, the routing table must be configured manually.\n",
8671
8808
  "allOf": [
8672
8809
  {
8673
- "$ref": "#/definitions/__schema678"
8810
+ "$ref": "#/definitions/__schema684"
8674
8811
  }
8675
8812
  ]
8676
8813
  },
8677
- "__schema678": {
8814
+ "__schema684": {
8678
8815
  "type": "array",
8679
8816
  "items": {
8680
8817
  "type": "string"
8681
8818
  }
8682
8819
  },
8683
- "__schema679": {
8820
+ "__schema685": {
8684
8821
  "markdownDescription": "Automatically binds Xray outbounds to a physical network interface, so that traffic generated by Xray itself is not sent back into the TUN interface and looped.\n\nThe default value is `null`, which means not configured. You can specify an interface name explicitly, or use `\"auto\"` to let Xray choose one automatically. If `autoSystemRoutingTable` is configured but this field is omitted, Xray treats it as `\"auto\"`.\n",
8685
8822
  "allOf": [
8686
8823
  {
8687
- "$ref": "#/definitions/__schema680"
8824
+ "$ref": "#/definitions/__schema686"
8688
8825
  }
8689
8826
  ]
8690
8827
  },
8691
- "__schema680": {
8828
+ "__schema686": {
8692
8829
  "default": null,
8693
8830
  "anyOf": [
8694
8831
  {
@@ -8707,7 +8844,7 @@
8707
8844
  }
8708
8845
  ]
8709
8846
  },
8710
- "__schema681": {
8847
+ "__schema687": {
8711
8848
  "type": "object",
8712
8849
  "properties": {
8713
8850
  "tag": {
@@ -8726,10 +8863,10 @@
8726
8863
  "$ref": "#/definitions/__schema552"
8727
8864
  },
8728
8865
  "protocol": {
8729
- "$ref": "#/definitions/__schema682"
8866
+ "$ref": "#/definitions/__schema688"
8730
8867
  },
8731
8868
  "settings": {
8732
- "$ref": "#/definitions/__schema683"
8869
+ "$ref": "#/definitions/__schema689"
8733
8870
  }
8734
8871
  },
8735
8872
  "required": [
@@ -8739,18 +8876,18 @@
8739
8876
  "additionalProperties": false,
8740
8877
  "markdownDescription": "### TIP\n\nThe `hysteria` protocol itself has no authentication; `users` only take effect when used with the `hysteria` transport layer.\n\n[Documentation ↗](https://xtls.github.io/en/config/inbounds/hysteria.html)\n"
8741
8878
  },
8742
- "__schema682": {
8879
+ "__schema688": {
8743
8880
  "type": "string",
8744
8881
  "const": "hysteria"
8745
8882
  },
8746
- "__schema683": {
8883
+ "__schema689": {
8747
8884
  "type": "object",
8748
8885
  "properties": {
8749
8886
  "version": {
8750
- "$ref": "#/definitions/__schema684"
8887
+ "$ref": "#/definitions/__schema690"
8751
8888
  },
8752
8889
  "users": {
8753
- "$ref": "#/definitions/__schema685"
8890
+ "$ref": "#/definitions/__schema691"
8754
8891
  }
8755
8892
  },
8756
8893
  "required": [
@@ -8759,20 +8896,20 @@
8759
8896
  "additionalProperties": false,
8760
8897
  "markdownDescription": "`InboundConfigurationObject` corresponds to the `settings` item in [`InboundObject`](https://xtls.github.io/en/config/inbound.html).\n"
8761
8898
  },
8762
- "__schema684": {
8899
+ "__schema690": {
8763
8900
  "type": "number",
8764
8901
  "const": 2,
8765
8902
  "markdownDescription": "Hysteria version, must be 2.\n"
8766
8903
  },
8767
- "__schema685": {
8904
+ "__schema691": {
8768
8905
  "markdownDescription": "An array representing a group of users approved by the server.\n",
8769
8906
  "allOf": [
8770
8907
  {
8771
- "$ref": "#/definitions/__schema686"
8908
+ "$ref": "#/definitions/__schema692"
8772
8909
  }
8773
8910
  ]
8774
8911
  },
8775
- "__schema686": {
8912
+ "__schema692": {
8776
8913
  "default": [],
8777
8914
  "type": "array",
8778
8915
  "items": {
@@ -8792,7 +8929,7 @@
8792
8929
  "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
8793
8930
  "allOf": [
8794
8931
  {
8795
- "$ref": "#/definitions/__schema687"
8932
+ "$ref": "#/definitions/__schema693"
8796
8933
  }
8797
8934
  ]
8798
8935
  }
@@ -8804,38 +8941,38 @@
8804
8941
  "additionalProperties": false
8805
8942
  }
8806
8943
  },
8807
- "__schema687": {
8944
+ "__schema693": {
8808
8945
  "default": 0,
8809
8946
  "type": "integer",
8810
8947
  "minimum": -9007199254740991,
8811
8948
  "maximum": 9007199254740991
8812
8949
  },
8813
- "__schema688": {
8950
+ "__schema694": {
8814
8951
  "type": "object",
8815
8952
  "properties": {
8816
8953
  "sendThrough": {
8817
- "$ref": "#/definitions/__schema689"
8954
+ "$ref": "#/definitions/__schema695"
8818
8955
  },
8819
8956
  "tag": {
8820
- "$ref": "#/definitions/__schema691"
8957
+ "$ref": "#/definitions/__schema697"
8821
8958
  },
8822
8959
  "streamSettings": {
8823
- "$ref": "#/definitions/__schema693"
8960
+ "$ref": "#/definitions/__schema699"
8824
8961
  },
8825
8962
  "targetStrategy": {
8826
- "$ref": "#/definitions/__schema694"
8963
+ "$ref": "#/definitions/__schema700"
8827
8964
  },
8828
8965
  "proxySettings": {
8829
- "$ref": "#/definitions/__schema696"
8966
+ "$ref": "#/definitions/__schema702"
8830
8967
  },
8831
8968
  "mux": {
8832
- "$ref": "#/definitions/__schema699"
8969
+ "$ref": "#/definitions/__schema705"
8833
8970
  },
8834
8971
  "protocol": {
8835
- "$ref": "#/definitions/__schema705"
8972
+ "$ref": "#/definitions/__schema711"
8836
8973
  },
8837
8974
  "settings": {
8838
- "$ref": "#/definitions/__schema706"
8975
+ "$ref": "#/definitions/__schema712"
8839
8976
  }
8840
8977
  },
8841
8978
  "required": [
@@ -8844,15 +8981,15 @@
8844
8981
  "additionalProperties": false,
8845
8982
  "markdownDescription": "Blackhole is an outbound data protocol that blocks all outbound data. When used in conjunction with [Routing Configuration](https://xtls.github.io/en/config/routing.html), it can achieve the effect of blocking access to certain websites.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/blackhole.html)\n"
8846
8983
  },
8847
- "__schema689": {
8984
+ "__schema695": {
8848
8985
  "markdownDescription": "The IP address used to send data. This is effective when the host has multiple IP addresses. The default value is `\"0.0.0.0\"`.\n\nYou can enter an IPv6 CIDR block (e.g., `114:514:1919:810::/64`), and Xray will use a random IP address from the address block to initiate external connections. You need to correctly configure the network access method, routing table, and kernel parameters to allow Xray to bind to any IP within the address block.\n\nFor networks using NDP access, it is not recommended to set a subnet smaller than `/120`. Otherwise, it may cause issues such as NDP flooding, leading to the router's neighbor cache becoming full.\n\nSpecial value `origin`: If this value is used, the request will be sent using the IP address of the local machine that received the connection.\n\nSpecial value `srcip`: If this value is used, the request will be sent using the source IP address of the inbound connection.\n\nFor example, if the machine has a full IPv4 range `11.4.5.0/24` and listens on `0.0.0.0` (all IPv4 and IPv6 on the network interface), if a client connects to the local machine via `11.4.5.14`, the outbound request will also be sent via `11.4.5.14`. If the client connects via `11.4.5.10`, the outbound request will also be sent via `11.4.5.10`. This also applies to cases where the machine has a full range/multiple IPv6 addresses.\n\nAs mentioned in the inbound introduction, because of the connectionless nature of UDP, Xray cannot know the original destination IP where the request entered the core (for example, in the same QUIC connection, it might even change), so this feature cannot take effect for UDP.\n",
8849
8986
  "allOf": [
8850
8987
  {
8851
- "$ref": "#/definitions/__schema690"
8988
+ "$ref": "#/definitions/__schema696"
8852
8989
  }
8853
8990
  ]
8854
8991
  },
8855
- "__schema690": {
8992
+ "__schema696": {
8856
8993
  "anyOf": [
8857
8994
  {
8858
8995
  "type": "string"
@@ -8866,18 +9003,18 @@
8866
9003
  }
8867
9004
  ]
8868
9005
  },
8869
- "__schema691": {
9006
+ "__schema697": {
8870
9007
  "markdownDescription": "The identifier for this outbound connection, used to locate this connection in other configurations.\n\n### DANGER\n\nWhen not empty, its value must be **unique** among all `tag`s.\n",
8871
9008
  "allOf": [
8872
9009
  {
8873
- "$ref": "#/definitions/__schema692"
9010
+ "$ref": "#/definitions/__schema698"
8874
9011
  }
8875
9012
  ]
8876
9013
  },
8877
- "__schema692": {
9014
+ "__schema698": {
8878
9015
  "type": "string"
8879
9016
  },
8880
- "__schema693": {
9017
+ "__schema699": {
8881
9018
  "markdownDescription": "Transport configuration for this outbound.\n",
8882
9019
  "allOf": [
8883
9020
  {
@@ -8885,15 +9022,15 @@
8885
9022
  }
8886
9023
  ]
8887
9024
  },
8888
- "__schema694": {
9025
+ "__schema700": {
8889
9026
  "markdownDescription": "If this outbound attempts to send a domain request, this controls whether it is resolved/how it is resolved to an IP before sending.\n\nThe default value is `AsIs`, meaning it is sent to the remote server as is. All parameter meanings are roughly equivalent to `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n\n### TIP\n\nThis controls **proxied requests**. If the address of the outbound proxy server is a domain name, and you need to select a resolution strategy for the domain name itself, you should configure `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n",
8890
9027
  "allOf": [
8891
9028
  {
8892
- "$ref": "#/definitions/__schema695"
9029
+ "$ref": "#/definitions/__schema701"
8893
9030
  }
8894
9031
  ]
8895
9032
  },
8896
- "__schema695": {
9033
+ "__schema701": {
8897
9034
  "default": "AsIs",
8898
9035
  "type": "string",
8899
9036
  "enum": [
@@ -8910,15 +9047,15 @@
8910
9047
  "ForceIPv4"
8911
9048
  ]
8912
9049
  },
8913
- "__schema696": {
9050
+ "__schema702": {
8914
9051
  "markdownDescription": "Outbound proxy configuration.\n",
8915
9052
  "allOf": [
8916
9053
  {
8917
- "$ref": "#/definitions/__schema697"
9054
+ "$ref": "#/definitions/__schema703"
8918
9055
  }
8919
9056
  ]
8920
9057
  },
8921
- "__schema697": {
9058
+ "__schema703": {
8922
9059
  "type": "object",
8923
9060
  "properties": {
8924
9061
  "tag": {
@@ -8930,7 +9067,7 @@
8930
9067
  "markdownDescription": "`true` converts this setting to `Sockopt.dialerProxy` so the forwarding can use this outbound's `streamSettings`. The default is `false`.\n",
8931
9068
  "allOf": [
8932
9069
  {
8933
- "$ref": "#/definitions/__schema698"
9070
+ "$ref": "#/definitions/__schema704"
8934
9071
  }
8935
9072
  ]
8936
9073
  }
@@ -8940,26 +9077,26 @@
8940
9077
  ],
8941
9078
  "additionalProperties": false
8942
9079
  },
8943
- "__schema698": {
9080
+ "__schema704": {
8944
9081
  "default": false,
8945
9082
  "type": "boolean"
8946
9083
  },
8947
- "__schema699": {
9084
+ "__schema705": {
8948
9085
  "markdownDescription": "The Mux function distributes data from multiple TCP connections over a single TCP connection. For implementation details, see [Mux.Cool](https://xtls.github.io/en/development/protocols/muxcool.html). Mux is designed to reduce TCP handshake latency, not to increase connection throughput. Using Mux for watching videos, downloading, or speed testing usually has a negative effect. Mux only needs to be enabled on the client side; the server side adapts automatically. The second use of Mux is to distribute multiple UDP connections, i.e., XUDP.\n\n`MuxObject` corresponds to the `mux` item in `OutboundObject`.\n",
8949
9086
  "allOf": [
8950
9087
  {
8951
- "$ref": "#/definitions/__schema700"
9088
+ "$ref": "#/definitions/__schema706"
8952
9089
  }
8953
9090
  ]
8954
9091
  },
8955
- "__schema700": {
9092
+ "__schema706": {
8956
9093
  "type": "object",
8957
9094
  "properties": {
8958
9095
  "enabled": {
8959
9096
  "markdownDescription": "Whether to enable Mux for forwarding requests. Default is `false`.\n",
8960
9097
  "allOf": [
8961
9098
  {
8962
- "$ref": "#/definitions/__schema701"
9099
+ "$ref": "#/definitions/__schema707"
8963
9100
  }
8964
9101
  ]
8965
9102
  },
@@ -8967,7 +9104,7 @@
8967
9104
  "markdownDescription": "Maximum concurrent connections. Minimum `1`, maximum `128`. If omitted or set to `0`, it equals `8`. Values greater than `128` are treated as 128, because once a connection reaches the maximum reuse count of 128, it will no longer be assigned any new sub-connections.\n\nThis value represents the maximum number of sub-connections carried on a single TCP connection. For example, if `concurrency=8` is set, when the client issues 8 TCP requests, Xray will only issue one actual TCP connection, and all 8 requests from the client are transmitted over this TCP connection.\n\nWhen the maximum sub-connection capacity of all Mux connections is fully occupied, the core will initiate new connections to carry sub-connections. If a large number of sub-connections are concurrent in a short time and subsequently decrease, the internal scheduler of the core will tend to distribute requests to 2 connections alternately and leave other connections idle, waiting for all their sub-connections to end naturally before closing them to save resources. If the total number of sub-connections continues to be lower than `concurrency` for a long time, after one of the connections reaches the maximum reuse count, the core will revert to a single connection state.\n\n### TIP\n\nWhen set to a negative number, such as `-1`, the Mux module is not used to carry TCP traffic.\n",
8968
9105
  "allOf": [
8969
9106
  {
8970
- "$ref": "#/definitions/__schema702"
9107
+ "$ref": "#/definitions/__schema708"
8971
9108
  }
8972
9109
  ]
8973
9110
  },
@@ -8975,7 +9112,7 @@
8975
9112
  "markdownDescription": "Use a new XUDP aggregation tunnel (i.e., another Mux connection) to proxy UDP traffic. Fill in the maximum number of concurrent sub-UoT. Minimum `1`, maximum `1024`. If omitted or set to `0`, it will follow the same path as TCP traffic, which is the traditional behavior.\n\n### TIP\n\nWhen set to a negative number, such as `-1`, the Mux module is not used to carry UDP traffic. The proxy protocol's original UDP transmission method will be used. For example, `Shadowsocks` will use native UDP, and `VLESS` will use UoT.\n",
8976
9113
  "allOf": [
8977
9114
  {
8978
- "$ref": "#/definitions/__schema703"
9115
+ "$ref": "#/definitions/__schema709"
8979
9116
  }
8980
9117
  ]
8981
9118
  },
@@ -8983,28 +9120,28 @@
8983
9120
  "markdownDescription": "Controls how Mux handles proxied UDP/443 (QUIC) traffic:\n\n- Default `reject`: Rejects traffic (browsers typically fall back to TCP HTTP2 automatically).\n- `allow`: Allows traffic to go through the Mux connection.\n- `skip`: Does not use the Mux module to carry UDP 443 traffic. The proxy protocol's original UDP transmission method will be used. For example, `Shadowsocks` will use native UDP, and `VLESS` will use UoT.\n",
8984
9121
  "allOf": [
8985
9122
  {
8986
- "$ref": "#/definitions/__schema704"
9123
+ "$ref": "#/definitions/__schema710"
8987
9124
  }
8988
9125
  ]
8989
9126
  }
8990
9127
  },
8991
9128
  "additionalProperties": false
8992
9129
  },
8993
- "__schema701": {
9130
+ "__schema707": {
8994
9131
  "default": false,
8995
9132
  "type": "boolean"
8996
9133
  },
8997
- "__schema702": {
9134
+ "__schema708": {
8998
9135
  "type": "integer",
8999
9136
  "minimum": -9007199254740991,
9000
9137
  "maximum": 9007199254740991
9001
9138
  },
9002
- "__schema703": {
9139
+ "__schema709": {
9003
9140
  "type": "integer",
9004
9141
  "minimum": -9007199254740991,
9005
9142
  "maximum": 9007199254740991
9006
9143
  },
9007
- "__schema704": {
9144
+ "__schema710": {
9008
9145
  "default": "reject",
9009
9146
  "type": "string",
9010
9147
  "enum": [
@@ -9013,7 +9150,7 @@
9013
9150
  "skip"
9014
9151
  ]
9015
9152
  },
9016
- "__schema705": {
9153
+ "__schema711": {
9017
9154
  "anyOf": [
9018
9155
  {
9019
9156
  "type": "string",
@@ -9025,43 +9162,43 @@
9025
9162
  }
9026
9163
  ]
9027
9164
  },
9028
- "__schema706": {
9165
+ "__schema712": {
9029
9166
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n",
9030
9167
  "allOf": [
9031
9168
  {
9032
- "$ref": "#/definitions/__schema707"
9169
+ "$ref": "#/definitions/__schema713"
9033
9170
  }
9034
9171
  ]
9035
9172
  },
9036
- "__schema707": {
9173
+ "__schema713": {
9037
9174
  "type": "object",
9038
9175
  "properties": {
9039
9176
  "response": {
9040
9177
  "markdownDescription": "Configures the response data of the Blackhole.\n\nAfter receiving data to be forwarded, Blackhole will send the specified response data, then close the connection. The data to be forwarded will be discarded. If this item is not specified, Blackhole will close the connection immediately.\n",
9041
9178
  "allOf": [
9042
9179
  {
9043
- "$ref": "#/definitions/__schema708"
9180
+ "$ref": "#/definitions/__schema714"
9044
9181
  }
9045
9182
  ]
9046
9183
  }
9047
9184
  },
9048
9185
  "additionalProperties": false
9049
9186
  },
9050
- "__schema708": {
9187
+ "__schema714": {
9051
9188
  "type": "object",
9052
9189
  "properties": {
9053
9190
  "type": {
9054
9191
  "markdownDescription": "When `type` is `\"none\"` (default value), Blackhole will close the connection immediately.\n\nWhen `type` is `\"http\"`, Blackhole will send back a simple HTTP 403 response packet, then close the connection.\n",
9055
9192
  "allOf": [
9056
9193
  {
9057
- "$ref": "#/definitions/__schema709"
9194
+ "$ref": "#/definitions/__schema715"
9058
9195
  }
9059
9196
  ]
9060
9197
  }
9061
9198
  },
9062
9199
  "additionalProperties": false
9063
9200
  },
9064
- "__schema709": {
9201
+ "__schema715": {
9065
9202
  "default": "none",
9066
9203
  "type": "string",
9067
9204
  "enum": [
@@ -9069,32 +9206,32 @@
9069
9206
  "http"
9070
9207
  ]
9071
9208
  },
9072
- "__schema710": {
9209
+ "__schema716": {
9073
9210
  "type": "object",
9074
9211
  "properties": {
9075
9212
  "sendThrough": {
9076
- "$ref": "#/definitions/__schema689"
9213
+ "$ref": "#/definitions/__schema695"
9077
9214
  },
9078
9215
  "tag": {
9079
- "$ref": "#/definitions/__schema691"
9216
+ "$ref": "#/definitions/__schema697"
9080
9217
  },
9081
9218
  "streamSettings": {
9082
- "$ref": "#/definitions/__schema693"
9219
+ "$ref": "#/definitions/__schema699"
9083
9220
  },
9084
9221
  "targetStrategy": {
9085
- "$ref": "#/definitions/__schema694"
9222
+ "$ref": "#/definitions/__schema700"
9086
9223
  },
9087
9224
  "proxySettings": {
9088
- "$ref": "#/definitions/__schema696"
9225
+ "$ref": "#/definitions/__schema702"
9089
9226
  },
9090
9227
  "mux": {
9091
- "$ref": "#/definitions/__schema699"
9228
+ "$ref": "#/definitions/__schema705"
9092
9229
  },
9093
9230
  "protocol": {
9094
- "$ref": "#/definitions/__schema711"
9231
+ "$ref": "#/definitions/__schema717"
9095
9232
  },
9096
9233
  "settings": {
9097
- "$ref": "#/definitions/__schema712"
9234
+ "$ref": "#/definitions/__schema718"
9098
9235
  }
9099
9236
  },
9100
9237
  "required": [
@@ -9103,7 +9240,7 @@
9103
9240
  "additionalProperties": false,
9104
9241
  "markdownDescription": "Freedom is an outbound protocol used to send (normal) TCP or UDP data to any network.\n\n### WARNING\n\nThis outbound has a default safety policy in server-side and reverse-proxy scenarios, which may block some targets. See `finalRules` below for how to allow them.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/freedom.html)\n"
9105
9242
  },
9106
- "__schema711": {
9243
+ "__schema717": {
9107
9244
  "anyOf": [
9108
9245
  {
9109
9246
  "type": "string",
@@ -9115,22 +9252,22 @@
9115
9252
  }
9116
9253
  ]
9117
9254
  },
9118
- "__schema712": {
9255
+ "__schema718": {
9119
9256
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n",
9120
9257
  "allOf": [
9121
9258
  {
9122
- "$ref": "#/definitions/__schema713"
9259
+ "$ref": "#/definitions/__schema719"
9123
9260
  }
9124
9261
  ]
9125
9262
  },
9126
- "__schema713": {
9263
+ "__schema719": {
9127
9264
  "type": "object",
9128
9265
  "properties": {
9129
9266
  "domainStrategy": {
9130
9267
  "markdownDescription": "Default value `\"AsIs\"`.\n\nThe meanings of all parameters are roughly equivalent to `domainStrategy` in [Sockopt](https://xtls.github.io/en/config/transports/sockopt.html#sockoptobject).\n\nOnly using `\"AsIs\"` here allows passing the domain name to the subsequent `sockopt` module. If set to non-`\"AsIs\"` here, causing the domain to be resolved to a specific IP, it will invalidate the subsequent `sockopt.domainStrategy` and its related `happyEyeballs`. (There is no negative impact if these two settings are not adjusted).\n\nWhen sending UDP, Freedom ignores `domainStrategy` in `sockopt` for some reasons and forcibly prefers IPv4 by default.\n",
9131
9268
  "allOf": [
9132
9269
  {
9133
- "$ref": "#/definitions/__schema714"
9270
+ "$ref": "#/definitions/__schema720"
9134
9271
  }
9135
9272
  ]
9136
9273
  },
@@ -9138,7 +9275,7 @@
9138
9275
  "markdownDescription": "Freedom will forcibly send all data to the specified address (instead of the address specified by the inbound).\n\nThe value is a string, e.g., `\"127.0.0.1:80\"`, `\":1234\"`.\n\nWhen the address is not specified, e.g., `\":443\"`, Freedom will not modify the original destination address. When the port is `0`, e.g., `\"xray.com:0\"`, Freedom will not modify the original port.\n",
9139
9276
  "allOf": [
9140
9277
  {
9141
- "$ref": "#/definitions/__schema715"
9278
+ "$ref": "#/definitions/__schema721"
9142
9279
  }
9143
9280
  ]
9144
9281
  },
@@ -9146,7 +9283,7 @@
9146
9283
  "markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
9147
9284
  "allOf": [
9148
9285
  {
9149
- "$ref": "#/definitions/__schema716"
9286
+ "$ref": "#/definitions/__schema722"
9150
9287
  }
9151
9288
  ]
9152
9289
  },
@@ -9154,13 +9291,13 @@
9154
9291
  "type": "object",
9155
9292
  "properties": {
9156
9293
  "length": {
9157
- "$ref": "#/definitions/__schema717"
9294
+ "$ref": "#/definitions/__schema723"
9158
9295
  },
9159
9296
  "interval": {
9160
- "$ref": "#/definitions/__schema718"
9297
+ "$ref": "#/definitions/__schema724"
9161
9298
  },
9162
9299
  "packets": {
9163
- "$ref": "#/definitions/__schema719"
9300
+ "$ref": "#/definitions/__schema725"
9164
9301
  }
9165
9302
  },
9166
9303
  "required": [
@@ -9175,7 +9312,7 @@
9175
9312
  "markdownDescription": "UDP noise, used to send some random data as \"noise\" before sending a UDP connection. Presence of this structure implies enablement. It might deceive sniffers, or it might disrupt normal connections. _Use at your own risk._ For this reason, it bypasses port 53 because that breaks DNS.\n\nIt is an array where multiple noise packets to be sent can be defined. A single element in the array is defined as follows:\n\n`\"type\"`: Noise packet type. Currently supports `\"rand\"` (random data), `\"str\"` (user-defined string), `\"base64\"` (base64 encoded custom binary data).\n\n`\"packet\"`: The content of the packet to be sent based on the preceding `type`.\n\n- When `type` is `rand`, this specifies the length of the random data. It can be a fixed value `\"100\"` or a floating range `\"50-150\"`.\n- When `type` is `str`, this specifies the string to be sent.\n- When `type` is `hex`, this specifies binary data in hex format.\n- When `type` is `base64`, this specifies base64 encoded binary data.\n\n`\"delay\"`: Delay in milliseconds. After sending this noise packet, the core will wait for this time before sending the next noise packet or real data. Defaults to no wait. It is an [Int32Range](https://xtls.github.io/en/development/intro/guide.html#int32range) type.\n",
9176
9313
  "allOf": [
9177
9314
  {
9178
- "$ref": "#/definitions/__schema720"
9315
+ "$ref": "#/definitions/__schema726"
9179
9316
  }
9180
9317
  ]
9181
9318
  },
@@ -9183,7 +9320,7 @@
9183
9320
  "markdownDescription": "PROXY protocol is usually used with `redirect` to redirect traffic to Nginx or other backend services that have the PROXY protocol enabled. If the backend service does not support PROXY protocol, the connection will be disconnected.\n\nThe value of `proxyProtocol` is the PROXY protocol version number. Options are `1` or `2`. If not specified, it defaults to `0` (disabled).\n",
9184
9321
  "allOf": [
9185
9322
  {
9186
- "$ref": "#/definitions/__schema721"
9323
+ "$ref": "#/definitions/__schema727"
9187
9324
  }
9188
9325
  ]
9189
9326
  },
@@ -9191,14 +9328,14 @@
9191
9328
  "markdownDescription": "Matches Freedom final outbound rules in order, and allows or blocks connection targets.\n\nCompared with blocking in `routing`, `finalRules` applies at Freedom's final outbound stage: matching happens after the final IP is resolved and before dialing; in addition, UDP is also matched packet by packet during send and receive, making it stricter and more thorough. Each rule match takes about 50-150 ns.\n\nNote: whenever Freedom needs to apply `finalRules`, if `domainStrategy` is `AsIs` and the target is a domain, Freedom still resolves the target to an IP through the operating system DNS before matching rules. At that point the target is no longer a domain, so the later `sockopt.domainStrategy` and its `happyEyeballs` no longer take effect.\n\n### WARNING\n\nThere is a default fallback safety policy for server-side and reverse-proxy scenarios:\n\nIf no explicit rule matches, the built-in fallback rule is used: traffic from the VLESS reverse proxy blocks all targets by default; traffic from `VLESS`, `VMess`, `Trojan`, `Shadowsocks`, `Hysteria`, or `WireGuard` inbounds blocks private and reserved IP ranges by default; other traffic is fully allowed by default.\n\nIf the server needs to allow clients to access some internal services, explicitly configure `allow` rules and limit them to the necessary `network`, `ip`, and `port` whenever possible.\n\nIf the server also needs features that rely on passing the domain to `sockopt` (such as `sockopt.domainStrategy` or `happyEyeballs`), it cannot continue relying on this default safety policy. You can configure the first rule as an `allow` rule without any matching conditions to restore the previous behavior; this is also equivalent to disabling this default safety policy, so evaluate the security impact yourself.\n",
9192
9329
  "allOf": [
9193
9330
  {
9194
- "$ref": "#/definitions/__schema722"
9331
+ "$ref": "#/definitions/__schema728"
9195
9332
  }
9196
9333
  ]
9197
9334
  }
9198
9335
  },
9199
9336
  "additionalProperties": false
9200
9337
  },
9201
- "__schema714": {
9338
+ "__schema720": {
9202
9339
  "default": "AsIs",
9203
9340
  "type": "string",
9204
9341
  "enum": [
@@ -9215,16 +9352,16 @@
9215
9352
  "ForceIPv4"
9216
9353
  ]
9217
9354
  },
9218
- "__schema715": {
9355
+ "__schema721": {
9219
9356
  "type": "string"
9220
9357
  },
9221
- "__schema716": {
9358
+ "__schema722": {
9222
9359
  "default": 0,
9223
9360
  "type": "integer",
9224
9361
  "minimum": -9007199254740991,
9225
9362
  "maximum": 9007199254740991
9226
9363
  },
9227
- "__schema717": {
9364
+ "__schema723": {
9228
9365
  "anyOf": [
9229
9366
  {
9230
9367
  "type": "integer",
@@ -9236,7 +9373,7 @@
9236
9373
  }
9237
9374
  ]
9238
9375
  },
9239
- "__schema718": {
9376
+ "__schema724": {
9240
9377
  "anyOf": [
9241
9378
  {
9242
9379
  "type": "integer",
@@ -9248,7 +9385,7 @@
9248
9385
  }
9249
9386
  ]
9250
9387
  },
9251
- "__schema719": {
9388
+ "__schema725": {
9252
9389
  "anyOf": [
9253
9390
  {
9254
9391
  "type": "string",
@@ -9259,7 +9396,7 @@
9259
9396
  }
9260
9397
  ]
9261
9398
  },
9262
- "__schema720": {
9399
+ "__schema726": {
9263
9400
  "type": "array",
9264
9401
  "items": {
9265
9402
  "type": "object",
@@ -9295,7 +9432,7 @@
9295
9432
  "additionalProperties": false
9296
9433
  }
9297
9434
  },
9298
- "__schema721": {
9435
+ "__schema727": {
9299
9436
  "default": 0,
9300
9437
  "anyOf": [
9301
9438
  {
@@ -9316,26 +9453,26 @@
9316
9453
  }
9317
9454
  ]
9318
9455
  },
9319
- "__schema722": {
9456
+ "__schema728": {
9320
9457
  "default": [],
9321
9458
  "type": "array",
9322
9459
  "items": {
9323
9460
  "type": "object",
9324
9461
  "properties": {
9325
9462
  "action": {
9326
- "$ref": "#/definitions/__schema723"
9463
+ "$ref": "#/definitions/__schema729"
9327
9464
  },
9328
9465
  "network": {
9329
- "$ref": "#/definitions/__schema724"
9466
+ "$ref": "#/definitions/__schema730"
9330
9467
  },
9331
9468
  "port": {
9332
- "$ref": "#/definitions/__schema725"
9469
+ "$ref": "#/definitions/__schema731"
9333
9470
  },
9334
9471
  "ip": {
9335
- "$ref": "#/definitions/__schema726"
9472
+ "$ref": "#/definitions/__schema732"
9336
9473
  },
9337
9474
  "blockDelay": {
9338
- "$ref": "#/definitions/__schema728"
9475
+ "$ref": "#/definitions/__schema734"
9339
9476
  }
9340
9477
  },
9341
9478
  "required": [
@@ -9347,7 +9484,7 @@
9347
9484
  "markdownDescription": "All matching conditions in a rule are combined with AND logic. If a condition is omitted, that condition is not restricted.\n"
9348
9485
  }
9349
9486
  },
9350
- "__schema723": {
9487
+ "__schema729": {
9351
9488
  "type": "string",
9352
9489
  "enum": [
9353
9490
  "allow",
@@ -9355,7 +9492,7 @@
9355
9492
  ],
9356
9493
  "markdownDescription": "Defines the action to take when the rule matches.\n\n- `allow`: Allows the target.\n- `block`: Blocks the target.\n"
9357
9494
  },
9358
- "__schema724": {
9495
+ "__schema730": {
9359
9496
  "type": "string",
9360
9497
  "enum": [
9361
9498
  "tcp",
@@ -9364,7 +9501,7 @@
9364
9501
  ],
9365
9502
  "markdownDescription": "Matches the network type. The rule takes effect when the connection method matches. It can also be written as a string array, such as `[\"tcp\", \"udp\"]`. If omitted, all networks are matched.\n"
9366
9503
  },
9367
- "__schema725": {
9504
+ "__schema731": {
9368
9505
  "markdownDescription": "Target port range. The syntax is the same as [`port` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject). If omitted, all ports are matched.\n",
9369
9506
  "allOf": [
9370
9507
  {
@@ -9372,57 +9509,57 @@
9372
9509
  }
9373
9510
  ]
9374
9511
  },
9375
- "__schema726": {
9512
+ "__schema732": {
9376
9513
  "markdownDescription": "An array where each item represents an IP range. The rule takes effect when an item matches the target IP. The syntax is the same as [`ip` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject). If omitted, all IPs are matched.\n",
9377
9514
  "allOf": [
9378
9515
  {
9379
- "$ref": "#/definitions/__schema727"
9516
+ "$ref": "#/definitions/__schema733"
9380
9517
  }
9381
9518
  ]
9382
9519
  },
9383
- "__schema727": {
9520
+ "__schema733": {
9384
9521
  "type": "array",
9385
9522
  "items": {
9386
9523
  "type": "string"
9387
9524
  }
9388
9525
  },
9389
- "__schema728": {
9526
+ "__schema734": {
9390
9527
  "markdownDescription": "Sets how long the blackhole state lasts after a blocking rule matches.\n\nWhen a rule's `action` is `block` and the target matches, Freedom puts the connection into a blackhole state and closes it after this duration expires. The unit is seconds. It can be written as a fixed value or a range, for example `30` or `30-90`. If omitted, it defaults to `30-90`, which means a random value within that range.\n",
9391
9528
  "allOf": [
9392
9529
  {
9393
- "$ref": "#/definitions/__schema729"
9530
+ "$ref": "#/definitions/__schema735"
9394
9531
  }
9395
9532
  ]
9396
9533
  },
9397
- "__schema729": {
9534
+ "__schema735": {
9398
9535
  "type": "string"
9399
9536
  },
9400
- "__schema730": {
9537
+ "__schema736": {
9401
9538
  "type": "object",
9402
9539
  "properties": {
9403
9540
  "sendThrough": {
9404
- "$ref": "#/definitions/__schema689"
9541
+ "$ref": "#/definitions/__schema695"
9405
9542
  },
9406
9543
  "tag": {
9407
- "$ref": "#/definitions/__schema691"
9544
+ "$ref": "#/definitions/__schema697"
9408
9545
  },
9409
9546
  "streamSettings": {
9410
- "$ref": "#/definitions/__schema693"
9547
+ "$ref": "#/definitions/__schema699"
9411
9548
  },
9412
9549
  "targetStrategy": {
9413
- "$ref": "#/definitions/__schema694"
9550
+ "$ref": "#/definitions/__schema700"
9414
9551
  },
9415
9552
  "proxySettings": {
9416
- "$ref": "#/definitions/__schema696"
9553
+ "$ref": "#/definitions/__schema702"
9417
9554
  },
9418
9555
  "mux": {
9419
- "$ref": "#/definitions/__schema699"
9556
+ "$ref": "#/definitions/__schema705"
9420
9557
  },
9421
9558
  "protocol": {
9422
- "$ref": "#/definitions/__schema731"
9559
+ "$ref": "#/definitions/__schema737"
9423
9560
  },
9424
9561
  "settings": {
9425
- "$ref": "#/definitions/__schema732"
9562
+ "$ref": "#/definitions/__schema738"
9426
9563
  }
9427
9564
  },
9428
9565
  "required": [
@@ -9432,108 +9569,108 @@
9432
9569
  "additionalProperties": false,
9433
9570
  "markdownDescription": "DNS is an outbound protocol used to receive DNS queries sent in by routing, then forward or process them according to rules.\n\nThis outbound only supports traditional plaintext DNS queries over UDP and TCP; non-plaintext DNS protocols such as DoH, DoT, and DoQ are not applicable to this outbound. Common scenarios include TUN, transparent proxy, or `dokodemo-door` receiving DNS traffic and then routing sending that traffic to this outbound.\n\nIt can allow queries to the target DNS server, `hijack` them to the built-in [DNS server](https://xtls.github.io/en/config/dns.html) for further processing, drop them, or return responses with a specified RCODE according to rules. It can also rewrite the target address, port, and transport protocol.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/dns.html)\n"
9434
9571
  },
9435
- "__schema731": {
9572
+ "__schema737": {
9436
9573
  "type": "string",
9437
9574
  "const": "dns"
9438
9575
  },
9439
- "__schema732": {
9576
+ "__schema738": {
9440
9577
  "type": "object",
9441
9578
  "properties": {
9442
9579
  "rewriteNetwork": {
9443
- "$ref": "#/definitions/__schema733"
9580
+ "$ref": "#/definitions/__schema739"
9444
9581
  },
9445
9582
  "rewriteAddress": {
9446
- "$ref": "#/definitions/__schema735"
9583
+ "$ref": "#/definitions/__schema741"
9447
9584
  },
9448
9585
  "rewritePort": {
9449
- "$ref": "#/definitions/__schema737"
9586
+ "$ref": "#/definitions/__schema743"
9450
9587
  },
9451
9588
  "userLevel": {
9452
- "$ref": "#/definitions/__schema739"
9589
+ "$ref": "#/definitions/__schema745"
9453
9590
  },
9454
9591
  "rules": {
9455
- "$ref": "#/definitions/__schema741"
9592
+ "$ref": "#/definitions/__schema747"
9456
9593
  }
9457
9594
  },
9458
9595
  "additionalProperties": false,
9459
9596
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
9460
9597
  },
9461
- "__schema733": {
9598
+ "__schema739": {
9462
9599
  "markdownDescription": "Modifies the transport protocol used for DNS traffic. Available values are `\"tcp\"` and `\"udp\"`. If omitted, the original transport method is preserved.\n",
9463
9600
  "allOf": [
9464
9601
  {
9465
- "$ref": "#/definitions/__schema734"
9602
+ "$ref": "#/definitions/__schema740"
9466
9603
  }
9467
9604
  ]
9468
9605
  },
9469
- "__schema734": {
9606
+ "__schema740": {
9470
9607
  "type": "string",
9471
9608
  "enum": [
9472
9609
  "tcp",
9473
9610
  "udp"
9474
9611
  ]
9475
9612
  },
9476
- "__schema735": {
9613
+ "__schema741": {
9477
9614
  "markdownDescription": "Modifies the DNS server address. If omitted, the address specified by the source is preserved.\n",
9478
9615
  "allOf": [
9479
9616
  {
9480
- "$ref": "#/definitions/__schema736"
9617
+ "$ref": "#/definitions/__schema742"
9481
9618
  }
9482
9619
  ]
9483
9620
  },
9484
- "__schema736": {
9621
+ "__schema742": {
9485
9622
  "type": "string"
9486
9623
  },
9487
- "__schema737": {
9624
+ "__schema743": {
9488
9625
  "markdownDescription": "Modifies the DNS server port. If omitted, the port specified by the source is preserved.\n",
9489
9626
  "allOf": [
9490
9627
  {
9491
- "$ref": "#/definitions/__schema738"
9628
+ "$ref": "#/definitions/__schema744"
9492
9629
  }
9493
9630
  ]
9494
9631
  },
9495
- "__schema738": {
9632
+ "__schema744": {
9496
9633
  "type": "string"
9497
9634
  },
9498
- "__schema739": {
9635
+ "__schema745": {
9499
9636
  "markdownDescription": "User level. Connections will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If omitted, it defaults to `0`.\n",
9500
9637
  "allOf": [
9501
9638
  {
9502
- "$ref": "#/definitions/__schema740"
9639
+ "$ref": "#/definitions/__schema746"
9503
9640
  }
9504
9641
  ]
9505
9642
  },
9506
- "__schema740": {
9643
+ "__schema746": {
9507
9644
  "default": 0,
9508
9645
  "type": "integer",
9509
9646
  "minimum": -9007199254740991,
9510
9647
  "maximum": 9007199254740991
9511
9648
  },
9512
- "__schema741": {
9649
+ "__schema747": {
9513
9650
  "markdownDescription": "Matches DNS query rules in order, and supports fine-grained control by `qtype` and `domain`.\n\nIf no rule is matched, the built-in fallback rule is used: A and AAAA queries are imported into the built-in DNS module, while other query types return an empty response with RCODE `0`.\n",
9514
9651
  "allOf": [
9515
9652
  {
9516
- "$ref": "#/definitions/__schema742"
9653
+ "$ref": "#/definitions/__schema748"
9517
9654
  }
9518
9655
  ]
9519
9656
  },
9520
- "__schema742": {
9657
+ "__schema748": {
9521
9658
  "default": [],
9522
9659
  "type": "array",
9523
9660
  "items": {
9524
9661
  "type": "object",
9525
9662
  "properties": {
9526
9663
  "action": {
9527
- "$ref": "#/definitions/__schema743"
9664
+ "$ref": "#/definitions/__schema749"
9528
9665
  },
9529
9666
  "qtype": {
9530
- "$ref": "#/definitions/__schema744"
9667
+ "$ref": "#/definitions/__schema750"
9531
9668
  },
9532
9669
  "rCode": {
9533
- "$ref": "#/definitions/__schema746"
9670
+ "$ref": "#/definitions/__schema752"
9534
9671
  },
9535
9672
  "domain": {
9536
- "$ref": "#/definitions/__schema748"
9673
+ "$ref": "#/definitions/__schema754"
9537
9674
  }
9538
9675
  },
9539
9676
  "required": [
@@ -9544,7 +9681,7 @@
9544
9681
  "markdownDescription": "All matching conditions in a rule are combined with AND logic. If a condition is omitted, that condition is not restricted.\n"
9545
9682
  }
9546
9683
  },
9547
- "__schema743": {
9684
+ "__schema749": {
9548
9685
  "type": "string",
9549
9686
  "enum": [
9550
9687
  "direct",
@@ -9554,15 +9691,15 @@
9554
9691
  ],
9555
9692
  "markdownDescription": "Defines the action to take when the rule matches.\n\n- `direct`: Allows the query directly to the target DNS server. If outbound-level `rewriteNetwork`, `rewriteAddress`, or `rewritePort` is also configured, the query is forwarded to the rewritten target.\n- `hijack`: Imports the query into the built-in [DNS server](https://xtls.github.io/en/config/dns.html) for further processing. This can be used for additional routing based on the built-in DNS configuration. Currently, only A and AAAA records are supported.\n- `drop`: Drops the request directly without returning a response.\n- `return`: Returns a DNS response whose response code is specified by `rCode`. Compared with `drop`, this can prevent some applications from waiting too long for a DNS timeout or repeatedly retrying.\n"
9556
9693
  },
9557
- "__schema744": {
9694
+ "__schema750": {
9558
9695
  "markdownDescription": "Matches DNS query types. The forms are as follows:\n\n- Integer value: a specific query type, such as `\"qtype\": 1` for an A query, or `\"qtype\": 28` for an AAAA query.\n- String: can be a digits-only string such as `\"qtype\": \"28\"`, or a numeric range such as `\"qtype\": \"5-10\"`, which represents the 6 types from type 5 to type 10. Commas can be used for segmentation, such as `11,13,15-17`, which represents the 5 types: type 11, type 13, and type 15 to type 17.\n\nFor specific type numbers, refer to the [IANA documentation](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml).\n",
9559
9696
  "allOf": [
9560
9697
  {
9561
- "$ref": "#/definitions/__schema745"
9698
+ "$ref": "#/definitions/__schema751"
9562
9699
  }
9563
9700
  ]
9564
9701
  },
9565
- "__schema745": {
9702
+ "__schema751": {
9566
9703
  "anyOf": [
9567
9704
  {
9568
9705
  "type": "number"
@@ -9572,53 +9709,53 @@
9572
9709
  }
9573
9710
  ]
9574
9711
  },
9575
- "__schema746": {
9712
+ "__schema752": {
9576
9713
  "markdownDescription": "The DNS RCODE used when returning a response, in the range `0` to `65535`. It only takes effect when `action` is `return`; if omitted, it defaults to `0`.\n",
9577
9714
  "allOf": [
9578
9715
  {
9579
- "$ref": "#/definitions/__schema747"
9716
+ "$ref": "#/definitions/__schema753"
9580
9717
  }
9581
9718
  ]
9582
9719
  },
9583
- "__schema747": {
9720
+ "__schema753": {
9584
9721
  "type": "number"
9585
9722
  },
9586
- "__schema748": {
9723
+ "__schema754": {
9587
9724
  "type": "array",
9588
9725
  "items": {
9589
- "$ref": "#/definitions/__schema749"
9726
+ "$ref": "#/definitions/__schema755"
9590
9727
  },
9591
9728
  "markdownDescription": "Matches a list of domains. The syntax is the same as [`domain` in routing rules](https://xtls.github.io/en/config/routing.html#ruleobject).\n"
9592
9729
  },
9593
- "__schema749": {
9730
+ "__schema755": {
9594
9731
  "type": "string"
9595
9732
  },
9596
- "__schema750": {
9733
+ "__schema756": {
9597
9734
  "type": "object",
9598
9735
  "properties": {
9599
9736
  "sendThrough": {
9600
- "$ref": "#/definitions/__schema689"
9737
+ "$ref": "#/definitions/__schema695"
9601
9738
  },
9602
9739
  "tag": {
9603
- "$ref": "#/definitions/__schema691"
9740
+ "$ref": "#/definitions/__schema697"
9604
9741
  },
9605
9742
  "streamSettings": {
9606
- "$ref": "#/definitions/__schema693"
9743
+ "$ref": "#/definitions/__schema699"
9607
9744
  },
9608
9745
  "targetStrategy": {
9609
- "$ref": "#/definitions/__schema694"
9746
+ "$ref": "#/definitions/__schema700"
9610
9747
  },
9611
9748
  "proxySettings": {
9612
- "$ref": "#/definitions/__schema696"
9749
+ "$ref": "#/definitions/__schema702"
9613
9750
  },
9614
9751
  "mux": {
9615
- "$ref": "#/definitions/__schema699"
9752
+ "$ref": "#/definitions/__schema705"
9616
9753
  },
9617
9754
  "protocol": {
9618
- "$ref": "#/definitions/__schema751"
9755
+ "$ref": "#/definitions/__schema757"
9619
9756
  },
9620
9757
  "settings": {
9621
- "$ref": "#/definitions/__schema752"
9758
+ "$ref": "#/definitions/__schema758"
9622
9759
  }
9623
9760
  },
9624
9761
  "required": [
@@ -9628,21 +9765,21 @@
9628
9765
  "additionalProperties": false,
9629
9766
  "markdownDescription": "Client implementation of the Hysteria protocol.\n\nThis page is very simple because the Hysteria protocol is actually composed of a simple proxy control protocol and a tuned QUIC transport implementation. In Xray, the proxy protocol and transport configuration are separated. For more details (such as `brutal`), please refer to transport configuration items [hysteriaSettings](https://xtls.github.io/en/config/transports/hysteria.html) and [FinalMask.quicParams](https://xtls.github.io/en/config/transports/finalmask.html#quicparams).\n\n### TIP\n\nThe `hysteria protocol` itself has no authentication. When using with a non `hysteria` transport layer, it will be unable to proxy `udp`, and using it with other transport layers is not recommended.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/hysteria.html)\n"
9630
9767
  },
9631
- "__schema751": {
9768
+ "__schema757": {
9632
9769
  "type": "string",
9633
9770
  "const": "hysteria"
9634
9771
  },
9635
- "__schema752": {
9772
+ "__schema758": {
9636
9773
  "type": "object",
9637
9774
  "properties": {
9638
9775
  "version": {
9639
- "$ref": "#/definitions/__schema753"
9776
+ "$ref": "#/definitions/__schema759"
9640
9777
  },
9641
9778
  "address": {
9642
- "$ref": "#/definitions/__schema754"
9779
+ "$ref": "#/definitions/__schema760"
9643
9780
  },
9644
9781
  "port": {
9645
- "$ref": "#/definitions/__schema755"
9782
+ "$ref": "#/definitions/__schema761"
9646
9783
  }
9647
9784
  },
9648
9785
  "required": [
@@ -9653,16 +9790,16 @@
9653
9790
  "additionalProperties": false,
9654
9791
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
9655
9792
  },
9656
- "__schema753": {
9793
+ "__schema759": {
9657
9794
  "type": "number",
9658
9795
  "const": 2,
9659
9796
  "markdownDescription": "Hysteria version, must be 2.\n"
9660
9797
  },
9661
- "__schema754": {
9798
+ "__schema760": {
9662
9799
  "type": "string",
9663
9800
  "markdownDescription": "Hysteria proxy server address, required.\n"
9664
9801
  },
9665
- "__schema755": {
9802
+ "__schema761": {
9666
9803
  "markdownDescription": "Hysteria proxy server port, required.\n",
9667
9804
  "allOf": [
9668
9805
  {
@@ -9670,32 +9807,32 @@
9670
9807
  }
9671
9808
  ]
9672
9809
  },
9673
- "__schema756": {
9810
+ "__schema762": {
9674
9811
  "type": "object",
9675
9812
  "properties": {
9676
9813
  "sendThrough": {
9677
- "$ref": "#/definitions/__schema689"
9814
+ "$ref": "#/definitions/__schema695"
9678
9815
  },
9679
9816
  "tag": {
9680
- "$ref": "#/definitions/__schema691"
9817
+ "$ref": "#/definitions/__schema697"
9681
9818
  },
9682
9819
  "streamSettings": {
9683
- "$ref": "#/definitions/__schema693"
9820
+ "$ref": "#/definitions/__schema699"
9684
9821
  },
9685
9822
  "targetStrategy": {
9686
- "$ref": "#/definitions/__schema694"
9823
+ "$ref": "#/definitions/__schema700"
9687
9824
  },
9688
9825
  "proxySettings": {
9689
- "$ref": "#/definitions/__schema696"
9826
+ "$ref": "#/definitions/__schema702"
9690
9827
  },
9691
9828
  "mux": {
9692
- "$ref": "#/definitions/__schema699"
9829
+ "$ref": "#/definitions/__schema705"
9693
9830
  },
9694
9831
  "protocol": {
9695
- "$ref": "#/definitions/__schema757"
9832
+ "$ref": "#/definitions/__schema763"
9696
9833
  },
9697
9834
  "settings": {
9698
- "$ref": "#/definitions/__schema758"
9835
+ "$ref": "#/definitions/__schema764"
9699
9836
  }
9700
9837
  },
9701
9838
  "required": [
@@ -9705,15 +9842,15 @@
9705
9842
  "additionalProperties": false,
9706
9843
  "markdownDescription": "Loopback is an outbound data protocol. Its function is to re-inject data sent through this outbound back into the routing inbound, allowing the data to be processed by the routing system again without leaving Xray-core.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/loopback.html)\n"
9707
9844
  },
9708
- "__schema757": {
9845
+ "__schema763": {
9709
9846
  "type": "string",
9710
9847
  "const": "loopback"
9711
9848
  },
9712
- "__schema758": {
9849
+ "__schema764": {
9713
9850
  "type": "object",
9714
9851
  "properties": {
9715
9852
  "inboundTag": {
9716
- "$ref": "#/definitions/__schema759"
9853
+ "$ref": "#/definitions/__schema765"
9717
9854
  }
9718
9855
  },
9719
9856
  "required": [
@@ -9722,36 +9859,36 @@
9722
9859
  "additionalProperties": false,
9723
9860
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
9724
9861
  },
9725
- "__schema759": {
9862
+ "__schema765": {
9726
9863
  "type": "string",
9727
9864
  "markdownDescription": "The inbound protocol identifier used for re-routing.\n\nThis identifier can be used for `inboundTag` in routing rules, indicating that data from this outbound can be processed again by the corresponding routing rules.\n"
9728
9865
  },
9729
- "__schema760": {
9866
+ "__schema766": {
9730
9867
  "type": "object",
9731
9868
  "properties": {
9732
9869
  "sendThrough": {
9733
- "$ref": "#/definitions/__schema689"
9870
+ "$ref": "#/definitions/__schema695"
9734
9871
  },
9735
9872
  "tag": {
9736
- "$ref": "#/definitions/__schema691"
9873
+ "$ref": "#/definitions/__schema697"
9737
9874
  },
9738
9875
  "streamSettings": {
9739
- "$ref": "#/definitions/__schema693"
9876
+ "$ref": "#/definitions/__schema699"
9740
9877
  },
9741
9878
  "targetStrategy": {
9742
- "$ref": "#/definitions/__schema694"
9879
+ "$ref": "#/definitions/__schema700"
9743
9880
  },
9744
9881
  "proxySettings": {
9745
- "$ref": "#/definitions/__schema696"
9882
+ "$ref": "#/definitions/__schema702"
9746
9883
  },
9747
9884
  "mux": {
9748
- "$ref": "#/definitions/__schema699"
9885
+ "$ref": "#/definitions/__schema705"
9749
9886
  },
9750
9887
  "protocol": {
9751
- "$ref": "#/definitions/__schema761"
9888
+ "$ref": "#/definitions/__schema767"
9752
9889
  },
9753
9890
  "settings": {
9754
- "$ref": "#/definitions/__schema762"
9891
+ "$ref": "#/definitions/__schema768"
9755
9892
  }
9756
9893
  },
9757
9894
  "required": [
@@ -9761,14 +9898,14 @@
9761
9898
  "additionalProperties": false,
9762
9899
  "markdownDescription": "The [Shadowsocks](https://en.wikipedia.org/wiki/Shadowsocks) protocol, compatible with most other version implementations.\n\nCurrent compatibility is as follows:\n\n- Supports TCP and UDP packet forwarding, where UDP can be optionally disabled;\n- Recommended encryption methods:\n - 2022-blake3-aes-128-gcm\n - 2022-blake3-aes-256-gcm\n - 2022-blake3-chacha20-poly1305\n- Other encryption methods:\n - aes-256-gcm\n - aes-128-gcm\n - chacha20-poly1305 (or chacha20-ietf-poly1305)\n - xchacha20-poly1305 (or xchacha20-ietf-poly1305)\n - none (or plain)\n\nThe Shadowsocks 2022 new protocol format improves performance and includes complete replay protection, resolving the following security issues of the old protocol:\n\n- [Severe vulnerabilities in the design of Shadowsocks AEAD encryption, unable to guarantee communication reliability](https://github.com/shadowsocks/shadowsocks-org/issues/183)\n- The false positive rate of the original TCP replay filter increases over time\n- No UDP replay protection\n- TCP behavior that can be used for active probing\n\n### DANGER\n\nUnder the \"none\" encryption method, traffic will be transmitted in plain text. To ensure security, do not use it on public networks.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/shadowsocks.html)\n"
9763
9900
  },
9764
- "__schema761": {
9901
+ "__schema767": {
9765
9902
  "type": "string",
9766
9903
  "const": "shadowsocks"
9767
9904
  },
9768
- "__schema762": {
9905
+ "__schema768": {
9769
9906
  "anyOf": [
9770
9907
  {
9771
- "$ref": "#/definitions/__schema763"
9908
+ "$ref": "#/definitions/__schema769"
9772
9909
  },
9773
9910
  {
9774
9911
  "type": "object",
@@ -9776,7 +9913,7 @@
9776
9913
  "servers": {
9777
9914
  "type": "array",
9778
9915
  "items": {
9779
- "$ref": "#/definitions/__schema763"
9916
+ "$ref": "#/definitions/__schema769"
9780
9917
  }
9781
9918
  }
9782
9919
  },
@@ -9787,7 +9924,7 @@
9787
9924
  }
9788
9925
  ]
9789
9926
  },
9790
- "__schema763": {
9927
+ "__schema769": {
9791
9928
  "type": "object",
9792
9929
  "properties": {
9793
9930
  "address": {
@@ -9806,7 +9943,7 @@
9806
9943
  "markdownDescription": "Email address, optional, used to identify the user.\n",
9807
9944
  "allOf": [
9808
9945
  {
9809
- "$ref": "#/definitions/__schema764"
9946
+ "$ref": "#/definitions/__schema770"
9810
9947
  }
9811
9948
  ]
9812
9949
  },
@@ -9815,17 +9952,17 @@
9815
9952
  "markdownDescription": "Shadowsocks authentication password. Required.\n\n- Shadowsocks 2022\n\nUses a pre-shared key similar to WireGuard as the password.\n\nUse `openssl rand -base64 <length>` to generate a key compatible with shadowsocks-rust. The length depends on the encryption method used.\n\n| Encryption Method | Key Length |\n| ----------------------------- | ---------- |\n| 2022-blake3-aes-128-gcm | 16 |\n| 2022-blake3-aes-256-gcm | 32 |\n| 2022-blake3-chacha20-poly1305 | 32 |\n\nIn the Go implementation, 32-byte keys always work.\n\n- Other encryption methods\n\nAny string. There is no limit on password length, but short passwords are more likely to be cracked. It is recommended to use passwords of 16 characters or longer.\n",
9816
9953
  "allOf": [
9817
9954
  {
9818
- "$ref": "#/definitions/__schema765"
9955
+ "$ref": "#/definitions/__schema771"
9819
9956
  }
9820
9957
  ]
9821
9958
  },
9822
9959
  "method": {
9823
9960
  "anyOf": [
9824
9961
  {
9825
- "$ref": "#/definitions/__schema604"
9962
+ "$ref": "#/definitions/__schema606"
9826
9963
  },
9827
9964
  {
9828
- "$ref": "#/definitions/__schema609"
9965
+ "$ref": "#/definitions/__schema614"
9829
9966
  }
9830
9967
  ],
9831
9968
  "markdownDescription": "Shadowsocks encryption method. Required.\n\nRecommended encryption methods:\n\n- 2022-blake3-aes-128-gcm\n- 2022-blake3-aes-256-gcm\n- 2022-blake3-chacha20-poly1305\n\nOther encryption methods:\n\n- aes-256-gcm\n- aes-128-gcm\n- chacha20-poly1305 (or chacha20-ietf-poly1305)\n- xchacha20-poly1305 (or xchacha20-ietf-poly1305)\n- none (or plain)\n"
@@ -9834,7 +9971,7 @@
9834
9971
  "markdownDescription": "Enable `udp over tcp`.\n",
9835
9972
  "allOf": [
9836
9973
  {
9837
- "$ref": "#/definitions/__schema766"
9974
+ "$ref": "#/definitions/__schema772"
9838
9975
  }
9839
9976
  ]
9840
9977
  },
@@ -9842,7 +9979,7 @@
9842
9979
  "markdownDescription": "Implementation version of `UDP over TCP`.\n\nCurrent optional values: `1`, `2`.\n",
9843
9980
  "allOf": [
9844
9981
  {
9845
- "$ref": "#/definitions/__schema767"
9982
+ "$ref": "#/definitions/__schema773"
9846
9983
  }
9847
9984
  ]
9848
9985
  },
@@ -9850,7 +9987,7 @@
9850
9987
  "markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the `level` value in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
9851
9988
  "allOf": [
9852
9989
  {
9853
- "$ref": "#/definitions/__schema768"
9990
+ "$ref": "#/definitions/__schema774"
9854
9991
  }
9855
9992
  ]
9856
9993
  }
@@ -9863,17 +10000,17 @@
9863
10000
  ],
9864
10001
  "additionalProperties": false
9865
10002
  },
9866
- "__schema764": {
10003
+ "__schema770": {
9867
10004
  "type": "string"
9868
10005
  },
9869
- "__schema765": {
10006
+ "__schema771": {
9870
10007
  "type": "string"
9871
10008
  },
9872
- "__schema766": {
10009
+ "__schema772": {
9873
10010
  "default": true,
9874
10011
  "type": "boolean"
9875
10012
  },
9876
- "__schema767": {
10013
+ "__schema773": {
9877
10014
  "default": 2,
9878
10015
  "anyOf": [
9879
10016
  {
@@ -9886,38 +10023,38 @@
9886
10023
  }
9887
10024
  ]
9888
10025
  },
9889
- "__schema768": {
10026
+ "__schema774": {
9890
10027
  "default": 0,
9891
10028
  "type": "integer",
9892
10029
  "minimum": -9007199254740991,
9893
10030
  "maximum": 9007199254740991
9894
10031
  },
9895
- "__schema769": {
10032
+ "__schema775": {
9896
10033
  "type": "object",
9897
10034
  "properties": {
9898
10035
  "sendThrough": {
9899
- "$ref": "#/definitions/__schema689"
10036
+ "$ref": "#/definitions/__schema695"
9900
10037
  },
9901
10038
  "tag": {
9902
- "$ref": "#/definitions/__schema691"
10039
+ "$ref": "#/definitions/__schema697"
9903
10040
  },
9904
10041
  "streamSettings": {
9905
- "$ref": "#/definitions/__schema693"
10042
+ "$ref": "#/definitions/__schema699"
9906
10043
  },
9907
10044
  "targetStrategy": {
9908
- "$ref": "#/definitions/__schema694"
10045
+ "$ref": "#/definitions/__schema700"
9909
10046
  },
9910
10047
  "proxySettings": {
9911
- "$ref": "#/definitions/__schema696"
10048
+ "$ref": "#/definitions/__schema702"
9912
10049
  },
9913
10050
  "mux": {
9914
- "$ref": "#/definitions/__schema699"
10051
+ "$ref": "#/definitions/__schema705"
9915
10052
  },
9916
10053
  "protocol": {
9917
- "$ref": "#/definitions/__schema770"
10054
+ "$ref": "#/definitions/__schema776"
9918
10055
  },
9919
10056
  "settings": {
9920
- "$ref": "#/definitions/__schema771"
10057
+ "$ref": "#/definitions/__schema777"
9921
10058
  }
9922
10059
  },
9923
10060
  "required": [
@@ -9926,14 +10063,14 @@
9926
10063
  "additionalProperties": false,
9927
10064
  "markdownDescription": "Standard Socks protocol implementation, compatible with Socks 5.\n\n### DANGER\n\n**The Socks protocol does not encrypt transmission and is not suitable for transmission over the public internet.**\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/socks.html)\n"
9928
10065
  },
9929
- "__schema770": {
10066
+ "__schema776": {
9930
10067
  "type": "string",
9931
10068
  "const": "socks"
9932
10069
  },
9933
- "__schema771": {
10070
+ "__schema777": {
9934
10071
  "anyOf": [
9935
10072
  {
9936
- "$ref": "#/definitions/__schema772"
10073
+ "$ref": "#/definitions/__schema778"
9937
10074
  },
9938
10075
  {
9939
10076
  "type": "object",
@@ -9941,7 +10078,7 @@
9941
10078
  "servers": {
9942
10079
  "type": "array",
9943
10080
  "items": {
9944
- "$ref": "#/definitions/__schema772"
10081
+ "$ref": "#/definitions/__schema778"
9945
10082
  }
9946
10083
  }
9947
10084
  },
@@ -9952,26 +10089,26 @@
9952
10089
  }
9953
10090
  ]
9954
10091
  },
9955
- "__schema772": {
10092
+ "__schema778": {
9956
10093
  "type": "object",
9957
10094
  "properties": {
9958
10095
  "address": {
9959
- "$ref": "#/definitions/__schema773"
10096
+ "$ref": "#/definitions/__schema779"
9960
10097
  },
9961
10098
  "port": {
9962
- "$ref": "#/definitions/__schema774"
10099
+ "$ref": "#/definitions/__schema780"
9963
10100
  },
9964
10101
  "user": {
9965
- "$ref": "#/definitions/__schema775"
10102
+ "$ref": "#/definitions/__schema781"
9966
10103
  },
9967
10104
  "pass": {
9968
- "$ref": "#/definitions/__schema777"
10105
+ "$ref": "#/definitions/__schema783"
9969
10106
  },
9970
10107
  "level": {
9971
- "$ref": "#/definitions/__schema779"
10108
+ "$ref": "#/definitions/__schema785"
9972
10109
  },
9973
10110
  "email": {
9974
- "$ref": "#/definitions/__schema781"
10111
+ "$ref": "#/definitions/__schema787"
9975
10112
  }
9976
10113
  },
9977
10114
  "required": [
@@ -9981,11 +10118,11 @@
9981
10118
  "additionalProperties": false,
9982
10119
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
9983
10120
  },
9984
- "__schema773": {
10121
+ "__schema779": {
9985
10122
  "type": "string",
9986
10123
  "markdownDescription": "Server address. Required.\n\n### TIP\n\nOnly connections to Socks 5 servers are supported.\n"
9987
10124
  },
9988
- "__schema774": {
10125
+ "__schema780": {
9989
10126
  "markdownDescription": "Server port. Required.\n",
9990
10127
  "allOf": [
9991
10128
  {
@@ -9993,79 +10130,79 @@
9993
10130
  }
9994
10131
  ]
9995
10132
  },
9996
- "__schema775": {
10133
+ "__schema781": {
9997
10134
  "markdownDescription": "Username, string type. Required if the remote server requires authentication; otherwise, do not include this item.\n",
9998
10135
  "allOf": [
9999
10136
  {
10000
- "$ref": "#/definitions/__schema776"
10137
+ "$ref": "#/definitions/__schema782"
10001
10138
  }
10002
10139
  ]
10003
10140
  },
10004
- "__schema776": {
10141
+ "__schema782": {
10005
10142
  "type": "string"
10006
10143
  },
10007
- "__schema777": {
10144
+ "__schema783": {
10008
10145
  "markdownDescription": "Password, string type. Required if the remote server requires authentication; otherwise, do not include this item.\n",
10009
10146
  "allOf": [
10010
10147
  {
10011
- "$ref": "#/definitions/__schema778"
10148
+ "$ref": "#/definitions/__schema784"
10012
10149
  }
10013
10150
  ]
10014
10151
  },
10015
- "__schema778": {
10152
+ "__schema784": {
10016
10153
  "type": "string"
10017
10154
  },
10018
- "__schema779": {
10155
+ "__schema785": {
10019
10156
  "markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `userLevel` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
10020
10157
  "allOf": [
10021
10158
  {
10022
- "$ref": "#/definitions/__schema780"
10159
+ "$ref": "#/definitions/__schema786"
10023
10160
  }
10024
10161
  ]
10025
10162
  },
10026
- "__schema780": {
10163
+ "__schema786": {
10027
10164
  "default": 0,
10028
10165
  "type": "integer",
10029
10166
  "minimum": -9007199254740991,
10030
10167
  "maximum": 9007199254740991
10031
10168
  },
10032
- "__schema781": {
10169
+ "__schema787": {
10033
10170
  "markdownDescription": "Email address, used to identify the user.\n",
10034
10171
  "allOf": [
10035
10172
  {
10036
- "$ref": "#/definitions/__schema782"
10173
+ "$ref": "#/definitions/__schema788"
10037
10174
  }
10038
10175
  ]
10039
10176
  },
10040
- "__schema782": {
10177
+ "__schema788": {
10041
10178
  "type": "string"
10042
10179
  },
10043
- "__schema783": {
10180
+ "__schema789": {
10044
10181
  "type": "object",
10045
10182
  "properties": {
10046
10183
  "sendThrough": {
10047
- "$ref": "#/definitions/__schema689"
10184
+ "$ref": "#/definitions/__schema695"
10048
10185
  },
10049
10186
  "tag": {
10050
- "$ref": "#/definitions/__schema691"
10187
+ "$ref": "#/definitions/__schema697"
10051
10188
  },
10052
10189
  "streamSettings": {
10053
- "$ref": "#/definitions/__schema693"
10190
+ "$ref": "#/definitions/__schema699"
10054
10191
  },
10055
10192
  "targetStrategy": {
10056
- "$ref": "#/definitions/__schema694"
10193
+ "$ref": "#/definitions/__schema700"
10057
10194
  },
10058
10195
  "proxySettings": {
10059
- "$ref": "#/definitions/__schema696"
10196
+ "$ref": "#/definitions/__schema702"
10060
10197
  },
10061
10198
  "mux": {
10062
- "$ref": "#/definitions/__schema699"
10199
+ "$ref": "#/definitions/__schema705"
10063
10200
  },
10064
10201
  "protocol": {
10065
- "$ref": "#/definitions/__schema784"
10202
+ "$ref": "#/definitions/__schema790"
10066
10203
  },
10067
10204
  "settings": {
10068
- "$ref": "#/definitions/__schema785"
10205
+ "$ref": "#/definitions/__schema791"
10069
10206
  }
10070
10207
  },
10071
10208
  "required": [
@@ -10075,22 +10212,22 @@
10075
10212
  "additionalProperties": false,
10076
10213
  "markdownDescription": "[Trojan](https://trojan-gfw.github.io/trojan/protocol) protocol.\n\n### DANGER\n\nTrojan is designed to work over a correctly configured encrypted TLS tunnel.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/trojan.html)\n"
10077
10214
  },
10078
- "__schema784": {
10215
+ "__schema790": {
10079
10216
  "type": "string",
10080
10217
  "const": "trojan"
10081
10218
  },
10082
- "__schema785": {
10219
+ "__schema791": {
10083
10220
  "anyOf": [
10084
10221
  {
10085
- "$ref": "#/definitions/__schema786"
10222
+ "$ref": "#/definitions/__schema792"
10086
10223
  },
10087
10224
  {
10088
- "$ref": "#/definitions/__schema789"
10225
+ "$ref": "#/definitions/__schema795"
10089
10226
  }
10090
10227
  ],
10091
10228
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
10092
10229
  },
10093
- "__schema786": {
10230
+ "__schema792": {
10094
10231
  "type": "object",
10095
10232
  "properties": {
10096
10233
  "address": {
@@ -10109,7 +10246,7 @@
10109
10246
  "markdownDescription": "Email address. Optional, used to identify the user.\n",
10110
10247
  "allOf": [
10111
10248
  {
10112
- "$ref": "#/definitions/__schema787"
10249
+ "$ref": "#/definitions/__schema793"
10113
10250
  }
10114
10251
  ]
10115
10252
  },
@@ -10121,7 +10258,7 @@
10121
10258
  "markdownDescription": "User level. Connections will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
10122
10259
  "allOf": [
10123
10260
  {
10124
- "$ref": "#/definitions/__schema788"
10261
+ "$ref": "#/definitions/__schema794"
10125
10262
  }
10126
10263
  ]
10127
10264
  }
@@ -10132,22 +10269,22 @@
10132
10269
  ],
10133
10270
  "additionalProperties": false
10134
10271
  },
10135
- "__schema787": {
10272
+ "__schema793": {
10136
10273
  "type": "string"
10137
10274
  },
10138
- "__schema788": {
10275
+ "__schema794": {
10139
10276
  "default": 0,
10140
10277
  "type": "integer",
10141
10278
  "minimum": -9007199254740991,
10142
10279
  "maximum": 9007199254740991
10143
10280
  },
10144
- "__schema789": {
10281
+ "__schema795": {
10145
10282
  "type": "object",
10146
10283
  "properties": {
10147
10284
  "servers": {
10148
10285
  "type": "array",
10149
10286
  "items": {
10150
- "$ref": "#/definitions/__schema786"
10287
+ "$ref": "#/definitions/__schema792"
10151
10288
  },
10152
10289
  "markdownDescription": "An array of Trojan server configurations.\n"
10153
10290
  }
@@ -10157,32 +10294,32 @@
10157
10294
  ],
10158
10295
  "additionalProperties": false
10159
10296
  },
10160
- "__schema790": {
10297
+ "__schema796": {
10161
10298
  "type": "object",
10162
10299
  "properties": {
10163
10300
  "sendThrough": {
10164
- "$ref": "#/definitions/__schema689"
10301
+ "$ref": "#/definitions/__schema695"
10165
10302
  },
10166
10303
  "tag": {
10167
- "$ref": "#/definitions/__schema691"
10304
+ "$ref": "#/definitions/__schema697"
10168
10305
  },
10169
10306
  "streamSettings": {
10170
- "$ref": "#/definitions/__schema693"
10307
+ "$ref": "#/definitions/__schema699"
10171
10308
  },
10172
10309
  "targetStrategy": {
10173
- "$ref": "#/definitions/__schema694"
10310
+ "$ref": "#/definitions/__schema700"
10174
10311
  },
10175
10312
  "proxySettings": {
10176
- "$ref": "#/definitions/__schema696"
10313
+ "$ref": "#/definitions/__schema702"
10177
10314
  },
10178
10315
  "mux": {
10179
- "$ref": "#/definitions/__schema699"
10316
+ "$ref": "#/definitions/__schema705"
10180
10317
  },
10181
10318
  "protocol": {
10182
- "$ref": "#/definitions/__schema791"
10319
+ "$ref": "#/definitions/__schema797"
10183
10320
  },
10184
10321
  "settings": {
10185
- "$ref": "#/definitions/__schema792"
10322
+ "$ref": "#/definitions/__schema798"
10186
10323
  }
10187
10324
  },
10188
10325
  "required": [
@@ -10192,33 +10329,44 @@
10192
10329
  "additionalProperties": false,
10193
10330
  "markdownDescription": "VLESS is a stateless lightweight transport protocol. It consists of inbound and outbound parts and can serve as a bridge between the Xray client and server.\n\nUnlike [VMess](https://xtls.github.io/en/config/outbounds/vmess.html), VLESS does not depend on system time. The authentication method is also UUID.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/vless.html)\n"
10194
10331
  },
10195
- "__schema791": {
10332
+ "__schema797": {
10196
10333
  "type": "string",
10197
10334
  "const": "vless"
10198
10335
  },
10199
- "__schema792": {
10336
+ "__schema798": {
10337
+ "anyOf": [
10338
+ {
10339
+ "$ref": "#/definitions/__schema799"
10340
+ },
10341
+ {
10342
+ "$ref": "#/definitions/__schema811"
10343
+ }
10344
+ ],
10345
+ "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
10346
+ },
10347
+ "__schema799": {
10200
10348
  "type": "object",
10201
10349
  "properties": {
10202
10350
  "address": {
10203
- "$ref": "#/definitions/__schema793"
10351
+ "$ref": "#/definitions/__schema800"
10204
10352
  },
10205
10353
  "port": {
10206
- "$ref": "#/definitions/__schema794"
10354
+ "$ref": "#/definitions/__schema801"
10207
10355
  },
10208
10356
  "id": {
10209
- "$ref": "#/definitions/__schema795"
10357
+ "$ref": "#/definitions/__schema802"
10210
10358
  },
10211
10359
  "encryption": {
10212
- "$ref": "#/definitions/__schema796"
10360
+ "$ref": "#/definitions/__schema803"
10213
10361
  },
10214
10362
  "flow": {
10215
- "$ref": "#/definitions/__schema798"
10363
+ "$ref": "#/definitions/__schema805"
10216
10364
  },
10217
10365
  "level": {
10218
- "$ref": "#/definitions/__schema800"
10366
+ "$ref": "#/definitions/__schema807"
10219
10367
  },
10220
10368
  "reverse": {
10221
- "$ref": "#/definitions/__schema802"
10369
+ "$ref": "#/definitions/__schema809"
10222
10370
  }
10223
10371
  },
10224
10372
  "required": [
@@ -10230,11 +10378,11 @@
10230
10378
  "additionalProperties": false,
10231
10379
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
10232
10380
  },
10233
- "__schema793": {
10381
+ "__schema800": {
10234
10382
  "type": "string",
10235
10383
  "markdownDescription": "Server address, points to the server. Supports domain names, IPv4, and IPv6.\n"
10236
10384
  },
10237
- "__schema794": {
10385
+ "__schema801": {
10238
10386
  "markdownDescription": "Server port, usually the same as the port the server is listening on.\n",
10239
10387
  "allOf": [
10240
10388
  {
@@ -10242,31 +10390,31 @@
10242
10390
  }
10243
10391
  ]
10244
10392
  },
10245
- "__schema795": {
10393
+ "__schema802": {
10246
10394
  "type": "string",
10247
10395
  "markdownDescription": "User ID for VLESS. It can be any string less than 30 bytes, or a valid UUID. A custom string and its mapped UUID are equivalent.\n\nThe mapping standard is described in [VLESS UUID Mapping Standard: Mapping Custom Strings to UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nYou can use the command `xray uuid -i \"custom string\"` to generate the UUID mapped from a custom string, or use the command `xray uuid` to generate a random UUID.\n"
10248
10396
  },
10249
- "__schema796": {
10397
+ "__schema803": {
10250
10398
  "default": "none",
10251
10399
  "markdownDescription": "[VLESS Encryption](https://github.com/XTLS/Xray-core/pull/5067) settings. Cannot be left empty; to disable, explicitly set to `\"none\"`.\n\nIt is recommended for most users to use the `xray vlessenc` command to automatically generate this field to avoid configuration mistakes. The detailed configuration below is recommended only for advanced users.\n\nIts format is a detailed configuration string of fields connected by `.`. For example: `mlkem768x25519plus.native.0rtt.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`. This document will refer to the separate parts separated by dots as \"blocks\".\n\n- **The 1st block** is the handshake method. Currently, there is only `mlkem768x25519plus`. Requires consistency between server and client.\n- **The 2nd block** is the encryption method. Options are `native`/`xorpub`/`random`, corresponding to: raw format packet / raw format + obfuscated public key part / fully random numbers (similar to VMESS/Shadowsocks). Requires consistency between server and client.\n- **The 3rd block** is session resumption. Choosing `0rtt` will follow the server settings to attempt to use previously generated tickets to skip the handshake for fast connection (can be manually disabled by the server). Choosing `1rtt` will force a 1-RTT handshake process. The meaning here differs from the server setting; see VLESS Inbound `decryption` settings for details.\n\nFollowing blocks are **padding**. After the connection is established, the client sends some garbage data to obfuscate length characteristics. It does not need to be the same as the server (the corresponding part in the inbound is the padding sent from the server to the client). It is a variable-length part with the format `padding.delay.padding` + `(.delay.padding)` x n (multiple padding blocks can be inserted, requiring a delay block between two padding blocks).\n\n- `padding` format is `probability-min-max`. E.g., `100-111-1111` means 100% probability to send a padding of length 111~1111.\n- `delay` format is also `probability-min-max`. E.g., `75-0-111` means 75% probability to wait 0~111 milliseconds.\n\nThe first padding block has special requirements: probability must be 100% and minimum length greater than 0. If no padding exists, the core automatically uses `100-111-1111.75-0-111.50-0-3333` as the padding setting.\n\n**The last block** will be recognized by the core as the parameter used to authenticate the server. It can be generated by `./xray x25519` (using the Password part) or `./xray mlkem768` (using the Client part). It must correspond to the server. `mlkem768` belongs to post-quantum algorithms, preventing (future) client parameter leaks from allowing quantum computers to crack the private key and impersonate the server. This parameter is only used for verification; the handshake process is post-quantum secure regardless, and existing encrypted data cannot be decrypted by future quantum computers.\n",
10252
10400
  "allOf": [
10253
10401
  {
10254
- "$ref": "#/definitions/__schema797"
10402
+ "$ref": "#/definitions/__schema804"
10255
10403
  }
10256
10404
  ]
10257
10405
  },
10258
- "__schema797": {
10406
+ "__schema804": {
10259
10407
  "type": "string"
10260
10408
  },
10261
- "__schema798": {
10409
+ "__schema805": {
10262
10410
  "markdownDescription": "Flow control mode, used to select the XTLS algorithm.\n\nCurrently, the following flow control modes are available in the outbound protocol:\n\n- **No `flow` or empty string**: Use standard TLS proxy.\n- **`xtls-rprx-vision`**: Use XTLS, including inner handshake random padding. Will intercept UDP traffic targeting port 443 (QUIC) to force browsers to use standard HTTPS, increasing traffic that can be Spliced.\n- **`xtls-rprx-vision-udp443`**: Same as `xtls-rprx-vision`, but does not intercept UDP 443. Used when a program forces the use of QUIC and would fail to work if intercepted.\n\nXTLS is available only in the following combinations:\n\n- **TCP+TLS/REALITY**: In this case, if transmitting TLS 1.3, the core will attempt to Splice encrypted data at the bottom layer. If successful, it saves all core IO overhead.\n- **VLESS Encryption**: No underlying transport restrictions. If the underlying transport is not TCP, it only attempts to penetrate Encryption, saving Encryption overhead. If it is TCP, it will still attempt to perform Splice.\n\n### TIP\n\nSplice is a function provided by the Linux Kernel. The system kernel forwards TCP directly, no longer passing through Xray's memory, greatly reducing data copying and CPU context switching.\n\nWhen using Vision mode, Splice is automatically enabled if the following conditions are met:\n\n- Linux environment.\n- Inbound protocol is a pure TCP connection like `Dokodemo door`, `Socks`, `HTTP`, or other inbound protocols using XTLS.\n- Outbound protocol is VLESS + XTLS.\n\nWhen using Splice, the network speed display will lag and will only be counted after the connection is disconnected because the core cannot know the traffic situation while the kernel takes over the connection.\n",
10263
10411
  "allOf": [
10264
10412
  {
10265
- "$ref": "#/definitions/__schema799"
10413
+ "$ref": "#/definitions/__schema806"
10266
10414
  }
10267
10415
  ]
10268
10416
  },
10269
- "__schema799": {
10417
+ "__schema806": {
10270
10418
  "type": "string",
10271
10419
  "enum": [
10272
10420
  "",
@@ -10274,29 +10422,29 @@
10274
10422
  "xtls-rprx-vision-udp443"
10275
10423
  ]
10276
10424
  },
10277
- "__schema800": {
10425
+ "__schema807": {
10278
10426
  "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
10279
10427
  "allOf": [
10280
10428
  {
10281
- "$ref": "#/definitions/__schema801"
10429
+ "$ref": "#/definitions/__schema808"
10282
10430
  }
10283
10431
  ]
10284
10432
  },
10285
- "__schema801": {
10433
+ "__schema808": {
10286
10434
  "default": 0,
10287
10435
  "type": "integer",
10288
10436
  "minimum": -9007199254740991,
10289
10437
  "maximum": 9007199254740991
10290
10438
  },
10291
- "__schema802": {
10439
+ "__schema809": {
10292
10440
  "markdownDescription": "VLESS minimalist reverse proxy configuration. It preserves the real source IP information from the public-facing side.\n\nThe existence of this item indicates that this outbound can be used as a VLESS reverse proxy outbound, and it will automatically establish a connection to the server to register the reverse proxy tunnel.\n\n`tag` is the inbound proxy tag for this reverse proxy. When the server dispatches a reverse proxy request, it enters the routing system from the inbound using this tag, and the routing system routes it to the outbound you need.\n\nThe UUID used must be one that is also configured with `reverse` on the server side (see VLESS Inbound for details).\n\n`sniffing` see [SniffingObject](https://xtls.github.io/en/config/inbound.html#sniffingobject), performs sniffing on requests entering through this reverse proxy.\n\n### TIP\n\nFull tutorial: [VLESS Reverse Proxy Examples](https://xtls.github.io/en/document/level-2/vless_reverse.html)\n",
10293
10441
  "allOf": [
10294
10442
  {
10295
- "$ref": "#/definitions/__schema803"
10443
+ "$ref": "#/definitions/__schema810"
10296
10444
  }
10297
10445
  ]
10298
10446
  },
10299
- "__schema803": {
10447
+ "__schema810": {
10300
10448
  "type": "object",
10301
10449
  "properties": {
10302
10450
  "tag": {
@@ -10316,32 +10464,126 @@
10316
10464
  ],
10317
10465
  "additionalProperties": false
10318
10466
  },
10319
- "__schema804": {
10467
+ "__schema811": {
10468
+ "type": "object",
10469
+ "properties": {
10470
+ "vnext": {
10471
+ "type": "array",
10472
+ "items": {
10473
+ "type": "object",
10474
+ "properties": {
10475
+ "address": {
10476
+ "type": "string",
10477
+ "markdownDescription": "Server address, points to the server. Supports domain names, IPv4, and IPv6.\n"
10478
+ },
10479
+ "port": {
10480
+ "markdownDescription": "Server port, usually the same as the port the server is listening on.\n",
10481
+ "allOf": [
10482
+ {
10483
+ "$ref": "#/definitions/__schema148"
10484
+ }
10485
+ ]
10486
+ },
10487
+ "users": {
10488
+ "type": "array",
10489
+ "items": {
10490
+ "type": "object",
10491
+ "properties": {
10492
+ "id": {
10493
+ "type": "string",
10494
+ "markdownDescription": "User ID for VLESS. It can be any string less than 30 bytes, or a valid UUID. A custom string and its mapped UUID are equivalent.\n\nThe mapping standard is described in [VLESS UUID Mapping Standard: Mapping Custom Strings to UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nYou can use the command `xray uuid -i \"custom string\"` to generate the UUID mapped from a custom string, or use the command `xray uuid` to generate a random UUID.\n"
10495
+ },
10496
+ "encryption": {
10497
+ "default": "none",
10498
+ "markdownDescription": "[VLESS Encryption](https://github.com/XTLS/Xray-core/pull/5067) settings. Cannot be left empty; to disable, explicitly set to `\"none\"`.\n\nIt is recommended for most users to use the `xray vlessenc` command to automatically generate this field to avoid configuration mistakes. The detailed configuration below is recommended only for advanced users.\n\nIts format is a detailed configuration string of fields connected by `.`. For example: `mlkem768x25519plus.native.0rtt.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`. This document will refer to the separate parts separated by dots as \"blocks\".\n\n- **The 1st block** is the handshake method. Currently, there is only `mlkem768x25519plus`. Requires consistency between server and client.\n- **The 2nd block** is the encryption method. Options are `native`/`xorpub`/`random`, corresponding to: raw format packet / raw format + obfuscated public key part / fully random numbers (similar to VMESS/Shadowsocks). Requires consistency between server and client.\n- **The 3rd block** is session resumption. Choosing `0rtt` will follow the server settings to attempt to use previously generated tickets to skip the handshake for fast connection (can be manually disabled by the server). Choosing `1rtt` will force a 1-RTT handshake process. The meaning here differs from the server setting; see VLESS Inbound `decryption` settings for details.\n\nFollowing blocks are **padding**. After the connection is established, the client sends some garbage data to obfuscate length characteristics. It does not need to be the same as the server (the corresponding part in the inbound is the padding sent from the server to the client). It is a variable-length part with the format `padding.delay.padding` + `(.delay.padding)` x n (multiple padding blocks can be inserted, requiring a delay block between two padding blocks).\n\n- `padding` format is `probability-min-max`. E.g., `100-111-1111` means 100% probability to send a padding of length 111~1111.\n- `delay` format is also `probability-min-max`. E.g., `75-0-111` means 75% probability to wait 0~111 milliseconds.\n\nThe first padding block has special requirements: probability must be 100% and minimum length greater than 0. If no padding exists, the core automatically uses `100-111-1111.75-0-111.50-0-3333` as the padding setting.\n\n**The last block** will be recognized by the core as the parameter used to authenticate the server. It can be generated by `./xray x25519` (using the Password part) or `./xray mlkem768` (using the Client part). It must correspond to the server. `mlkem768` belongs to post-quantum algorithms, preventing (future) client parameter leaks from allowing quantum computers to crack the private key and impersonate the server. This parameter is only used for verification; the handshake process is post-quantum secure regardless, and existing encrypted data cannot be decrypted by future quantum computers.\n",
10499
+ "allOf": [
10500
+ {
10501
+ "$ref": "#/definitions/__schema812"
10502
+ }
10503
+ ]
10504
+ },
10505
+ "flow": {
10506
+ "markdownDescription": "Flow control mode, used to select the XTLS algorithm.\n\nCurrently, the following flow control modes are available in the outbound protocol:\n\n- **No `flow` or empty string**: Use standard TLS proxy.\n- **`xtls-rprx-vision`**: Use XTLS, including inner handshake random padding. Will intercept UDP traffic targeting port 443 (QUIC) to force browsers to use standard HTTPS, increasing traffic that can be Spliced.\n- **`xtls-rprx-vision-udp443`**: Same as `xtls-rprx-vision`, but does not intercept UDP 443. Used when a program forces the use of QUIC and would fail to work if intercepted.\n\nXTLS is available only in the following combinations:\n\n- **TCP+TLS/REALITY**: In this case, if transmitting TLS 1.3, the core will attempt to Splice encrypted data at the bottom layer. If successful, it saves all core IO overhead.\n- **VLESS Encryption**: No underlying transport restrictions. If the underlying transport is not TCP, it only attempts to penetrate Encryption, saving Encryption overhead. If it is TCP, it will still attempt to perform Splice.\n\n### TIP\n\nSplice is a function provided by the Linux Kernel. The system kernel forwards TCP directly, no longer passing through Xray's memory, greatly reducing data copying and CPU context switching.\n\nWhen using Vision mode, Splice is automatically enabled if the following conditions are met:\n\n- Linux environment.\n- Inbound protocol is a pure TCP connection like `Dokodemo door`, `Socks`, `HTTP`, or other inbound protocols using XTLS.\n- Outbound protocol is VLESS + XTLS.\n\nWhen using Splice, the network speed display will lag and will only be counted after the connection is disconnected because the core cannot know the traffic situation while the kernel takes over the connection.\n",
10507
+ "allOf": [
10508
+ {
10509
+ "$ref": "#/definitions/__schema813"
10510
+ }
10511
+ ]
10512
+ },
10513
+ "level": {
10514
+ "markdownDescription": "User level. The connection will use the [Local Policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, it defaults to 0.\n",
10515
+ "allOf": [
10516
+ {
10517
+ "$ref": "#/definitions/__schema814"
10518
+ }
10519
+ ]
10520
+ }
10521
+ },
10522
+ "required": [
10523
+ "id",
10524
+ "encryption"
10525
+ ],
10526
+ "additionalProperties": false
10527
+ }
10528
+ }
10529
+ },
10530
+ "required": [
10531
+ "address",
10532
+ "port",
10533
+ "users"
10534
+ ],
10535
+ "additionalProperties": false
10536
+ }
10537
+ }
10538
+ },
10539
+ "required": [
10540
+ "vnext"
10541
+ ],
10542
+ "additionalProperties": false
10543
+ },
10544
+ "__schema812": {
10545
+ "type": "string"
10546
+ },
10547
+ "__schema813": {
10548
+ "type": "string",
10549
+ "enum": [
10550
+ "",
10551
+ "xtls-rprx-vision",
10552
+ "xtls-rprx-vision-udp443"
10553
+ ]
10554
+ },
10555
+ "__schema814": {
10556
+ "default": 0,
10557
+ "type": "integer",
10558
+ "minimum": -9007199254740991,
10559
+ "maximum": 9007199254740991
10560
+ },
10561
+ "__schema815": {
10320
10562
  "type": "object",
10321
10563
  "properties": {
10322
10564
  "sendThrough": {
10323
- "$ref": "#/definitions/__schema689"
10565
+ "$ref": "#/definitions/__schema695"
10324
10566
  },
10325
10567
  "tag": {
10326
- "$ref": "#/definitions/__schema691"
10568
+ "$ref": "#/definitions/__schema697"
10327
10569
  },
10328
10570
  "streamSettings": {
10329
- "$ref": "#/definitions/__schema693"
10571
+ "$ref": "#/definitions/__schema699"
10330
10572
  },
10331
10573
  "targetStrategy": {
10332
- "$ref": "#/definitions/__schema694"
10574
+ "$ref": "#/definitions/__schema700"
10333
10575
  },
10334
10576
  "proxySettings": {
10335
- "$ref": "#/definitions/__schema696"
10577
+ "$ref": "#/definitions/__schema702"
10336
10578
  },
10337
10579
  "mux": {
10338
- "$ref": "#/definitions/__schema699"
10580
+ "$ref": "#/definitions/__schema705"
10339
10581
  },
10340
10582
  "protocol": {
10341
- "$ref": "#/definitions/__schema805"
10583
+ "$ref": "#/definitions/__schema816"
10342
10584
  },
10343
10585
  "settings": {
10344
- "$ref": "#/definitions/__schema806"
10586
+ "$ref": "#/definitions/__schema817"
10345
10587
  }
10346
10588
  },
10347
10589
  "required": [
@@ -10351,30 +10593,30 @@
10351
10593
  "additionalProperties": false,
10352
10594
  "markdownDescription": "[VMess](https://xtls.github.io/en/development/protocols/vmess.html) is an encrypted transport protocol, usually serving as a bridge between the Xray client and server.\n\n### DANGER\n\nVMess depends on system time. Please ensure that the UTC time of the system running Xray is within 120 seconds of the actual time, independent of the time zone. On Linux systems, you can install the `ntp` service to automatically synchronize the system time.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/vmess.html)\n"
10353
10595
  },
10354
- "__schema805": {
10596
+ "__schema816": {
10355
10597
  "type": "string",
10356
10598
  "const": "vmess"
10357
10599
  },
10358
- "__schema806": {
10600
+ "__schema817": {
10359
10601
  "type": "object",
10360
10602
  "properties": {
10361
10603
  "address": {
10362
- "$ref": "#/definitions/__schema807"
10604
+ "$ref": "#/definitions/__schema818"
10363
10605
  },
10364
10606
  "port": {
10365
- "$ref": "#/definitions/__schema808"
10607
+ "$ref": "#/definitions/__schema819"
10366
10608
  },
10367
10609
  "id": {
10368
- "$ref": "#/definitions/__schema809"
10610
+ "$ref": "#/definitions/__schema820"
10369
10611
  },
10370
10612
  "security": {
10371
- "$ref": "#/definitions/__schema810"
10613
+ "$ref": "#/definitions/__schema821"
10372
10614
  },
10373
10615
  "level": {
10374
- "$ref": "#/definitions/__schema812"
10616
+ "$ref": "#/definitions/__schema823"
10375
10617
  },
10376
10618
  "experiments": {
10377
- "$ref": "#/definitions/__schema814"
10619
+ "$ref": "#/definitions/__schema825"
10378
10620
  }
10379
10621
  },
10380
10622
  "required": [
@@ -10385,11 +10627,11 @@
10385
10627
  "additionalProperties": false,
10386
10628
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
10387
10629
  },
10388
- "__schema807": {
10630
+ "__schema818": {
10389
10631
  "type": "string",
10390
10632
  "markdownDescription": "Server address, supports IP address or domain name.\n"
10391
10633
  },
10392
- "__schema808": {
10634
+ "__schema819": {
10393
10635
  "markdownDescription": "The port number the server is listening on. Required.\n",
10394
10636
  "allOf": [
10395
10637
  {
@@ -10397,19 +10639,19 @@
10397
10639
  }
10398
10640
  ]
10399
10641
  },
10400
- "__schema809": {
10642
+ "__schema820": {
10401
10643
  "type": "string",
10402
10644
  "markdownDescription": "VMess User ID. It can be any string less than 30 bytes or a valid UUID.\n\nA custom string and its mapped UUID are equivalent. This means you can identify the same user in the configuration file like this:\n\n- Write `\"id\": \"我爱🍉老师1314\"`,\n- Or write `\"id\": \"5783a3e7-e373-51cd-8642-c83782b807c5\"` (This UUID is the UUID mapping of `我爱🍉老师1314`)\n\nThe mapping standard is described in [VLESS UUID Mapping Standard: Mapping Custom Strings to a UUIDv5](https://github.com/XTLS/Xray-core/issues/158).\n\nYou can use the command `xray uuid -i \"custom string\"` to generate the UUID mapped from the custom string. You can also use the command `xray uuid` to generate a random UUID.\n"
10403
10645
  },
10404
- "__schema810": {
10646
+ "__schema821": {
10405
10647
  "markdownDescription": "Encryption method. The client will use the configured encryption method to send data, and the server will automatically identify it without configuration.\n\n- `\"aes-128-gcm\"`: Use AES-128-GCM algorithm.\n- `\"chacha20-poly1305\"`: Use Chacha20-Poly1305 algorithm.\n- `\"auto\"`: Default value. Automatically selected (uses aes-128-gcm encryption when the running framework is AMD64, ARM64, or s390x; uses Chacha20-Poly1305 encryption in other cases).\n- `\"none\"`: No encryption, maintains the VMess message structure.\n- `\"zero\"`: No encryption, direct stream copy (similar to VLESS).\n\nIt is not recommended to use `\"none\"` or `\"zero\"` pseudo-encryption methods without enabling TLS encryption and enforcing certificate verification. Regardless of the encryption method used, the VMess packet header is protected by encryption and authentication.\n\nNote: `\"auto\"` only determines the AES hardware acceleration support status of the _client_. If the _server_ does not support AES hardware acceleration, you still need to manually set it to `chacha20-poly1305`. This is very important because Chacha20-Poly1305 takes about 48% more time than AES-128-GCM on platforms supporting AES acceleration, but on platforms _without_ AES acceleration, AES-128-GCM takes over 2000% more time than Chacha20-Poly1305.\n",
10406
10648
  "allOf": [
10407
10649
  {
10408
- "$ref": "#/definitions/__schema811"
10650
+ "$ref": "#/definitions/__schema822"
10409
10651
  }
10410
10652
  ]
10411
10653
  },
10412
- "__schema811": {
10654
+ "__schema822": {
10413
10655
  "type": "string",
10414
10656
  "enum": [
10415
10657
  "aes-128-gcm",
@@ -10419,29 +10661,29 @@
10419
10661
  "zero"
10420
10662
  ]
10421
10663
  },
10422
- "__schema812": {
10664
+ "__schema823": {
10423
10665
  "markdownDescription": "User level. The connection will use the [local policy](https://xtls.github.io/en/config/policy.html#levelpolicyobject) corresponding to this user level.\n\nThe value of `level` corresponds to the value of `level` in [policy](https://xtls.github.io/en/config/policy.html#policyobject). If not specified, the default is 0.\n",
10424
10666
  "allOf": [
10425
10667
  {
10426
- "$ref": "#/definitions/__schema813"
10668
+ "$ref": "#/definitions/__schema824"
10427
10669
  }
10428
10670
  ]
10429
10671
  },
10430
- "__schema813": {
10672
+ "__schema824": {
10431
10673
  "default": 0,
10432
10674
  "type": "integer",
10433
10675
  "minimum": -9007199254740991,
10434
10676
  "maximum": 9007199254740991
10435
10677
  },
10436
- "__schema814": {
10678
+ "__schema825": {
10437
10679
  "markdownDescription": "Enabled VMess protocol experimental features. (Features here are unstable and may be removed at any time). Multiple enabled experiments can be separated by the `|` character, such as `\"AuthenticatedLength|NoTerminationSignal\"`.\n\n- `\"AuthenticatedLength\"`: Enable authenticated packet length experiment. This experiment requires both the client and server to enable it simultaneously and run the same version of the program.\n- `\"NoTerminationSignal\"`: Enable not sending the disconnection signal. This feature is now enabled by default.\n",
10438
10680
  "allOf": [
10439
10681
  {
10440
- "$ref": "#/definitions/__schema815"
10682
+ "$ref": "#/definitions/__schema826"
10441
10683
  }
10442
10684
  ]
10443
10685
  },
10444
- "__schema815": {
10686
+ "__schema826": {
10445
10687
  "type": "string",
10446
10688
  "enum": [
10447
10689
  "AuthenticatedLength",
@@ -10449,32 +10691,32 @@
10449
10691
  "AuthenticatedLength|NoTerminationSignal"
10450
10692
  ]
10451
10693
  },
10452
- "__schema816": {
10694
+ "__schema827": {
10453
10695
  "type": "object",
10454
10696
  "properties": {
10455
10697
  "sendThrough": {
10456
- "$ref": "#/definitions/__schema689"
10698
+ "$ref": "#/definitions/__schema695"
10457
10699
  },
10458
10700
  "tag": {
10459
- "$ref": "#/definitions/__schema691"
10701
+ "$ref": "#/definitions/__schema697"
10460
10702
  },
10461
10703
  "streamSettings": {
10462
- "$ref": "#/definitions/__schema693"
10704
+ "$ref": "#/definitions/__schema699"
10463
10705
  },
10464
10706
  "targetStrategy": {
10465
- "$ref": "#/definitions/__schema694"
10707
+ "$ref": "#/definitions/__schema700"
10466
10708
  },
10467
10709
  "proxySettings": {
10468
- "$ref": "#/definitions/__schema696"
10710
+ "$ref": "#/definitions/__schema702"
10469
10711
  },
10470
10712
  "mux": {
10471
- "$ref": "#/definitions/__schema699"
10713
+ "$ref": "#/definitions/__schema705"
10472
10714
  },
10473
10715
  "protocol": {
10474
- "$ref": "#/definitions/__schema817"
10716
+ "$ref": "#/definitions/__schema828"
10475
10717
  },
10476
10718
  "settings": {
10477
- "$ref": "#/definitions/__schema818"
10719
+ "$ref": "#/definitions/__schema829"
10478
10720
  }
10479
10721
  },
10480
10722
  "required": [
@@ -10484,36 +10726,36 @@
10484
10726
  "additionalProperties": false,
10485
10727
  "markdownDescription": "Standard Wireguard protocol implementation.\n\n### DANGER\n\n**The Wireguard protocol is not designed specifically for bypassing firewalls. If used at the outermost layer to cross the Great Firewall, distinctive characteristics may lead to the server being blocked.**\n\n### TIP\n\nCurrently, configuring `streamSettings` is not supported in the Wireguard protocol outbound.\n\n[Documentation ↗](https://xtls.github.io/en/config/outbounds/wireguard.html)\n"
10486
10728
  },
10487
- "__schema817": {
10729
+ "__schema828": {
10488
10730
  "type": "string",
10489
10731
  "const": "wireguard"
10490
10732
  },
10491
- "__schema818": {
10733
+ "__schema829": {
10492
10734
  "type": "object",
10493
10735
  "properties": {
10494
10736
  "secretKey": {
10495
- "$ref": "#/definitions/__schema819"
10737
+ "$ref": "#/definitions/__schema830"
10496
10738
  },
10497
10739
  "address": {
10498
- "$ref": "#/definitions/__schema820"
10740
+ "$ref": "#/definitions/__schema831"
10499
10741
  },
10500
10742
  "peers": {
10501
- "$ref": "#/definitions/__schema822"
10743
+ "$ref": "#/definitions/__schema833"
10502
10744
  },
10503
10745
  "noKernelTun": {
10504
- "$ref": "#/definitions/__schema827"
10746
+ "$ref": "#/definitions/__schema838"
10505
10747
  },
10506
10748
  "mtu": {
10507
- "$ref": "#/definitions/__schema829"
10749
+ "$ref": "#/definitions/__schema840"
10508
10750
  },
10509
10751
  "reserved": {
10510
- "$ref": "#/definitions/__schema831"
10752
+ "$ref": "#/definitions/__schema842"
10511
10753
  },
10512
10754
  "workers": {
10513
- "$ref": "#/definitions/__schema833"
10755
+ "$ref": "#/definitions/__schema844"
10514
10756
  },
10515
10757
  "domainStrategy": {
10516
- "$ref": "#/definitions/__schema835"
10758
+ "$ref": "#/definitions/__schema846"
10517
10759
  }
10518
10760
  },
10519
10761
  "required": [
@@ -10525,30 +10767,30 @@
10525
10767
  "additionalProperties": false,
10526
10768
  "markdownDescription": "`OutboundConfigurationObject` corresponds to the `settings` item in [`OutboundObject`](https://xtls.github.io/en/config/outbound.html).\n"
10527
10769
  },
10528
- "__schema819": {
10770
+ "__schema830": {
10529
10771
  "type": "string",
10530
10772
  "markdownDescription": "User private key. Required.\n"
10531
10773
  },
10532
- "__schema820": {
10774
+ "__schema831": {
10533
10775
  "minItems": 1,
10534
10776
  "type": "array",
10535
10777
  "items": {
10536
- "$ref": "#/definitions/__schema821"
10778
+ "$ref": "#/definitions/__schema832"
10537
10779
  },
10538
10780
  "markdownDescription": "Wireguard will start a virtual network interface (tun) locally. Use one or more IP addresses; IPv6 is supported.\n"
10539
10781
  },
10540
- "__schema821": {
10782
+ "__schema832": {
10541
10783
  "type": "string"
10542
10784
  },
10543
- "__schema822": {
10785
+ "__schema833": {
10544
10786
  "minItems": 1,
10545
10787
  "type": "array",
10546
10788
  "items": {
10547
- "$ref": "#/definitions/__schema823"
10789
+ "$ref": "#/definitions/__schema834"
10548
10790
  },
10549
10791
  "markdownDescription": "List of Wireguard servers, where each item is a server configuration.\n"
10550
10792
  },
10551
- "__schema823": {
10793
+ "__schema834": {
10552
10794
  "type": "object",
10553
10795
  "properties": {
10554
10796
  "endpoint": {
@@ -10563,7 +10805,7 @@
10563
10805
  "markdownDescription": "Additional symmetric encryption key.\n",
10564
10806
  "allOf": [
10565
10807
  {
10566
- "$ref": "#/definitions/__schema824"
10808
+ "$ref": "#/definitions/__schema835"
10567
10809
  }
10568
10810
  ]
10569
10811
  },
@@ -10571,7 +10813,7 @@
10571
10813
  "markdownDescription": "Heartbeat interval in seconds. Default is 0, meaning no heartbeat.\n",
10572
10814
  "allOf": [
10573
10815
  {
10574
- "$ref": "#/definitions/__schema825"
10816
+ "$ref": "#/definitions/__schema836"
10575
10817
  }
10576
10818
  ]
10577
10819
  },
@@ -10579,7 +10821,7 @@
10579
10821
  "markdownDescription": "Wireguard only allows traffic from specific source IPs.\n",
10580
10822
  "allOf": [
10581
10823
  {
10582
- "$ref": "#/definitions/__schema826"
10824
+ "$ref": "#/definitions/__schema837"
10583
10825
  }
10584
10826
  ]
10585
10827
  }
@@ -10590,16 +10832,16 @@
10590
10832
  ],
10591
10833
  "additionalProperties": false
10592
10834
  },
10593
- "__schema824": {
10835
+ "__schema835": {
10594
10836
  "type": "string"
10595
10837
  },
10596
- "__schema825": {
10838
+ "__schema836": {
10597
10839
  "default": 0,
10598
10840
  "type": "integer",
10599
10841
  "minimum": -9007199254740991,
10600
10842
  "maximum": 9007199254740991
10601
10843
  },
10602
- "__schema826": {
10844
+ "__schema837": {
10603
10845
  "default": [
10604
10846
  "0.0.0.0/0",
10605
10847
  "::/0"
@@ -10609,41 +10851,41 @@
10609
10851
  "type": "string"
10610
10852
  }
10611
10853
  },
10612
- "__schema827": {
10854
+ "__schema838": {
10613
10855
  "markdownDescription": "By default, the core detects if it is running on Linux and if the current user has `CAP_NET_ADMIN` permissions to decide whether to enable the system virtual network interface; otherwise, it uses gVisor. Using the system virtual interface offers relatively higher performance. Note that this is only for processing IP packets and has nothing to do with the wireguard kernel module.\n\nThis detection may not always be accurate. For example, some LXC virtualization environments may not have TUN permissions at all, causing the outbound to fail. Therefore, you can set this option to manually disable it.\n\nWhen using the system virtual interface, it occupies IPv6 routing table number `10230`. Each additional Wireguard outbound will use subsequent routing tables sequentially; for example, the second one will use routing table `10231`, and so on.\n\nNote that if a second Xray instance is started on the same machine, it will not assign the next routing table number but will continue trying to use routing table `10230`. Since it is already occupied by the first Xray instance, it will fail to connect. If absolutely needed, you must set this option to disable the system virtual interface.\n",
10614
10856
  "allOf": [
10615
10857
  {
10616
- "$ref": "#/definitions/__schema828"
10858
+ "$ref": "#/definitions/__schema839"
10617
10859
  }
10618
10860
  ]
10619
10861
  },
10620
- "__schema828": {
10862
+ "__schema839": {
10621
10863
  "default": false,
10622
10864
  "type": "boolean"
10623
10865
  },
10624
- "__schema829": {
10866
+ "__schema840": {
10625
10867
  "default": 1420,
10626
10868
  "markdownDescription": "MTU size of the underlying Wireguard tun.\n\nThe structure of a Wireguard packet is as follows:\n\n- 20-byte IPv4 header or 40 byte IPv6 header\n- 8-byte UDP header\n- 4-byte type\n- 4-byte key index\n- 8-byte nonce\n- N-byte encrypted data\n- 16-byte authentication tag\n\n`N-byte encrypted data` is the MTU value we need. Depending on whether the endpoint is IPv4 or IPv6, the specific value can be 1440 (IPv4) or 1420 (IPv6). If in a special environment, subtract further (e.g., home broadband PPPoE requires an extra -8).\n",
10627
10869
  "allOf": [
10628
10870
  {
10629
- "$ref": "#/definitions/__schema830"
10871
+ "$ref": "#/definitions/__schema841"
10630
10872
  }
10631
10873
  ]
10632
10874
  },
10633
- "__schema830": {
10875
+ "__schema841": {
10634
10876
  "type": "integer",
10635
10877
  "minimum": -9007199254740991,
10636
10878
  "maximum": 9007199254740991
10637
10879
  },
10638
- "__schema831": {
10880
+ "__schema842": {
10639
10881
  "markdownDescription": "Wireguard reserved bytes, fill as needed.\n",
10640
10882
  "allOf": [
10641
10883
  {
10642
- "$ref": "#/definitions/__schema832"
10884
+ "$ref": "#/definitions/__schema843"
10643
10885
  }
10644
10886
  ]
10645
10887
  },
10646
- "__schema832": {
10888
+ "__schema843": {
10647
10889
  "default": [],
10648
10890
  "type": "array",
10649
10891
  "items": {
@@ -10652,28 +10894,28 @@
10652
10894
  "maximum": 9007199254740991
10653
10895
  }
10654
10896
  },
10655
- "__schema833": {
10897
+ "__schema844": {
10656
10898
  "markdownDescription": "Number of threads used by Wireguard. Defaults to the number of system cores.\n",
10657
10899
  "allOf": [
10658
10900
  {
10659
- "$ref": "#/definitions/__schema834"
10901
+ "$ref": "#/definitions/__schema845"
10660
10902
  }
10661
10903
  ]
10662
10904
  },
10663
- "__schema834": {
10905
+ "__schema845": {
10664
10906
  "type": "integer",
10665
10907
  "minimum": -9007199254740991,
10666
10908
  "maximum": 9007199254740991
10667
10909
  },
10668
- "__schema835": {
10910
+ "__schema846": {
10669
10911
  "markdownDescription": "Controls the domain resolution strategy when the Wireguard server address is a domain name or the target address of the proxied traffic is a domain name.\n\nUnlike most proxy protocols, Wireguard does not allow passing domain names as targets. Therefore, if the incoming target is a domain, it needs to be resolved to an IP address before transmission. This is handled by Xray's built-in DNS. The meaning of this field is the same as `domainStrategy` in `Freedom` outbound. The default value is `ForceIP`.\n\nThe `domainStrategy` of `Freedom` outbound includes options like `UseIP`, which are not provided here because Wireguard must obtain a usable IP and cannot perform the behavior of falling back to a domain name after `UseIP` resolution fails.\n\nNote: When applied to proxied traffic, this option is also constrained by the `address` option. For example, if you set `ForceIPv6v4` but no IPv6 address is set in `address`, even if the target domain has AAAA records, they will not be resolved/used.\n",
10670
10912
  "allOf": [
10671
10913
  {
10672
- "$ref": "#/definitions/__schema836"
10914
+ "$ref": "#/definitions/__schema847"
10673
10915
  }
10674
10916
  ]
10675
10917
  },
10676
- "__schema836": {
10918
+ "__schema847": {
10677
10919
  "default": "ForceIP",
10678
10920
  "type": "string",
10679
10921
  "enum": [