@opensoha/contracts 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/auth/catalog_generated.go +2 -2
  2. package/auth/permission-catalog.json +81 -1
  3. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  4. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  5. package/fixtures/json-schema/network-ingest-event/invalid/proxy-runtime-negative-total.json +19 -0
  6. package/fixtures/json-schema/network-ingest-event/valid/proxy-runtime-sample.json +20 -0
  7. package/fixtures/json-schema/proxy-runtime/invalid/v2ray-connection-snapshot.json +10 -0
  8. package/fixtures/json-schema/proxy-runtime/valid/mihomo-observation.json +16 -0
  9. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/basic.json +5 -0
  10. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/missing-range-fields.json +5 -0
  11. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/zero-start.json +8 -0
  12. package/fixtures/openapi/AgentPrometheusQueryRequest/valid/basic.json +8 -0
  13. package/fixtures/openapi/AgentPrometheusQueryRequest/valid/instant.json +5 -0
  14. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/image.json +1 -0
  15. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/missing.json +1 -0
  16. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/mutable-tag.json +1 -0
  17. package/fixtures/openapi/ClusterAgentUpgradeInput/valid/stable.json +1 -0
  18. package/fixtures/openapi/ClusterAgentUpgradeInput/valid/unprefixed.json +1 -0
  19. package/fixtures/openapi/KubernetesAgentCustomResourceRule/invalid/basic.json +9 -0
  20. package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/basic.json +14 -0
  21. package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/dns-names.json +1 -0
  22. package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/basic.json +4 -0
  23. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/basic.json +6 -0
  24. package/fixtures/openapi/KubernetesConfigMapDataInput/invalid/basic.json +5 -0
  25. package/fixtures/openapi/KubernetesConfigMapDataInput/valid/basic.json +8 -0
  26. package/fixtures/openapi/KubernetesCronJobSuspendInput/invalid/basic.json +3 -0
  27. package/fixtures/openapi/KubernetesCronJobSuspendInput/valid/basic.json +3 -0
  28. package/fixtures/openapi/KubernetesCustomResourceAccess/invalid/basic.json +5 -0
  29. package/fixtures/openapi/KubernetesCustomResourceAccess/valid/basic.json +6 -0
  30. package/fixtures/openapi/KubernetesCustomResourceDefinition/invalid/empty-uid.json +1 -0
  31. package/fixtures/openapi/KubernetesCustomResourceDefinition/valid/deleting-definition.json +1 -0
  32. package/fixtures/openapi/KubernetesNamespaceCreateInput/invalid/basic.json +1 -0
  33. package/fixtures/openapi/KubernetesNamespaceCreateInput/valid/basic.json +1 -0
  34. package/fixtures/openapi/KubernetesNodeDrainInput/invalid/basic.json +3 -0
  35. package/fixtures/openapi/KubernetesNodeDrainInput/valid/basic.json +3 -0
  36. package/fixtures/openapi/KubernetesNodeSchedulabilityInput/invalid/basic.json +1 -0
  37. package/fixtures/openapi/KubernetesNodeSchedulabilityInput/valid/basic.json +3 -0
  38. package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/valid/range-kind.json +5 -0
  39. package/fixtures/openapi/KubernetesResourceYaml/valid/range-kind.json +5 -0
  40. package/fixtures/openapi/KubernetesSecretDataInput/invalid/basic.json +5 -0
  41. package/fixtures/openapi/KubernetesSecretDataInput/valid/basic.json +5 -0
  42. package/fixtures/openapi/NetworkProxyConfigurationInput/invalid/empty-content.json +1 -0
  43. package/fixtures/openapi/NetworkProxyConfigurationInput/valid/enabled.json +1 -0
  44. package/fixtures/openapi/NetworkProxyInstanceInput/invalid/unknown-engine.json +1 -0
  45. package/fixtures/openapi/NetworkProxyInstanceInput/valid/mihomo.json +1 -0
  46. package/gen/go/sohaapi/client.go +1 -1
  47. package/gen/go/sohaapi/client_test.go +25 -0
  48. package/gen/go/sohaapi/types.go +122 -24
  49. package/gen/ts/sohaapi/index.ts +266 -1
  50. package/go.mod +4 -4
  51. package/go.sum +4 -4
  52. package/network/README.md +12 -0
  53. package/network/network-ingest-event.schema.json +21 -3
  54. package/network/network-runtime-protocol.schema.json +2 -2
  55. package/network/proxy-runtime.schema.json +113 -0
  56. package/network/schema.go +7 -0
  57. package/openapi/soha-api.json +938 -4
  58. package/openapi/soha-api.yaml +389 -3
  59. package/openapi/spec_generated.go +3 -3
  60. package/package.json +2 -1
  61. package/resource/agent_access.go +23 -0
  62. package/resource/models.go +2 -0
@@ -1614,6 +1614,65 @@
1614
1614
  ],
1615
1615
  "type": "object"
1616
1616
  },
1617
+ "AgentPrometheusQueryRequest": {
1618
+ "additionalProperties": false,
1619
+ "description": "Range queries require start, end and step. The runtime also enforces end greater than start, a maximum 24-hour range and at most 11000 intervals.",
1620
+ "if": {
1621
+ "properties": {
1622
+ "kind": {
1623
+ "const": "range"
1624
+ }
1625
+ },
1626
+ "required": [
1627
+ "kind"
1628
+ ]
1629
+ },
1630
+ "properties": {
1631
+ "end": {
1632
+ "format": "int64",
1633
+ "minimum": 1,
1634
+ "type": "integer"
1635
+ },
1636
+ "endpoint": {
1637
+ "maxLength": 2048,
1638
+ "type": "string"
1639
+ },
1640
+ "kind": {
1641
+ "enum": [
1642
+ "instant",
1643
+ "range"
1644
+ ],
1645
+ "type": "string"
1646
+ },
1647
+ "query": {
1648
+ "maxLength": 16384,
1649
+ "minLength": 1,
1650
+ "type": "string"
1651
+ },
1652
+ "start": {
1653
+ "format": "int64",
1654
+ "minimum": 1,
1655
+ "type": "integer"
1656
+ },
1657
+ "step": {
1658
+ "minimum": 1,
1659
+ "type": "integer"
1660
+ }
1661
+ },
1662
+ "required": [
1663
+ "endpoint",
1664
+ "query",
1665
+ "kind"
1666
+ ],
1667
+ "then": {
1668
+ "required": [
1669
+ "start",
1670
+ "end",
1671
+ "step"
1672
+ ]
1673
+ },
1674
+ "type": "object"
1675
+ },
1617
1676
  "AgentProviderCatalog": {
1618
1677
  "additionalProperties": false,
1619
1678
  "properties": {
@@ -8587,6 +8646,97 @@
8587
8646
  ],
8588
8647
  "type": "string"
8589
8648
  },
8649
+ "ClusterAgentUpgradeInput": {
8650
+ "additionalProperties": false,
8651
+ "properties": {
8652
+ "version": {
8653
+ "description": "Explicit stable official Agent version, such as v0.1.7. Registry and container identity cannot be overridden.",
8654
+ "maxLength": 64,
8655
+ "pattern": "^v?(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",
8656
+ "type": "string"
8657
+ }
8658
+ },
8659
+ "required": [
8660
+ "version"
8661
+ ],
8662
+ "type": "object"
8663
+ },
8664
+ "ClusterAgentUpgradeResult": {
8665
+ "additionalProperties": false,
8666
+ "properties": {
8667
+ "previousImage": {
8668
+ "type": "string"
8669
+ },
8670
+ "targetImage": {
8671
+ "type": "string"
8672
+ }
8673
+ },
8674
+ "required": [
8675
+ "previousImage",
8676
+ "targetImage"
8677
+ ],
8678
+ "type": "object"
8679
+ },
8680
+ "ClusterAgentUpgradeResultEnvelope": {
8681
+ "properties": {
8682
+ "data": {
8683
+ "$ref": "#/components/schemas/ClusterAgentUpgradeResult"
8684
+ }
8685
+ },
8686
+ "required": [
8687
+ "data"
8688
+ ],
8689
+ "type": "object"
8690
+ },
8691
+ "ClusterAgentUpgradeStatus": {
8692
+ "additionalProperties": false,
8693
+ "properties": {
8694
+ "canUpgrade": {
8695
+ "type": "boolean"
8696
+ },
8697
+ "image": {
8698
+ "description": "Desired image of the standard Agent Deployment.",
8699
+ "type": "string"
8700
+ },
8701
+ "message": {
8702
+ "type": "string"
8703
+ },
8704
+ "recommendedVersion": {
8705
+ "description": "Agent version bundled with this Core release.",
8706
+ "type": "string"
8707
+ },
8708
+ "rolloutStatus": {
8709
+ "type": "string"
8710
+ },
8711
+ "upgradeDisabledReason": {
8712
+ "type": "string"
8713
+ },
8714
+ "version": {
8715
+ "description": "Version reported by the currently connected Agent process.",
8716
+ "type": "string"
8717
+ }
8718
+ },
8719
+ "required": [
8720
+ "version",
8721
+ "image",
8722
+ "recommendedVersion",
8723
+ "rolloutStatus",
8724
+ "message",
8725
+ "canUpgrade"
8726
+ ],
8727
+ "type": "object"
8728
+ },
8729
+ "ClusterAgentUpgradeStatusEnvelope": {
8730
+ "properties": {
8731
+ "data": {
8732
+ "$ref": "#/components/schemas/ClusterAgentUpgradeStatus"
8733
+ }
8734
+ },
8735
+ "required": [
8736
+ "data"
8737
+ ],
8738
+ "type": "object"
8739
+ },
8590
8740
  "ClusterCapabilityMatrixEntry": {
8591
8741
  "additionalProperties": false,
8592
8742
  "properties": {
@@ -23647,6 +23797,70 @@
23647
23797
  },
23648
23798
  "type": "object"
23649
23799
  },
23800
+ "KubernetesAgentCustomResourceRule": {
23801
+ "additionalProperties": false,
23802
+ "properties": {
23803
+ "apiGroup": {
23804
+ "maxLength": 253,
23805
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$",
23806
+ "type": "string"
23807
+ },
23808
+ "namespaces": {
23809
+ "description": "Explicit namespaces; omitted or empty grants cluster-wide access to the named resources only.",
23810
+ "items": {
23811
+ "maxLength": 63,
23812
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$",
23813
+ "type": "string"
23814
+ },
23815
+ "maxItems": 50,
23816
+ "type": "array",
23817
+ "uniqueItems": true
23818
+ },
23819
+ "resources": {
23820
+ "items": {
23821
+ "maxLength": 63,
23822
+ "pattern": "^[a-z]([a-z0-9-]*[a-z0-9])?$",
23823
+ "type": "string"
23824
+ },
23825
+ "maxItems": 50,
23826
+ "minItems": 1,
23827
+ "type": "array",
23828
+ "uniqueItems": true
23829
+ },
23830
+ "verbs": {
23831
+ "items": {
23832
+ "enum": [
23833
+ "get",
23834
+ "list",
23835
+ "watch",
23836
+ "create",
23837
+ "update",
23838
+ "patch",
23839
+ "delete"
23840
+ ],
23841
+ "type": "string",
23842
+ "x-enum-varnames": [
23843
+ "KubernetesAgentCustomResourceRuleVerbsGet",
23844
+ "KubernetesAgentCustomResourceRuleVerbsList",
23845
+ "KubernetesAgentCustomResourceRuleVerbsWatch",
23846
+ "KubernetesAgentCustomResourceRuleVerbsCreate",
23847
+ "KubernetesAgentCustomResourceRuleVerbsUpdate",
23848
+ "KubernetesAgentCustomResourceRuleVerbsPatch",
23849
+ "KubernetesAgentCustomResourceRuleVerbsDelete"
23850
+ ]
23851
+ },
23852
+ "minItems": 1,
23853
+ "type": "array",
23854
+ "uniqueItems": true
23855
+ }
23856
+ },
23857
+ "required": [
23858
+ "apiGroup",
23859
+ "resources",
23860
+ "verbs"
23861
+ ],
23862
+ "type": "object"
23863
+ },
23650
23864
  "KubernetesBackendTLSPolicy": {
23651
23865
  "additionalProperties": false,
23652
23866
  "properties": {
@@ -23814,6 +24028,13 @@
23814
24028
  "credentialType": {
23815
24029
  "type": "string"
23816
24030
  },
24031
+ "customResourceRules": {
24032
+ "items": {
24033
+ "$ref": "#/components/schemas/KubernetesAgentCustomResourceRule"
24034
+ },
24035
+ "maxItems": 50,
24036
+ "type": "array"
24037
+ },
23817
24038
  "endpoint": {
23818
24039
  "type": "string"
23819
24040
  },
@@ -24027,6 +24248,69 @@
24027
24248
  ],
24028
24249
  "type": "object"
24029
24250
  },
24251
+ "KubernetesClusterRegistrationRequest": {
24252
+ "additionalProperties": false,
24253
+ "properties": {
24254
+ "agentCustomResourceRules": {
24255
+ "items": {
24256
+ "$ref": "#/components/schemas/KubernetesAgentCustomResourceRule"
24257
+ },
24258
+ "maxItems": 50,
24259
+ "type": "array"
24260
+ },
24261
+ "agentEndpoint": {
24262
+ "type": "string"
24263
+ },
24264
+ "agentToken": {
24265
+ "type": "string",
24266
+ "writeOnly": true
24267
+ },
24268
+ "connectionMode": {
24269
+ "$ref": "#/components/schemas/KubernetesConnectionMode"
24270
+ },
24271
+ "context": {
24272
+ "type": "string"
24273
+ },
24274
+ "environment": {
24275
+ "type": "string"
24276
+ },
24277
+ "grafanaBaseUrl": {
24278
+ "type": "string"
24279
+ },
24280
+ "id": {
24281
+ "type": "string"
24282
+ },
24283
+ "kubeconfig": {
24284
+ "type": "string"
24285
+ },
24286
+ "labels": {
24287
+ "additionalProperties": {
24288
+ "type": "string"
24289
+ },
24290
+ "type": "object"
24291
+ },
24292
+ "name": {
24293
+ "type": "string"
24294
+ },
24295
+ "prometheusBaseUrl": {
24296
+ "type": "string"
24297
+ },
24298
+ "prometheusBearerToken": {
24299
+ "type": "string",
24300
+ "writeOnly": true
24301
+ },
24302
+ "prometheusClusterLabel": {
24303
+ "type": "string"
24304
+ },
24305
+ "prometheusTransport": {
24306
+ "$ref": "#/components/schemas/KubernetesPrometheusTransport"
24307
+ },
24308
+ "region": {
24309
+ "type": "string"
24310
+ }
24311
+ },
24312
+ "type": "object"
24313
+ },
24030
24314
  "KubernetesClusterRole": {
24031
24315
  "additionalProperties": false,
24032
24316
  "properties": {
@@ -24303,6 +24587,18 @@
24303
24587
  ],
24304
24588
  "type": "object"
24305
24589
  },
24590
+ "KubernetesConfigMapDataInput": {
24591
+ "additionalProperties": false,
24592
+ "properties": {
24593
+ "binaryData": {
24594
+ "$ref": "#/components/schemas/KubernetesStringMap"
24595
+ },
24596
+ "data": {
24597
+ "$ref": "#/components/schemas/KubernetesStringMap"
24598
+ }
24599
+ },
24600
+ "type": "object"
24601
+ },
24306
24602
  "KubernetesConfigMapDetail": {
24307
24603
  "additionalProperties": false,
24308
24604
  "properties": {
@@ -24555,6 +24851,18 @@
24555
24851
  ],
24556
24852
  "type": "object"
24557
24853
  },
24854
+ "KubernetesCronJobSuspendInput": {
24855
+ "additionalProperties": false,
24856
+ "properties": {
24857
+ "suspend": {
24858
+ "type": "boolean"
24859
+ }
24860
+ },
24861
+ "required": [
24862
+ "suspend"
24863
+ ],
24864
+ "type": "object"
24865
+ },
24558
24866
  "KubernetesCustomResource": {
24559
24867
  "additionalProperties": false,
24560
24868
  "properties": {
@@ -24613,6 +24921,47 @@
24613
24921
  ],
24614
24922
  "type": "object"
24615
24923
  },
24924
+ "KubernetesCustomResourceAccess": {
24925
+ "additionalProperties": false,
24926
+ "properties": {
24927
+ "allowedActions": {
24928
+ "items": {
24929
+ "enum": [
24930
+ "list",
24931
+ "view",
24932
+ "create",
24933
+ "update",
24934
+ "delete"
24935
+ ],
24936
+ "type": "string",
24937
+ "x-enum-varnames": [
24938
+ "CustomResourceAccessList",
24939
+ "CustomResourceAccessView",
24940
+ "CustomResourceAccessCreate",
24941
+ "CustomResourceAccessUpdate",
24942
+ "CustomResourceAccessDelete"
24943
+ ]
24944
+ },
24945
+ "type": "array"
24946
+ }
24947
+ },
24948
+ "required": [
24949
+ "allowedActions"
24950
+ ],
24951
+ "type": "object"
24952
+ },
24953
+ "KubernetesCustomResourceAccessEnvelope": {
24954
+ "additionalProperties": false,
24955
+ "properties": {
24956
+ "data": {
24957
+ "$ref": "#/components/schemas/KubernetesCustomResourceAccess"
24958
+ }
24959
+ },
24960
+ "required": [
24961
+ "data"
24962
+ ],
24963
+ "type": "object"
24964
+ },
24616
24965
  "KubernetesCustomResourceDefinition": {
24617
24966
  "additionalProperties": false,
24618
24967
  "properties": {
@@ -24630,6 +24979,10 @@
24630
24979
  "createdAt": {
24631
24980
  "type": "string"
24632
24981
  },
24982
+ "deletingAt": {
24983
+ "format": "date-time",
24984
+ "type": "string"
24985
+ },
24633
24986
  "group": {
24634
24987
  "type": "string"
24635
24988
  },
@@ -24645,6 +24998,11 @@
24645
24998
  "scope": {
24646
24999
  "type": "string"
24647
25000
  },
25001
+ "uid": {
25002
+ "maxLength": 128,
25003
+ "minLength": 1,
25004
+ "type": "string"
25005
+ },
24648
25006
  "version": {
24649
25007
  "type": "string"
24650
25008
  },
@@ -27879,6 +28237,53 @@
27879
28237
  ],
27880
28238
  "type": "object"
27881
28239
  },
28240
+ "KubernetesNamespaceCreateInput": {
28241
+ "additionalProperties": false,
28242
+ "properties": {
28243
+ "annotations": {
28244
+ "$ref": "#/components/schemas/KubernetesStringMap"
28245
+ },
28246
+ "labels": {
28247
+ "$ref": "#/components/schemas/KubernetesStringMap"
28248
+ },
28249
+ "name": {
28250
+ "minLength": 1,
28251
+ "pattern": "\\S",
28252
+ "type": "string"
28253
+ }
28254
+ },
28255
+ "required": [
28256
+ "name"
28257
+ ],
28258
+ "type": "object"
28259
+ },
28260
+ "KubernetesNamespaceEnvelope": {
28261
+ "additionalProperties": false,
28262
+ "properties": {
28263
+ "data": {
28264
+ "$ref": "#/components/schemas/KubernetesNamespace"
28265
+ }
28266
+ },
28267
+ "required": [
28268
+ "data"
28269
+ ],
28270
+ "type": "object"
28271
+ },
28272
+ "KubernetesNamespaceInput": {
28273
+ "additionalProperties": false,
28274
+ "properties": {
28275
+ "annotations": {
28276
+ "$ref": "#/components/schemas/KubernetesStringMap"
28277
+ },
28278
+ "labels": {
28279
+ "$ref": "#/components/schemas/KubernetesStringMap"
28280
+ },
28281
+ "name": {
28282
+ "type": "string"
28283
+ }
28284
+ },
28285
+ "type": "object"
28286
+ },
27882
28287
  "KubernetesNamespaceListEnvelope": {
27883
28288
  "additionalProperties": false,
27884
28289
  "properties": {
@@ -28466,6 +28871,24 @@
28466
28871
  ],
28467
28872
  "type": "object"
28468
28873
  },
28874
+ "KubernetesNodeDrainInput": {
28875
+ "additionalProperties": false,
28876
+ "properties": {
28877
+ "deleteEmptyDirData": {
28878
+ "type": "boolean"
28879
+ },
28880
+ "force": {
28881
+ "type": "boolean"
28882
+ },
28883
+ "timeoutSeconds": {
28884
+ "default": 300,
28885
+ "maximum": 1800,
28886
+ "minimum": 30,
28887
+ "type": "integer"
28888
+ }
28889
+ },
28890
+ "type": "object"
28891
+ },
28469
28892
  "KubernetesNodeListEnvelope": {
28470
28893
  "additionalProperties": false,
28471
28894
  "properties": {
@@ -28565,6 +28988,18 @@
28565
28988
  },
28566
28989
  "type": "object"
28567
28990
  },
28991
+ "KubernetesNodeSchedulabilityInput": {
28992
+ "additionalProperties": false,
28993
+ "properties": {
28994
+ "unschedulable": {
28995
+ "type": "boolean"
28996
+ }
28997
+ },
28998
+ "required": [
28999
+ "unschedulable"
29000
+ ],
29001
+ "type": "object"
29002
+ },
28568
29003
  "KubernetesNodeTaint": {
28569
29004
  "additionalProperties": false,
28570
29005
  "properties": {
@@ -28584,6 +29019,21 @@
28584
29019
  ],
28585
29020
  "type": "object"
28586
29021
  },
29022
+ "KubernetesNodeUpdateInput": {
29023
+ "additionalProperties": false,
29024
+ "properties": {
29025
+ "labels": {
29026
+ "$ref": "#/components/schemas/KubernetesStringMap"
29027
+ },
29028
+ "taints": {
29029
+ "items": {
29030
+ "$ref": "#/components/schemas/KubernetesNodeTaint"
29031
+ },
29032
+ "type": "array"
29033
+ }
29034
+ },
29035
+ "type": "object"
29036
+ },
28587
29037
  "KubernetesPersistentVolume": {
28588
29038
  "additionalProperties": false,
28589
29039
  "properties": {
@@ -29445,6 +29895,9 @@
29445
29895
  },
29446
29896
  "hasBearerToken": {
29447
29897
  "type": "boolean"
29898
+ },
29899
+ "transport": {
29900
+ "$ref": "#/components/schemas/KubernetesPrometheusTransport"
29448
29901
  }
29449
29902
  },
29450
29903
  "required": [
@@ -29452,6 +29905,14 @@
29452
29905
  ],
29453
29906
  "type": "object"
29454
29907
  },
29908
+ "KubernetesPrometheusTransport": {
29909
+ "default": "direct",
29910
+ "enum": [
29911
+ "direct",
29912
+ "agent"
29913
+ ],
29914
+ "type": "string"
29915
+ },
29455
29916
  "KubernetesReferenceGrant": {
29456
29917
  "additionalProperties": false,
29457
29918
  "properties": {
@@ -30378,7 +30839,10 @@
30378
30839
  "enum": [
30379
30840
  "create"
30380
30841
  ],
30381
- "type": "string"
30842
+ "type": "string",
30843
+ "x-enum-varnames": [
30844
+ "Create"
30845
+ ]
30382
30846
  },
30383
30847
  "apiVersion": {
30384
30848
  "minLength": 1,
@@ -31362,6 +31826,19 @@
31362
31826
  ],
31363
31827
  "type": "object"
31364
31828
  },
31829
+ "KubernetesResourceYamlInput": {
31830
+ "additionalProperties": false,
31831
+ "properties": {
31832
+ "content": {
31833
+ "minLength": 1,
31834
+ "type": "string"
31835
+ }
31836
+ },
31837
+ "required": [
31838
+ "content"
31839
+ ],
31840
+ "type": "object"
31841
+ },
31365
31842
  "KubernetesRole": {
31366
31843
  "additionalProperties": false,
31367
31844
  "properties": {
@@ -31614,6 +32091,71 @@
31614
32091
  ],
31615
32092
  "type": "object"
31616
32093
  },
32094
+ "KubernetesSecretDataInput": {
32095
+ "additionalProperties": false,
32096
+ "description": "Data values are plain text. The response detail returns Kubernetes Base64-encoded values.",
32097
+ "properties": {
32098
+ "data": {
32099
+ "$ref": "#/components/schemas/KubernetesStringMap"
32100
+ }
32101
+ },
32102
+ "type": "object"
32103
+ },
32104
+ "KubernetesSecretDetail": {
32105
+ "additionalProperties": false,
32106
+ "properties": {
32107
+ "ageSeconds": {
32108
+ "format": "int64",
32109
+ "minimum": 0,
32110
+ "type": "integer"
32111
+ },
32112
+ "annotations": {
32113
+ "$ref": "#/components/schemas/KubernetesStringMap"
32114
+ },
32115
+ "createdAt": {
32116
+ "type": "string"
32117
+ },
32118
+ "data": {
32119
+ "$ref": "#/components/schemas/KubernetesStringMap",
32120
+ "description": "Secret data values encoded with standard Base64. Requires secret-data.view."
32121
+ },
32122
+ "immutable": {
32123
+ "type": "boolean"
32124
+ },
32125
+ "labels": {
32126
+ "$ref": "#/components/schemas/KubernetesStringMap"
32127
+ },
32128
+ "name": {
32129
+ "type": "string"
32130
+ },
32131
+ "namespace": {
32132
+ "type": "string"
32133
+ },
32134
+ "type": {
32135
+ "type": "string"
32136
+ }
32137
+ },
32138
+ "required": [
32139
+ "name",
32140
+ "namespace",
32141
+ "immutable",
32142
+ "ageSeconds",
32143
+ "type"
32144
+ ],
32145
+ "type": "object"
32146
+ },
32147
+ "KubernetesSecretDetailEnvelope": {
32148
+ "additionalProperties": false,
32149
+ "properties": {
32150
+ "data": {
32151
+ "$ref": "#/components/schemas/KubernetesSecretDetail"
32152
+ }
32153
+ },
32154
+ "required": [
32155
+ "data"
32156
+ ],
32157
+ "type": "object"
32158
+ },
31617
32159
  "KubernetesSecretMetadata": {
31618
32160
  "additionalProperties": false,
31619
32161
  "properties": {
@@ -41181,6 +41723,173 @@
41181
41723
  ],
41182
41724
  "type": "object"
41183
41725
  },
41726
+ "NetworkProxyCapability": {
41727
+ "enum": [
41728
+ "traffic",
41729
+ "connections",
41730
+ "close_connection"
41731
+ ],
41732
+ "type": "string",
41733
+ "x-enum-varnames": [
41734
+ "NetworkProxyCapabilityTraffic",
41735
+ "NetworkProxyCapabilityConnections",
41736
+ "NetworkProxyCapabilityCloseConnection"
41737
+ ]
41738
+ },
41739
+ "NetworkProxyCloseCommandEnvelope": {
41740
+ "additionalProperties": false,
41741
+ "properties": {
41742
+ "commandId": {
41743
+ "maxLength": 128,
41744
+ "minLength": 1,
41745
+ "type": "string"
41746
+ },
41747
+ "expiresAt": {
41748
+ "format": "date-time",
41749
+ "type": "string"
41750
+ },
41751
+ "status": {
41752
+ "enum": [
41753
+ "pending",
41754
+ "closed",
41755
+ "not-found",
41756
+ "failed",
41757
+ "expired"
41758
+ ],
41759
+ "type": "string"
41760
+ }
41761
+ },
41762
+ "required": [
41763
+ "commandId",
41764
+ "status",
41765
+ "expiresAt"
41766
+ ],
41767
+ "type": "object"
41768
+ },
41769
+ "NetworkProxyConfigurationInput": {
41770
+ "additionalProperties": false,
41771
+ "properties": {
41772
+ "content": {
41773
+ "format": "password",
41774
+ "maxLength": 1048576,
41775
+ "minLength": 1,
41776
+ "type": "string",
41777
+ "writeOnly": true
41778
+ },
41779
+ "enabled": {
41780
+ "type": "boolean"
41781
+ },
41782
+ "expectedRevision": {
41783
+ "format": "int64",
41784
+ "minimum": 0,
41785
+ "type": "integer"
41786
+ }
41787
+ },
41788
+ "required": [
41789
+ "expectedRevision",
41790
+ "enabled",
41791
+ "content"
41792
+ ],
41793
+ "type": "object"
41794
+ },
41795
+ "NetworkProxyConnection": {
41796
+ "additionalProperties": false,
41797
+ "properties": {
41798
+ "destination": {
41799
+ "maxLength": 253,
41800
+ "minLength": 1,
41801
+ "type": "string"
41802
+ },
41803
+ "downloadBytes": {
41804
+ "format": "int64",
41805
+ "minimum": 0,
41806
+ "type": "integer"
41807
+ },
41808
+ "id": {
41809
+ "maxLength": 128,
41810
+ "minLength": 1,
41811
+ "type": "string"
41812
+ },
41813
+ "network": {
41814
+ "enum": [
41815
+ "tcp",
41816
+ "udp",
41817
+ "other"
41818
+ ],
41819
+ "type": "string",
41820
+ "x-enum-varnames": [
41821
+ "NetworkProxyConnectionNetworkTCP",
41822
+ "NetworkProxyConnectionNetworkUDP",
41823
+ "NetworkProxyConnectionNetworkOther"
41824
+ ]
41825
+ },
41826
+ "startedAt": {
41827
+ "format": "date-time",
41828
+ "type": "string"
41829
+ },
41830
+ "uploadBytes": {
41831
+ "format": "int64",
41832
+ "minimum": 0,
41833
+ "type": "integer"
41834
+ }
41835
+ },
41836
+ "required": [
41837
+ "id",
41838
+ "destination",
41839
+ "network",
41840
+ "uploadBytes",
41841
+ "downloadBytes"
41842
+ ],
41843
+ "type": "object"
41844
+ },
41845
+ "NetworkProxyConnectionsEnvelope": {
41846
+ "additionalProperties": false,
41847
+ "properties": {
41848
+ "connections": {
41849
+ "items": {
41850
+ "$ref": "#/components/schemas/NetworkProxyConnection"
41851
+ },
41852
+ "maxItems": 200,
41853
+ "type": "array"
41854
+ },
41855
+ "instanceId": {
41856
+ "maxLength": 128,
41857
+ "minLength": 1,
41858
+ "type": "string"
41859
+ },
41860
+ "observedAt": {
41861
+ "format": "date-time",
41862
+ "type": "string"
41863
+ },
41864
+ "state": {
41865
+ "enum": [
41866
+ "available",
41867
+ "unsupported",
41868
+ "unavailable"
41869
+ ],
41870
+ "type": "string"
41871
+ }
41872
+ },
41873
+ "required": [
41874
+ "instanceId",
41875
+ "state",
41876
+ "connections"
41877
+ ],
41878
+ "type": "object"
41879
+ },
41880
+ "NetworkProxyEngine": {
41881
+ "enum": [
41882
+ "mihomo",
41883
+ "sing-box",
41884
+ "v2ray"
41885
+ ],
41886
+ "type": "string",
41887
+ "x-enum-varnames": [
41888
+ "NetworkProxyEngineMihomo",
41889
+ "NetworkProxyEngineSingBox",
41890
+ "NetworkProxyEngineV2Ray"
41891
+ ]
41892
+ },
41184
41893
  "NetworkProxyFlowSummary": {
41185
41894
  "additionalProperties": false,
41186
41895
  "properties": {
@@ -41244,6 +41953,228 @@
41244
41953
  ],
41245
41954
  "type": "object"
41246
41955
  },
41956
+ "NetworkProxyInstance": {
41957
+ "additionalProperties": false,
41958
+ "properties": {
41959
+ "capabilities": {
41960
+ "items": {
41961
+ "$ref": "#/components/schemas/NetworkProxyCapability"
41962
+ },
41963
+ "maxItems": 3,
41964
+ "type": "array",
41965
+ "uniqueItems": true
41966
+ },
41967
+ "createdAt": {
41968
+ "format": "date-time",
41969
+ "type": "string"
41970
+ },
41971
+ "desiredRevision": {
41972
+ "format": "int64",
41973
+ "minimum": 0,
41974
+ "type": "integer"
41975
+ },
41976
+ "enabled": {
41977
+ "type": "boolean"
41978
+ },
41979
+ "engine": {
41980
+ "$ref": "#/components/schemas/NetworkProxyEngine"
41981
+ },
41982
+ "engineVersion": {
41983
+ "maxLength": 64,
41984
+ "type": "string"
41985
+ },
41986
+ "host": {
41987
+ "maxLength": 128,
41988
+ "type": "string"
41989
+ },
41990
+ "id": {
41991
+ "maxLength": 128,
41992
+ "minLength": 1,
41993
+ "type": "string"
41994
+ },
41995
+ "lastSampleAt": {
41996
+ "format": "date-time",
41997
+ "type": "string"
41998
+ },
41999
+ "lastSeenAt": {
42000
+ "format": "date-time",
42001
+ "type": "string"
42002
+ },
42003
+ "name": {
42004
+ "maxLength": 128,
42005
+ "minLength": 1,
42006
+ "type": "string"
42007
+ },
42008
+ "observedRevision": {
42009
+ "format": "int64",
42010
+ "minimum": 0,
42011
+ "type": "integer"
42012
+ },
42013
+ "reasonCode": {
42014
+ "maxLength": 128,
42015
+ "type": "string"
42016
+ },
42017
+ "status": {
42018
+ "$ref": "#/components/schemas/NetworkProxyInstanceStatus"
42019
+ },
42020
+ "updatedAt": {
42021
+ "format": "date-time",
42022
+ "type": "string"
42023
+ }
42024
+ },
42025
+ "required": [
42026
+ "id",
42027
+ "name",
42028
+ "engine",
42029
+ "enabled",
42030
+ "status",
42031
+ "capabilities",
42032
+ "desiredRevision",
42033
+ "observedRevision",
42034
+ "createdAt",
42035
+ "updatedAt"
42036
+ ],
42037
+ "type": "object"
42038
+ },
42039
+ "NetworkProxyInstanceEnvelope": {
42040
+ "additionalProperties": false,
42041
+ "properties": {
42042
+ "data": {
42043
+ "$ref": "#/components/schemas/NetworkProxyInstance"
42044
+ }
42045
+ },
42046
+ "required": [
42047
+ "data"
42048
+ ],
42049
+ "type": "object"
42050
+ },
42051
+ "NetworkProxyInstanceInput": {
42052
+ "additionalProperties": false,
42053
+ "properties": {
42054
+ "engine": {
42055
+ "$ref": "#/components/schemas/NetworkProxyEngine"
42056
+ },
42057
+ "host": {
42058
+ "maxLength": 128,
42059
+ "type": "string"
42060
+ },
42061
+ "id": {
42062
+ "maxLength": 128,
42063
+ "minLength": 1,
42064
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
42065
+ "type": "string"
42066
+ },
42067
+ "name": {
42068
+ "maxLength": 128,
42069
+ "minLength": 1,
42070
+ "type": "string"
42071
+ }
42072
+ },
42073
+ "required": [
42074
+ "id",
42075
+ "name",
42076
+ "engine"
42077
+ ],
42078
+ "type": "object"
42079
+ },
42080
+ "NetworkProxyInstanceListEnvelope": {
42081
+ "additionalProperties": false,
42082
+ "properties": {
42083
+ "items": {
42084
+ "items": {
42085
+ "$ref": "#/components/schemas/NetworkProxyInstance"
42086
+ },
42087
+ "maxItems": 200,
42088
+ "type": "array"
42089
+ }
42090
+ },
42091
+ "required": [
42092
+ "items"
42093
+ ],
42094
+ "type": "object"
42095
+ },
42096
+ "NetworkProxyInstanceStatus": {
42097
+ "enum": [
42098
+ "unregistered",
42099
+ "online",
42100
+ "degraded",
42101
+ "offline",
42102
+ "disabled"
42103
+ ],
42104
+ "type": "string",
42105
+ "x-enum-varnames": [
42106
+ "NetworkProxyInstanceStatusUnregistered",
42107
+ "NetworkProxyInstanceStatusOnline",
42108
+ "NetworkProxyInstanceStatusDegraded",
42109
+ "NetworkProxyInstanceStatusOffline",
42110
+ "NetworkProxyInstanceStatusDisabled"
42111
+ ]
42112
+ },
42113
+ "NetworkProxyTrafficEnvelope": {
42114
+ "additionalProperties": false,
42115
+ "properties": {
42116
+ "instanceId": {
42117
+ "maxLength": 128,
42118
+ "minLength": 1,
42119
+ "type": "string"
42120
+ },
42121
+ "samples": {
42122
+ "items": {
42123
+ "$ref": "#/components/schemas/NetworkProxyTrafficSample"
42124
+ },
42125
+ "maxItems": 1440,
42126
+ "type": "array"
42127
+ },
42128
+ "supported": {
42129
+ "type": "boolean"
42130
+ }
42131
+ },
42132
+ "required": [
42133
+ "instanceId",
42134
+ "supported",
42135
+ "samples"
42136
+ ],
42137
+ "type": "object"
42138
+ },
42139
+ "NetworkProxyTrafficSample": {
42140
+ "additionalProperties": false,
42141
+ "properties": {
42142
+ "activeConnections": {
42143
+ "minimum": 0,
42144
+ "type": "integer"
42145
+ },
42146
+ "downloadBytesPerSecond": {
42147
+ "minimum": 0,
42148
+ "type": "number"
42149
+ },
42150
+ "downloadTotal": {
42151
+ "format": "int64",
42152
+ "minimum": 0,
42153
+ "type": "integer"
42154
+ },
42155
+ "observedAt": {
42156
+ "format": "date-time",
42157
+ "type": "string"
42158
+ },
42159
+ "uploadBytesPerSecond": {
42160
+ "minimum": 0,
42161
+ "type": "number"
42162
+ },
42163
+ "uploadTotal": {
42164
+ "format": "int64",
42165
+ "minimum": 0,
42166
+ "type": "integer"
42167
+ }
42168
+ },
42169
+ "required": [
42170
+ "observedAt",
42171
+ "uploadTotal",
42172
+ "downloadTotal",
42173
+ "uploadBytesPerSecond",
42174
+ "downloadBytesPerSecond"
42175
+ ],
42176
+ "type": "object"
42177
+ },
41247
42178
  "NetworkResource": {
41248
42179
  "additionalProperties": false,
41249
42180
  "properties": {
@@ -41504,6 +42435,7 @@
41504
42435
  },
41505
42436
  "NetworkRuntimeEnrollmentInput": {
41506
42437
  "additionalProperties": false,
42438
+ "description": "For proxy runtimes, runtimeId identifies an existing proxy instance and deviceId and subjectId must equal runtimeId.",
41507
42439
  "properties": {
41508
42440
  "deviceId": {
41509
42441
  "maxLength": 128,
@@ -41603,13 +42535,15 @@
41603
42535
  "enum": [
41604
42536
  "endpoint",
41605
42537
  "gateway",
41606
- "nas"
42538
+ "nas",
42539
+ "proxy"
41607
42540
  ],
41608
42541
  "type": "string",
41609
42542
  "x-enum-varnames": [
41610
42543
  "NetworkRuntimeKindEndpoint",
41611
42544
  "NetworkRuntimeKindGateway",
41612
- "NetworkRuntimeKindNAS"
42545
+ "NetworkRuntimeKindNAS",
42546
+ "NetworkRuntimeKindProxy"
41613
42547
  ]
41614
42548
  },
41615
42549
  "NetworkSession": {
@@ -60796,7 +61730,7 @@
60796
61730
  "info": {
60797
61731
  "description": "Public OpenSoha core API contract. This first contract focuses on stable cross-repository boundaries: auth, health, runner-facing control-plane callbacks, AI Gateway, and MCP capability discovery.\n",
60798
61732
  "title": "Soha API",
60799
- "version": "0.1.19"
61733
+ "version": "0.1.21"
60800
61734
  },
60801
61735
  "openapi": "3.1.0",
60802
61736
  "paths": {