@opensoha/contracts 0.1.9 → 0.1.12

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 (60) hide show
  1. package/README.md +1 -1
  2. package/auth/catalog_generated.go +3 -3
  3. package/auth/catalog_test.go +35 -0
  4. package/auth/permission-catalog.json +19 -151
  5. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  6. package/compat/openapi-loose-boundaries-0.1.0.json +1 -5
  7. package/fixtures/openapi/DockerHostAgentCredentialsEnvelope/invalid/missing-runtime-token.json +9 -0
  8. package/fixtures/openapi/DockerHostAgentCredentialsEnvelope/valid/credentials.json +10 -0
  9. package/fixtures/openapi/DockerHostAgentEnrollmentRequest/invalid/short-token.json +4 -0
  10. package/fixtures/openapi/DockerHostAgentEnrollmentRequest/valid/enrollment.json +4 -0
  11. package/fixtures/openapi/DockerHostAgentInstallation/invalid/missing-command.json +6 -0
  12. package/fixtures/openapi/DockerHostAgentInstallation/valid/installation.json +7 -0
  13. package/fixtures/openapi/IdentityProvider/invalid/missing-id.json +9 -0
  14. package/fixtures/openapi/IdentityProvider/valid/current.json +12 -0
  15. package/fixtures/openapi/IdentityProvider/valid/v0.1.9.json +14 -0
  16. package/fixtures/openapi/MenuEnvelope/invalid/missing-data.json +1 -0
  17. package/fixtures/openapi/MenuEnvelope/valid/menu.json +13 -0
  18. package/fixtures/openapi/MenuInput/invalid/missing-icon.json +5 -0
  19. package/fixtures/openapi/MenuInput/valid/top-level.json +12 -0
  20. package/fixtures/openapi/MenuListEnvelope/invalid/items-object.json +3 -0
  21. package/fixtures/openapi/MenuListEnvelope/valid/tree.json +27 -0
  22. package/fixtures/openapi/OIDCClient/invalid/missing-grant-types.json +9 -0
  23. package/fixtures/openapi/OIDCClient/valid/current.json +19 -0
  24. package/fixtures/openapi/OIDCClient/valid/v0.1.9.json +10 -0
  25. package/fixtures/openapi/OIDCClientInput/invalid/empty-rules.json +5 -0
  26. package/fixtures/openapi/OIDCClientInput/valid/regex.json +4 -0
  27. package/fixtures/openapi/OIDCClientInput/valid/strict.json +4 -0
  28. package/fixtures/openapi/OIDCClientInput/valid/v0.1.9.json +7 -0
  29. package/fixtures/openapi/ObservabilityContext/invalid/missing-time-range.json +6 -0
  30. package/fixtures/openapi/ObservabilityContext/valid/scoped.json +27 -0
  31. package/fixtures/openapi/ObservabilityDashboardImportResultEnvelope/valid/imported.json +28 -1
  32. package/fixtures/openapi/ObservabilityDashboardPanelQueryInput/invalid/missing-time-to.json +6 -0
  33. package/fixtures/openapi/ObservabilityDashboardPanelQueryInput/valid/variables.json +8 -0
  34. package/fixtures/openapi/ObservabilityMetricCatalogEnvelope/invalid/missing-availability.json +10 -0
  35. package/fixtures/openapi/ObservabilityMetricCatalogEnvelope/valid/catalog.json +13 -0
  36. package/fixtures/openapi/ObservabilityQueryResultMeta/invalid/missing-state.json +3 -0
  37. package/fixtures/openapi/ObservabilityQueryResultMeta/valid/partial.json +15 -0
  38. package/fixtures/openapi/ObservabilityQuerySnapshot/invalid/missing-context.json +5 -0
  39. package/fixtures/openapi/ObservabilityQuerySnapshot/valid/prometheus.json +22 -0
  40. package/fixtures/openapi/ObservabilityServiceEnvelope/invalid/missing-status.json +12 -0
  41. package/fixtures/openapi/ObservabilityServiceEnvelope/valid/service.json +29 -0
  42. package/fixtures/openapi/ObservabilityServiceListEnvelope/invalid/missing-meta.json +3 -0
  43. package/fixtures/openapi/ObservabilityServiceListEnvelope/valid/services.json +39 -0
  44. package/fixtures/openapi/ObservabilityTopologyEnvelope/invalid/missing-edge-status.json +10 -0
  45. package/fixtures/openapi/ObservabilityTopologyEnvelope/valid/topology.json +22 -0
  46. package/fixtures/openapi/ScopeGrantEnvelope/invalid/missing-id.json +13 -0
  47. package/fixtures/openapi/ScopeGrantEnvelope/valid/platform.json +15 -0
  48. package/fixtures/openapi/ScopeGrantInput/invalid/missing-subject.json +7 -0
  49. package/fixtures/openapi/ScopeGrantInput/valid/delivery.json +11 -0
  50. package/fixtures/openapi/ScopeGrantListEnvelope/invalid/unknown-scope.json +16 -0
  51. package/fixtures/openapi/ScopeGrantListEnvelope/valid/list.json +18 -0
  52. package/gen/go/sohaapi/client.go +10 -1
  53. package/gen/go/sohaapi/client_test.go +47 -0
  54. package/gen/go/sohaapi/types.go +987 -93
  55. package/gen/ts/sohaapi/index.ts +1263 -48
  56. package/go.mod +1 -1
  57. package/openapi/soha-api.json +2501 -50
  58. package/openapi/soha-api.yaml +1398 -57
  59. package/openapi/spec_generated.go +3 -3
  60. package/package.json +1 -1
@@ -786,6 +786,16 @@
786
786
  "type": "string"
787
787
  }
788
788
  },
789
+ "MenuID": {
790
+ "in": "path",
791
+ "name": "menuID",
792
+ "required": true,
793
+ "schema": {
794
+ "maxLength": 128,
795
+ "minLength": 1,
796
+ "type": "string"
797
+ }
798
+ },
789
799
  "MFAChallengeID": {
790
800
  "in": "path",
791
801
  "name": "mfaChallengeID",
@@ -826,6 +836,74 @@
826
836
  "type": "string"
827
837
  }
828
838
  },
839
+ "ObservabilityClusterIDQuery": {
840
+ "in": "query",
841
+ "name": "clusterId",
842
+ "required": false,
843
+ "schema": {
844
+ "maxLength": 128,
845
+ "minLength": 1,
846
+ "type": "string"
847
+ }
848
+ },
849
+ "ObservabilityDataSourceIDQuery": {
850
+ "in": "query",
851
+ "name": "dataSourceId",
852
+ "required": false,
853
+ "schema": {
854
+ "maxLength": 200,
855
+ "minLength": 1,
856
+ "type": "string"
857
+ }
858
+ },
859
+ "ObservabilityEnvironmentQuery": {
860
+ "in": "query",
861
+ "name": "environment",
862
+ "required": false,
863
+ "schema": {
864
+ "maxLength": 128,
865
+ "minLength": 1,
866
+ "type": "string"
867
+ }
868
+ },
869
+ "ObservabilityNamespaceQuery": {
870
+ "in": "query",
871
+ "name": "namespace",
872
+ "required": false,
873
+ "schema": {
874
+ "maxLength": 253,
875
+ "minLength": 1,
876
+ "type": "string"
877
+ }
878
+ },
879
+ "ObservabilityServiceQuery": {
880
+ "in": "query",
881
+ "name": "service",
882
+ "required": false,
883
+ "schema": {
884
+ "maxLength": 253,
885
+ "minLength": 1,
886
+ "type": "string"
887
+ }
888
+ },
889
+ "ObservabilityTimeFromQuery": {
890
+ "in": "query",
891
+ "name": "timeFrom",
892
+ "required": true,
893
+ "schema": {
894
+ "format": "date-time",
895
+ "type": "string"
896
+ }
897
+ },
898
+ "ObservabilityTimeToQuery": {
899
+ "in": "query",
900
+ "name": "timeTo",
901
+ "required": true,
902
+ "schema": {
903
+ "format": "date-time",
904
+ "type": "string"
905
+ }
906
+ },
829
907
  "OIDCClientID": {
830
908
  "in": "path",
831
909
  "name": "oidcClientID",
@@ -975,6 +1053,16 @@
975
1053
  "type": "string"
976
1054
  }
977
1055
  },
1056
+ "ScopeGrantID": {
1057
+ "in": "path",
1058
+ "name": "scopeGrantID",
1059
+ "required": true,
1060
+ "schema": {
1061
+ "maxLength": 128,
1062
+ "minLength": 1,
1063
+ "type": "string"
1064
+ }
1065
+ },
978
1066
  "SecretID": {
979
1067
  "in": "path",
980
1068
  "name": "secretID",
@@ -5945,6 +6033,9 @@
5945
6033
  },
5946
6034
  "sidebarTitle": {
5947
6035
  "type": "string"
6036
+ },
6037
+ "slogan": {
6038
+ "type": "string"
5948
6039
  }
5949
6040
  },
5950
6041
  "required": [
@@ -9972,6 +10063,130 @@
9972
10063
  ],
9973
10064
  "type": "object"
9974
10065
  },
10066
+ "DockerHostAgentCredentials": {
10067
+ "additionalProperties": false,
10068
+ "properties": {
10069
+ "agentBearerToken": {
10070
+ "description": "Credential for the Agent's local HTTP API, returned only by the successful enrollment response.",
10071
+ "format": "password",
10072
+ "maxLength": 512,
10073
+ "minLength": 32,
10074
+ "type": "string"
10075
+ },
10076
+ "agentId": {
10077
+ "maxLength": 200,
10078
+ "minLength": 1,
10079
+ "type": "string"
10080
+ },
10081
+ "hostId": {
10082
+ "minLength": 1,
10083
+ "type": "string"
10084
+ },
10085
+ "issuedAt": {
10086
+ "format": "date-time",
10087
+ "type": "string"
10088
+ },
10089
+ "operationId": {
10090
+ "minLength": 1,
10091
+ "type": "string"
10092
+ },
10093
+ "runtimeBearerToken": {
10094
+ "description": "Revocable credential restricted to Docker operations for this host.",
10095
+ "format": "password",
10096
+ "maxLength": 512,
10097
+ "minLength": 32,
10098
+ "type": "string"
10099
+ }
10100
+ },
10101
+ "required": [
10102
+ "hostId",
10103
+ "operationId",
10104
+ "agentId",
10105
+ "agentBearerToken",
10106
+ "runtimeBearerToken",
10107
+ "issuedAt"
10108
+ ],
10109
+ "type": "object"
10110
+ },
10111
+ "DockerHostAgentCredentialsEnvelope": {
10112
+ "additionalProperties": false,
10113
+ "properties": {
10114
+ "data": {
10115
+ "$ref": "#/components/schemas/DockerHostAgentCredentials"
10116
+ }
10117
+ },
10118
+ "required": [
10119
+ "data"
10120
+ ],
10121
+ "type": "object"
10122
+ },
10123
+ "DockerHostAgentEnrollmentRequest": {
10124
+ "additionalProperties": false,
10125
+ "properties": {
10126
+ "agentId": {
10127
+ "maxLength": 200,
10128
+ "minLength": 1,
10129
+ "type": "string"
10130
+ },
10131
+ "enrollmentToken": {
10132
+ "description": "Short-lived one-time secret delivered only inside the installer.",
10133
+ "format": "password",
10134
+ "maxLength": 512,
10135
+ "minLength": 32,
10136
+ "type": "string"
10137
+ }
10138
+ },
10139
+ "required": [
10140
+ "agentId",
10141
+ "enrollmentToken"
10142
+ ],
10143
+ "type": "object"
10144
+ },
10145
+ "DockerHostAgentInstallation": {
10146
+ "additionalProperties": false,
10147
+ "properties": {
10148
+ "command": {
10149
+ "minLength": 1,
10150
+ "type": "string"
10151
+ },
10152
+ "expiresAt": {
10153
+ "format": "date-time",
10154
+ "type": "string"
10155
+ },
10156
+ "hostId": {
10157
+ "minLength": 1,
10158
+ "type": "string"
10159
+ },
10160
+ "operationId": {
10161
+ "minLength": 1,
10162
+ "type": "string"
10163
+ },
10164
+ "scriptUrl": {
10165
+ "format": "uri",
10166
+ "type": "string"
10167
+ }
10168
+ },
10169
+ "required": [
10170
+ "hostId",
10171
+ "operationId",
10172
+ "scriptUrl",
10173
+ "command",
10174
+ "expiresAt"
10175
+ ],
10176
+ "type": "object"
10177
+ },
10178
+ "DockerHostAgentInstallationEnvelope": {
10179
+ "additionalProperties": false,
10180
+ "properties": {
10181
+ "data": {
10182
+ "$ref": "#/components/schemas/DockerHostAgentInstallation"
10183
+ }
10184
+ },
10185
+ "required": [
10186
+ "data"
10187
+ ],
10188
+ "type": "object"
10189
+ },
9975
10190
  "DockerOperation": {
9976
10191
  "additionalProperties": true,
9977
10192
  "properties": {
@@ -13440,8 +13655,16 @@
13440
13655
  },
13441
13656
  "config": {
13442
13657
  "additionalProperties": true,
13658
+ "description": "Non-secret provider configuration.",
13443
13659
  "type": "object"
13444
13660
  },
13661
+ "configuredSecretAliases": {
13662
+ "items": {
13663
+ "type": "string"
13664
+ },
13665
+ "readOnly": true,
13666
+ "type": "array"
13667
+ },
13445
13668
  "createdAt": {
13446
13669
  "format": "date-time",
13447
13670
  "type": "string"
@@ -13460,6 +13683,9 @@
13460
13683
  },
13461
13684
  "secretRefs": {
13462
13685
  "additionalProperties": true,
13686
+ "deprecated": true,
13687
+ "description": "Deprecated response field retained for 0.1.x SDK compatibility; current servers omit it.",
13688
+ "readOnly": true,
13463
13689
  "type": "object"
13464
13690
  },
13465
13691
  "status": {
@@ -13519,8 +13745,13 @@
13519
13745
  "type": "string"
13520
13746
  },
13521
13747
  "secretRefs": {
13522
- "additionalProperties": true,
13523
- "type": "object"
13748
+ "allOf": [
13749
+ {
13750
+ "$ref": "#/components/schemas/SecretReferenceMap"
13751
+ }
13752
+ ],
13753
+ "description": "Omit on update to preserve existing references; send an empty object to clear them.",
13754
+ "writeOnly": true
13524
13755
  },
13525
13756
  "status": {
13526
13757
  "$ref": "#/components/schemas/IdentityResourceStatus"
@@ -13535,7 +13766,6 @@
13535
13766
  "type",
13536
13767
  "enabled",
13537
13768
  "config",
13538
- "secretRefs",
13539
13769
  "status"
13540
13770
  ],
13541
13771
  "type": "object"
@@ -25471,6 +25701,9 @@
25471
25701
  "LoginOptions": {
25472
25702
  "additionalProperties": false,
25473
25703
  "properties": {
25704
+ "branding": {
25705
+ "$ref": "#/components/schemas/BrandingSettings"
25706
+ },
25474
25707
  "localPasswordLoginEnabled": {
25475
25708
  "type": "boolean"
25476
25709
  },
@@ -25736,6 +25969,9 @@
25736
25969
  },
25737
25970
  "type": "array"
25738
25971
  },
25972
+ "meta": {
25973
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
25974
+ },
25739
25975
  "nextCursor": {
25740
25976
  "type": "string"
25741
25977
  },
@@ -28357,6 +28593,163 @@
28357
28593
  ],
28358
28594
  "type": "object"
28359
28595
  },
28596
+ "Menu": {
28597
+ "additionalProperties": false,
28598
+ "properties": {
28599
+ "children": {
28600
+ "items": {
28601
+ "$ref": "#/components/schemas/Menu"
28602
+ },
28603
+ "type": "array"
28604
+ },
28605
+ "enabled": {
28606
+ "type": "boolean"
28607
+ },
28608
+ "iconKey": {
28609
+ "minLength": 1,
28610
+ "type": "string"
28611
+ },
28612
+ "id": {
28613
+ "minLength": 1,
28614
+ "type": "string"
28615
+ },
28616
+ "labelEn": {
28617
+ "minLength": 1,
28618
+ "type": "string"
28619
+ },
28620
+ "labelZh": {
28621
+ "minLength": 1,
28622
+ "type": "string"
28623
+ },
28624
+ "parentId": {
28625
+ "minLength": 1,
28626
+ "type": "string"
28627
+ },
28628
+ "path": {
28629
+ "minLength": 1,
28630
+ "type": "string"
28631
+ },
28632
+ "roleIds": {
28633
+ "items": {
28634
+ "minLength": 1,
28635
+ "type": "string"
28636
+ },
28637
+ "type": "array",
28638
+ "uniqueItems": true
28639
+ },
28640
+ "section": {
28641
+ "type": "string"
28642
+ },
28643
+ "sortOrder": {
28644
+ "type": "integer"
28645
+ }
28646
+ },
28647
+ "required": [
28648
+ "id",
28649
+ "path",
28650
+ "labelZh",
28651
+ "labelEn",
28652
+ "iconKey",
28653
+ "section",
28654
+ "sortOrder",
28655
+ "enabled"
28656
+ ],
28657
+ "type": "object"
28658
+ },
28659
+ "MenuDeleteResult": {
28660
+ "additionalProperties": false,
28661
+ "properties": {
28662
+ "status": {
28663
+ "const": "ok",
28664
+ "type": "string"
28665
+ }
28666
+ },
28667
+ "required": [
28668
+ "status"
28669
+ ],
28670
+ "type": "object"
28671
+ },
28672
+ "MenuEnvelope": {
28673
+ "additionalProperties": false,
28674
+ "properties": {
28675
+ "data": {
28676
+ "$ref": "#/components/schemas/Menu"
28677
+ }
28678
+ },
28679
+ "required": [
28680
+ "data"
28681
+ ],
28682
+ "type": "object"
28683
+ },
28684
+ "MenuInput": {
28685
+ "additionalProperties": false,
28686
+ "properties": {
28687
+ "enabled": {
28688
+ "type": "boolean"
28689
+ },
28690
+ "iconKey": {
28691
+ "minLength": 1,
28692
+ "type": "string"
28693
+ },
28694
+ "id": {
28695
+ "minLength": 1,
28696
+ "type": "string"
28697
+ },
28698
+ "labelEn": {
28699
+ "minLength": 1,
28700
+ "type": "string"
28701
+ },
28702
+ "labelZh": {
28703
+ "minLength": 1,
28704
+ "type": "string"
28705
+ },
28706
+ "parentId": {
28707
+ "minLength": 1,
28708
+ "nullable": true,
28709
+ "type": "string"
28710
+ },
28711
+ "path": {
28712
+ "minLength": 1,
28713
+ "type": "string"
28714
+ },
28715
+ "roleIds": {
28716
+ "items": {
28717
+ "minLength": 1,
28718
+ "type": "string"
28719
+ },
28720
+ "type": "array",
28721
+ "uniqueItems": true
28722
+ },
28723
+ "section": {
28724
+ "type": "string"
28725
+ },
28726
+ "sortOrder": {
28727
+ "type": "integer"
28728
+ }
28729
+ },
28730
+ "required": [
28731
+ "path",
28732
+ "labelZh",
28733
+ "labelEn",
28734
+ "iconKey"
28735
+ ],
28736
+ "type": "object"
28737
+ },
28738
+ "MenuListEnvelope": {
28739
+ "additionalProperties": false,
28740
+ "properties": {
28741
+ "items": {
28742
+ "items": {
28743
+ "$ref": "#/components/schemas/Menu"
28744
+ },
28745
+ "type": "array"
28746
+ }
28747
+ },
28748
+ "required": [
28749
+ "items"
28750
+ ],
28751
+ "type": "object"
28752
+ },
28360
28753
  "MFAAdminResetRequest": {
28361
28754
  "additionalProperties": false,
28362
28755
  "properties": {
@@ -29009,6 +29402,40 @@
29009
29402
  "description": "Native provider-compatible JSON. Unknown fields are preserved and responses are not wrapped in an OpenSoha envelope.",
29010
29403
  "type": "object"
29011
29404
  },
29405
+ "ObservabilityContext": {
29406
+ "additionalProperties": false,
29407
+ "properties": {
29408
+ "filter": {
29409
+ "$ref": "#/components/schemas/ObservabilityFilter"
29410
+ },
29411
+ "resource": {
29412
+ "$ref": "#/components/schemas/ObservabilityResourceIdentity"
29413
+ },
29414
+ "scope": {
29415
+ "$ref": "#/components/schemas/ObservabilityQueryScope"
29416
+ },
29417
+ "scopeRestricted": {
29418
+ "description": "True when authorization narrowed the requested scope.",
29419
+ "readOnly": true,
29420
+ "type": "boolean"
29421
+ },
29422
+ "timeRange": {
29423
+ "$ref": "#/components/schemas/ObservabilityTimeRange"
29424
+ },
29425
+ "version": {
29426
+ "enum": [
29427
+ "v1"
29428
+ ],
29429
+ "type": "string"
29430
+ }
29431
+ },
29432
+ "required": [
29433
+ "version",
29434
+ "scope",
29435
+ "timeRange"
29436
+ ],
29437
+ "type": "object"
29438
+ },
29012
29439
  "ObservabilityDashboard": {
29013
29440
  "additionalProperties": false,
29014
29441
  "properties": {
@@ -29016,6 +29443,13 @@
29016
29443
  "format": "date-time",
29017
29444
  "type": "string"
29018
29445
  },
29446
+ "dataSourceBindings": {
29447
+ "items": {
29448
+ "$ref": "#/components/schemas/ObservabilityDashboardDataSourceBinding"
29449
+ },
29450
+ "maxItems": 100,
29451
+ "type": "array"
29452
+ },
29019
29453
  "dataSourceId": {
29020
29454
  "maxLength": 200,
29021
29455
  "type": "string"
@@ -29025,6 +29459,13 @@
29025
29459
  "minLength": 1,
29026
29460
  "type": "string"
29027
29461
  },
29462
+ "importWarnings": {
29463
+ "items": {
29464
+ "$ref": "#/components/schemas/ObservabilityDashboardImportWarning"
29465
+ },
29466
+ "maxItems": 500,
29467
+ "type": "array"
29468
+ },
29028
29469
  "name": {
29029
29470
  "maxLength": 200,
29030
29471
  "minLength": 1,
@@ -29037,9 +29478,17 @@
29037
29478
  "maxItems": 200,
29038
29479
  "type": "array"
29039
29480
  },
29481
+ "rawJson": {
29482
+ "description": "Original bounded Grafana import document. It is retained for fidelity and never executed directly.",
29483
+ "maxLength": 2097152,
29484
+ "type": "string"
29485
+ },
29040
29486
  "source": {
29041
29487
  "$ref": "#/components/schemas/ObservabilityDashboardSource"
29042
29488
  },
29489
+ "sourceFormat": {
29490
+ "$ref": "#/components/schemas/ObservabilityDashboardSourceFormat"
29491
+ },
29043
29492
  "sourceSchemaVersion": {
29044
29493
  "minimum": 0,
29045
29494
  "type": "integer"
@@ -29057,6 +29506,13 @@
29057
29506
  "updatedAt": {
29058
29507
  "format": "date-time",
29059
29508
  "type": "string"
29509
+ },
29510
+ "variables": {
29511
+ "items": {
29512
+ "$ref": "#/components/schemas/ObservabilityDashboardVariable"
29513
+ },
29514
+ "maxItems": 50,
29515
+ "type": "array"
29060
29516
  }
29061
29517
  },
29062
29518
  "required": [
@@ -29070,6 +29526,30 @@
29070
29526
  ],
29071
29527
  "type": "object"
29072
29528
  },
29529
+ "ObservabilityDashboardDataSourceBinding": {
29530
+ "additionalProperties": false,
29531
+ "properties": {
29532
+ "dataSourceId": {
29533
+ "maxLength": 200,
29534
+ "minLength": 1,
29535
+ "type": "string"
29536
+ },
29537
+ "type": {
29538
+ "maxLength": 128,
29539
+ "minLength": 1,
29540
+ "type": "string"
29541
+ },
29542
+ "uid": {
29543
+ "maxLength": 200,
29544
+ "type": "string"
29545
+ }
29546
+ },
29547
+ "required": [
29548
+ "type",
29549
+ "dataSourceId"
29550
+ ],
29551
+ "type": "object"
29552
+ },
29073
29553
  "ObservabilityDashboardEnvelope": {
29074
29554
  "additionalProperties": false,
29075
29555
  "properties": {
@@ -29089,7 +29569,7 @@
29089
29569
  "$ref": "#/components/schemas/ObservabilityDashboard"
29090
29570
  },
29091
29571
  "importedPanelCount": {
29092
- "minimum": 1,
29572
+ "minimum": 0,
29093
29573
  "type": "integer"
29094
29574
  },
29095
29575
  "skippedPanelCount": {
@@ -29186,6 +29666,15 @@
29186
29666
  "queryable": {
29187
29667
  "type": "boolean"
29188
29668
  },
29669
+ "rawJson": {
29670
+ "description": "Original Grafana panel JSON retained for unsupported renderers and never executed directly.",
29671
+ "maxLength": 2097152,
29672
+ "type": "string"
29673
+ },
29674
+ "sourcePanelType": {
29675
+ "maxLength": 128,
29676
+ "type": "string"
29677
+ },
29189
29678
  "targets": {
29190
29679
  "items": {
29191
29680
  "$ref": "#/components/schemas/ObservabilityDashboardTarget"
@@ -29200,6 +29689,9 @@
29200
29689
  },
29201
29690
  "type": {
29202
29691
  "$ref": "#/components/schemas/ObservabilityDashboardPanelType"
29692
+ },
29693
+ "unsupported": {
29694
+ "type": "boolean"
29203
29695
  }
29204
29696
  },
29205
29697
  "required": [
@@ -29259,6 +29751,14 @@
29259
29751
  "timeTo": {
29260
29752
  "format": "date-time",
29261
29753
  "type": "string"
29754
+ },
29755
+ "variables": {
29756
+ "additionalProperties": {
29757
+ "maxLength": 512,
29758
+ "type": "string"
29759
+ },
29760
+ "maxProperties": 50,
29761
+ "type": "object"
29262
29762
  }
29263
29763
  },
29264
29764
  "required": [
@@ -29270,16 +29770,22 @@
29270
29770
  "ObservabilityDashboardPanelType": {
29271
29771
  "enum": [
29272
29772
  "timeseries",
29773
+ "table",
29273
29774
  "stat",
29775
+ "gauge",
29274
29776
  "text",
29275
- "row"
29777
+ "row",
29778
+ "unsupported"
29276
29779
  ],
29277
29780
  "type": "string",
29278
29781
  "x-enum-varnames": [
29279
29782
  "ObservabilityDashboardPanelTypeTimeseries",
29783
+ "ObservabilityDashboardPanelTypeTable",
29280
29784
  "ObservabilityDashboardPanelTypeStat",
29785
+ "ObservabilityDashboardPanelTypeGauge",
29281
29786
  "ObservabilityDashboardPanelTypeText",
29282
- "ObservabilityDashboardPanelTypeRow"
29787
+ "ObservabilityDashboardPanelTypeRow",
29788
+ "ObservabilityDashboardPanelTypeUnsupported"
29283
29789
  ]
29284
29790
  },
29285
29791
  "ObservabilityDashboardSource": {
@@ -29291,9 +29797,32 @@
29291
29797
  "ObservabilityDashboardSourceGrafana"
29292
29798
  ]
29293
29799
  },
29800
+ "ObservabilityDashboardSourceFormat": {
29801
+ "enum": [
29802
+ "classic",
29803
+ "v1"
29804
+ ],
29805
+ "type": "string",
29806
+ "x-enum-varnames": [
29807
+ "ObservabilityDashboardSourceFormatClassic",
29808
+ "ObservabilityDashboardSourceFormatV1"
29809
+ ]
29810
+ },
29294
29811
  "ObservabilityDashboardTarget": {
29295
29812
  "additionalProperties": false,
29296
29813
  "properties": {
29814
+ "dataSourceId": {
29815
+ "maxLength": 200,
29816
+ "type": "string"
29817
+ },
29818
+ "dataSourceType": {
29819
+ "maxLength": 128,
29820
+ "type": "string"
29821
+ },
29822
+ "dataSourceUid": {
29823
+ "maxLength": 200,
29824
+ "type": "string"
29825
+ },
29297
29826
  "expression": {
29298
29827
  "maxLength": 8192,
29299
29828
  "minLength": 1,
@@ -29315,6 +29844,53 @@
29315
29844
  ],
29316
29845
  "type": "object"
29317
29846
  },
29847
+ "ObservabilityDashboardVariable": {
29848
+ "additionalProperties": false,
29849
+ "properties": {
29850
+ "current": {
29851
+ "maxLength": 512,
29852
+ "type": "string"
29853
+ },
29854
+ "label": {
29855
+ "maxLength": 200,
29856
+ "type": "string"
29857
+ },
29858
+ "name": {
29859
+ "maxLength": 64,
29860
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
29861
+ "type": "string"
29862
+ },
29863
+ "options": {
29864
+ "items": {
29865
+ "maxLength": 512,
29866
+ "type": "string"
29867
+ },
29868
+ "maxItems": 100,
29869
+ "type": "array",
29870
+ "uniqueItems": true
29871
+ },
29872
+ "type": {
29873
+ "$ref": "#/components/schemas/ObservabilityDashboardVariableType"
29874
+ }
29875
+ },
29876
+ "required": [
29877
+ "name",
29878
+ "type",
29879
+ "options"
29880
+ ],
29881
+ "type": "object"
29882
+ },
29883
+ "ObservabilityDashboardVariableType": {
29884
+ "enum": [
29885
+ "custom",
29886
+ "constant"
29887
+ ],
29888
+ "type": "string",
29889
+ "x-enum-varnames": [
29890
+ "ObservabilityDashboardVariableTypeCustom",
29891
+ "ObservabilityDashboardVariableTypeConstant"
29892
+ ]
29893
+ },
29318
29894
  "ObservabilityDataSource": {
29319
29895
  "additionalProperties": false,
29320
29896
  "properties": {
@@ -29532,6 +30108,32 @@
29532
30108
  "ObservabilityDataSourceValidationStatusFailed"
29533
30109
  ]
29534
30110
  },
30111
+ "ObservabilityFilter": {
30112
+ "additionalProperties": false,
30113
+ "properties": {
30114
+ "labels": {
30115
+ "additionalProperties": {
30116
+ "maxLength": 1024,
30117
+ "type": "string"
30118
+ },
30119
+ "maxProperties": 100,
30120
+ "type": "object"
30121
+ },
30122
+ "spanId": {
30123
+ "maxLength": 128,
30124
+ "type": "string"
30125
+ },
30126
+ "text": {
30127
+ "maxLength": 2048,
30128
+ "type": "string"
30129
+ },
30130
+ "traceId": {
30131
+ "maxLength": 128,
30132
+ "type": "string"
30133
+ }
30134
+ },
30135
+ "type": "object"
30136
+ },
29535
30137
  "ObservabilityGrafanaDashboardImportInput": {
29536
30138
  "additionalProperties": false,
29537
30139
  "properties": {
@@ -29707,6 +30309,22 @@
29707
30309
  },
29708
30310
  "type": "object"
29709
30311
  },
30312
+ "ObservabilityMetricCatalogEnvelope": {
30313
+ "additionalProperties": false,
30314
+ "properties": {
30315
+ "items": {
30316
+ "items": {
30317
+ "$ref": "#/components/schemas/ObservabilityMetricDefinition"
30318
+ },
30319
+ "maxItems": 500,
30320
+ "type": "array"
30321
+ }
30322
+ },
30323
+ "required": [
30324
+ "items"
30325
+ ],
30326
+ "type": "object"
30327
+ },
29710
30328
  "ObservabilityMetricDataSource": {
29711
30329
  "additionalProperties": false,
29712
30330
  "properties": {
@@ -29742,6 +30360,47 @@
29742
30360
  ],
29743
30361
  "type": "object"
29744
30362
  },
30363
+ "ObservabilityMetricDefinition": {
30364
+ "additionalProperties": false,
30365
+ "properties": {
30366
+ "available": {
30367
+ "type": "boolean"
30368
+ },
30369
+ "description": {
30370
+ "maxLength": 1000,
30371
+ "type": "string"
30372
+ },
30373
+ "key": {
30374
+ "maxLength": 128,
30375
+ "minLength": 1,
30376
+ "type": "string"
30377
+ },
30378
+ "label": {
30379
+ "maxLength": 200,
30380
+ "minLength": 1,
30381
+ "type": "string"
30382
+ },
30383
+ "semanticConvention": {
30384
+ "maxLength": 256,
30385
+ "type": "string"
30386
+ },
30387
+ "signal": {
30388
+ "$ref": "#/components/schemas/ObservabilitySignal"
30389
+ },
30390
+ "unit": {
30391
+ "maxLength": 64,
30392
+ "type": "string"
30393
+ }
30394
+ },
30395
+ "required": [
30396
+ "key",
30397
+ "label",
30398
+ "unit",
30399
+ "signal",
30400
+ "available"
30401
+ ],
30402
+ "type": "object"
30403
+ },
29745
30404
  "ObservabilityMetricKey": {
29746
30405
  "enum": [
29747
30406
  "cpu_usage",
@@ -29836,6 +30495,9 @@
29836
30495
  "dataSourceId": {
29837
30496
  "type": "string"
29838
30497
  },
30498
+ "meta": {
30499
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
30500
+ },
29839
30501
  "series": {
29840
30502
  "items": {
29841
30503
  "$ref": "#/components/schemas/ObservabilityMetricSeries"
@@ -29900,6 +30562,10 @@
29900
30562
  "maxLength": 512,
29901
30563
  "type": "string"
29902
30564
  },
30565
+ "configured": {
30566
+ "description": "True when at least one enabled data source is configured for this provider.",
30567
+ "type": "boolean"
30568
+ },
29903
30569
  "description": {
29904
30570
  "maxLength": 1000,
29905
30571
  "type": "string"
@@ -29909,6 +30575,10 @@
29909
30575
  "minLength": 1,
29910
30576
  "type": "string"
29911
30577
  },
30578
+ "lastValidatedAt": {
30579
+ "format": "date-time",
30580
+ "type": "string"
30581
+ },
29912
30582
  "pluginId": {
29913
30583
  "maxLength": 200,
29914
30584
  "type": "string"
@@ -29926,6 +30596,13 @@
29926
30596
  "runtimeMode": {
29927
30597
  "$ref": "#/components/schemas/ObservabilityProviderRuntimeMode"
29928
30598
  },
30599
+ "runtimeStatus": {
30600
+ "$ref": "#/components/schemas/ObservabilityProviderRuntimeStatus"
30601
+ },
30602
+ "runtimeStatusReason": {
30603
+ "maxLength": 500,
30604
+ "type": "string"
30605
+ },
29929
30606
  "signals": {
29930
30607
  "items": {
29931
30608
  "$ref": "#/components/schemas/ObservabilityProviderSignal"
@@ -29982,6 +30659,25 @@
29982
30659
  "ObservabilityProviderRuntimeModeManagedContainer"
29983
30660
  ]
29984
30661
  },
30662
+ "ObservabilityProviderRuntimeStatus": {
30663
+ "enum": [
30664
+ "unconfigured",
30665
+ "unknown",
30666
+ "healthy",
30667
+ "degraded",
30668
+ "failed",
30669
+ "unsupported"
30670
+ ],
30671
+ "type": "string",
30672
+ "x-enum-varnames": [
30673
+ "ObservabilityProviderRuntimeStatusUnconfigured",
30674
+ "ObservabilityProviderRuntimeStatusUnknown",
30675
+ "ObservabilityProviderRuntimeStatusHealthy",
30676
+ "ObservabilityProviderRuntimeStatusDegraded",
30677
+ "ObservabilityProviderRuntimeStatusFailed",
30678
+ "ObservabilityProviderRuntimeStatusUnsupported"
30679
+ ]
30680
+ },
29985
30681
  "ObservabilityProviderSignal": {
29986
30682
  "enum": [
29987
30683
  "logs",
@@ -30010,6 +30706,96 @@
30010
30706
  "ObservabilityProviderStatusUnsupported"
30011
30707
  ]
30012
30708
  },
30709
+ "ObservabilityQueryError": {
30710
+ "additionalProperties": false,
30711
+ "properties": {
30712
+ "code": {
30713
+ "maxLength": 128,
30714
+ "pattern": "^[a-z][a-z0-9._-]*$",
30715
+ "type": "string"
30716
+ },
30717
+ "message": {
30718
+ "maxLength": 1000,
30719
+ "minLength": 1,
30720
+ "type": "string"
30721
+ },
30722
+ "retryable": {
30723
+ "type": "boolean"
30724
+ },
30725
+ "sourceId": {
30726
+ "maxLength": 200,
30727
+ "type": "string"
30728
+ }
30729
+ },
30730
+ "required": [
30731
+ "code",
30732
+ "message"
30733
+ ],
30734
+ "type": "object"
30735
+ },
30736
+ "ObservabilityQueryLanguage": {
30737
+ "enum": [
30738
+ "metric_key",
30739
+ "promql",
30740
+ "logql",
30741
+ "elasticsearch",
30742
+ "clickhouse_sql",
30743
+ "trace_filter",
30744
+ "event_filter"
30745
+ ],
30746
+ "type": "string",
30747
+ "x-enum-varnames": [
30748
+ "ObservabilityQueryLanguageMetricKey",
30749
+ "ObservabilityQueryLanguagePromQL",
30750
+ "ObservabilityQueryLanguageLogQL",
30751
+ "ObservabilityQueryLanguageElasticsearch",
30752
+ "ObservabilityQueryLanguageClickHouseSQL",
30753
+ "ObservabilityQueryLanguageTraceFilter",
30754
+ "ObservabilityQueryLanguageEventFilter"
30755
+ ]
30756
+ },
30757
+ "ObservabilityQueryResultMeta": {
30758
+ "additionalProperties": false,
30759
+ "properties": {
30760
+ "durationMs": {
30761
+ "format": "int64",
30762
+ "minimum": 0,
30763
+ "type": "integer"
30764
+ },
30765
+ "errors": {
30766
+ "items": {
30767
+ "$ref": "#/components/schemas/ObservabilityQueryError"
30768
+ },
30769
+ "maxItems": 100,
30770
+ "type": "array"
30771
+ },
30772
+ "observedAt": {
30773
+ "format": "date-time",
30774
+ "type": "string"
30775
+ },
30776
+ "scopeRestricted": {
30777
+ "type": "boolean"
30778
+ },
30779
+ "snapshot": {
30780
+ "$ref": "#/components/schemas/ObservabilityQuerySnapshot"
30781
+ },
30782
+ "state": {
30783
+ "$ref": "#/components/schemas/ObservabilityQueryState"
30784
+ },
30785
+ "warnings": {
30786
+ "items": {
30787
+ "maxLength": 1000,
30788
+ "type": "string"
30789
+ },
30790
+ "maxItems": 100,
30791
+ "type": "array"
30792
+ }
30793
+ },
30794
+ "required": [
30795
+ "state"
30796
+ ],
30797
+ "type": "object"
30798
+ },
30013
30799
  "ObservabilityQueryScope": {
30014
30800
  "additionalProperties": false,
30015
30801
  "properties": {
@@ -30017,6 +30803,10 @@
30017
30803
  "maxLength": 128,
30018
30804
  "type": "string"
30019
30805
  },
30806
+ "environment": {
30807
+ "maxLength": 128,
30808
+ "type": "string"
30809
+ },
30020
30810
  "namespace": {
30021
30811
  "maxLength": 253,
30022
30812
  "type": "string"
@@ -30028,10 +30818,460 @@
30028
30818
  "workload": {
30029
30819
  "maxLength": 253,
30030
30820
  "type": "string"
30821
+ },
30822
+ "workspaceId": {
30823
+ "maxLength": 128,
30824
+ "type": "string"
30031
30825
  }
30032
30826
  },
30033
30827
  "type": "object"
30034
30828
  },
30829
+ "ObservabilityQuerySnapshot": {
30830
+ "additionalProperties": false,
30831
+ "properties": {
30832
+ "backendType": {
30833
+ "maxLength": 128,
30834
+ "type": "string"
30835
+ },
30836
+ "context": {
30837
+ "$ref": "#/components/schemas/ObservabilityContext"
30838
+ },
30839
+ "createdAt": {
30840
+ "format": "date-time",
30841
+ "type": "string"
30842
+ },
30843
+ "dataSourceId": {
30844
+ "maxLength": 200,
30845
+ "type": "string"
30846
+ },
30847
+ "metricKey": {
30848
+ "maxLength": 128,
30849
+ "type": "string"
30850
+ },
30851
+ "query": {
30852
+ "description": "Provider-native query text. Soha does not translate arbitrary query languages.",
30853
+ "maxLength": 8192,
30854
+ "type": "string"
30855
+ },
30856
+ "queryLanguage": {
30857
+ "$ref": "#/components/schemas/ObservabilityQueryLanguage"
30858
+ },
30859
+ "signal": {
30860
+ "$ref": "#/components/schemas/ObservabilitySignal"
30861
+ },
30862
+ "spanId": {
30863
+ "maxLength": 128,
30864
+ "type": "string"
30865
+ },
30866
+ "traceId": {
30867
+ "maxLength": 128,
30868
+ "type": "string"
30869
+ },
30870
+ "version": {
30871
+ "enum": [
30872
+ "v1"
30873
+ ],
30874
+ "type": "string"
30875
+ }
30876
+ },
30877
+ "required": [
30878
+ "version",
30879
+ "signal",
30880
+ "context"
30881
+ ],
30882
+ "type": "object"
30883
+ },
30884
+ "ObservabilityQueryState": {
30885
+ "enum": [
30886
+ "success",
30887
+ "empty",
30888
+ "partial",
30889
+ "error",
30890
+ "no_data",
30891
+ "unsupported"
30892
+ ],
30893
+ "type": "string",
30894
+ "x-enum-varnames": [
30895
+ "ObservabilityQueryStateSuccess",
30896
+ "ObservabilityQueryStateEmpty",
30897
+ "ObservabilityQueryStatePartial",
30898
+ "ObservabilityQueryStateError",
30899
+ "ObservabilityQueryStateNoData",
30900
+ "ObservabilityQueryStateUnsupported"
30901
+ ]
30902
+ },
30903
+ "ObservabilityResourceIdentity": {
30904
+ "additionalProperties": false,
30905
+ "properties": {
30906
+ "kind": {
30907
+ "maxLength": 128,
30908
+ "minLength": 1,
30909
+ "type": "string"
30910
+ },
30911
+ "name": {
30912
+ "maxLength": 253,
30913
+ "minLength": 1,
30914
+ "type": "string"
30915
+ },
30916
+ "uid": {
30917
+ "maxLength": 253,
30918
+ "type": "string"
30919
+ }
30920
+ },
30921
+ "required": [
30922
+ "kind",
30923
+ "name"
30924
+ ],
30925
+ "type": "object"
30926
+ },
30927
+ "ObservabilityService": {
30928
+ "additionalProperties": false,
30929
+ "properties": {
30930
+ "clusterIds": {
30931
+ "items": {
30932
+ "maxLength": 128,
30933
+ "minLength": 1,
30934
+ "type": "string"
30935
+ },
30936
+ "maxItems": 100,
30937
+ "type": "array",
30938
+ "uniqueItems": true
30939
+ },
30940
+ "displayName": {
30941
+ "maxLength": 253,
30942
+ "type": "string"
30943
+ },
30944
+ "endpoints": {
30945
+ "items": {
30946
+ "$ref": "#/components/schemas/ObservabilityServiceEndpoint"
30947
+ },
30948
+ "maxItems": 1000,
30949
+ "type": "array"
30950
+ },
30951
+ "environment": {
30952
+ "maxLength": 128,
30953
+ "type": "string"
30954
+ },
30955
+ "errorRate": {
30956
+ "format": "double",
30957
+ "minimum": 0,
30958
+ "type": "number"
30959
+ },
30960
+ "id": {
30961
+ "maxLength": 253,
30962
+ "minLength": 1,
30963
+ "type": "string"
30964
+ },
30965
+ "instances": {
30966
+ "items": {
30967
+ "$ref": "#/components/schemas/ObservabilityServiceInstance"
30968
+ },
30969
+ "maxItems": 1000,
30970
+ "type": "array"
30971
+ },
30972
+ "lastSeenAt": {
30973
+ "format": "date-time",
30974
+ "type": "string"
30975
+ },
30976
+ "latencyP95Ms": {
30977
+ "format": "double",
30978
+ "minimum": 0,
30979
+ "type": "number"
30980
+ },
30981
+ "name": {
30982
+ "maxLength": 253,
30983
+ "minLength": 1,
30984
+ "type": "string"
30985
+ },
30986
+ "namespace": {
30987
+ "maxLength": 253,
30988
+ "type": "string"
30989
+ },
30990
+ "requestRate": {
30991
+ "format": "double",
30992
+ "minimum": 0,
30993
+ "type": "number"
30994
+ },
30995
+ "status": {
30996
+ "$ref": "#/components/schemas/ObservabilityServiceStatus"
30997
+ }
30998
+ },
30999
+ "required": [
31000
+ "id",
31001
+ "name",
31002
+ "status",
31003
+ "clusterIds",
31004
+ "instances",
31005
+ "endpoints"
31006
+ ],
31007
+ "type": "object"
31008
+ },
31009
+ "ObservabilityServiceEndpoint": {
31010
+ "additionalProperties": false,
31011
+ "properties": {
31012
+ "errorRate": {
31013
+ "format": "double",
31014
+ "minimum": 0,
31015
+ "type": "number"
31016
+ },
31017
+ "id": {
31018
+ "maxLength": 512,
31019
+ "minLength": 1,
31020
+ "type": "string"
31021
+ },
31022
+ "latencyP95Ms": {
31023
+ "format": "double",
31024
+ "minimum": 0,
31025
+ "type": "number"
31026
+ },
31027
+ "method": {
31028
+ "maxLength": 32,
31029
+ "type": "string"
31030
+ },
31031
+ "name": {
31032
+ "maxLength": 512,
31033
+ "minLength": 1,
31034
+ "type": "string"
31035
+ },
31036
+ "requestRate": {
31037
+ "format": "double",
31038
+ "minimum": 0,
31039
+ "type": "number"
31040
+ },
31041
+ "status": {
31042
+ "$ref": "#/components/schemas/ObservabilityServiceStatus"
31043
+ }
31044
+ },
31045
+ "required": [
31046
+ "id",
31047
+ "name",
31048
+ "status"
31049
+ ],
31050
+ "type": "object"
31051
+ },
31052
+ "ObservabilityServiceEnvelope": {
31053
+ "additionalProperties": false,
31054
+ "properties": {
31055
+ "data": {
31056
+ "$ref": "#/components/schemas/ObservabilityService"
31057
+ },
31058
+ "meta": {
31059
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
31060
+ }
31061
+ },
31062
+ "required": [
31063
+ "data",
31064
+ "meta"
31065
+ ],
31066
+ "type": "object"
31067
+ },
31068
+ "ObservabilityServiceInstance": {
31069
+ "additionalProperties": false,
31070
+ "properties": {
31071
+ "id": {
31072
+ "maxLength": 253,
31073
+ "minLength": 1,
31074
+ "type": "string"
31075
+ },
31076
+ "lastSeenAt": {
31077
+ "format": "date-time",
31078
+ "type": "string"
31079
+ },
31080
+ "name": {
31081
+ "maxLength": 253,
31082
+ "minLength": 1,
31083
+ "type": "string"
31084
+ },
31085
+ "status": {
31086
+ "$ref": "#/components/schemas/ObservabilityServiceStatus"
31087
+ }
31088
+ },
31089
+ "required": [
31090
+ "id",
31091
+ "name",
31092
+ "status"
31093
+ ],
31094
+ "type": "object"
31095
+ },
31096
+ "ObservabilityServiceListEnvelope": {
31097
+ "additionalProperties": false,
31098
+ "properties": {
31099
+ "items": {
31100
+ "items": {
31101
+ "$ref": "#/components/schemas/ObservabilityService"
31102
+ },
31103
+ "maxItems": 1000,
31104
+ "type": "array"
31105
+ },
31106
+ "meta": {
31107
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
31108
+ }
31109
+ },
31110
+ "required": [
31111
+ "items",
31112
+ "meta"
31113
+ ],
31114
+ "type": "object"
31115
+ },
31116
+ "ObservabilityServiceStatus": {
31117
+ "enum": [
31118
+ "healthy",
31119
+ "degraded",
31120
+ "unknown",
31121
+ "unsupported"
31122
+ ],
31123
+ "type": "string",
31124
+ "x-enum-varnames": [
31125
+ "ObservabilityServiceStatusHealthy",
31126
+ "ObservabilityServiceStatusDegraded",
31127
+ "ObservabilityServiceStatusUnknown",
31128
+ "ObservabilityServiceStatusUnsupported"
31129
+ ]
31130
+ },
31131
+ "ObservabilitySignal": {
31132
+ "enum": [
31133
+ "metrics",
31134
+ "traces",
31135
+ "logs",
31136
+ "events"
31137
+ ],
31138
+ "type": "string",
31139
+ "x-enum-varnames": [
31140
+ "ObservabilitySignalMetrics",
31141
+ "ObservabilitySignalTraces",
31142
+ "ObservabilitySignalLogs",
31143
+ "ObservabilitySignalEvents"
31144
+ ]
31145
+ },
31146
+ "ObservabilityTimeRange": {
31147
+ "additionalProperties": false,
31148
+ "properties": {
31149
+ "from": {
31150
+ "format": "date-time",
31151
+ "type": "string"
31152
+ },
31153
+ "timezone": {
31154
+ "maxLength": 64,
31155
+ "type": "string"
31156
+ },
31157
+ "to": {
31158
+ "format": "date-time",
31159
+ "type": "string"
31160
+ }
31161
+ },
31162
+ "required": [
31163
+ "from",
31164
+ "to"
31165
+ ],
31166
+ "type": "object"
31167
+ },
31168
+ "ObservabilityTopology": {
31169
+ "additionalProperties": false,
31170
+ "properties": {
31171
+ "beta": {
31172
+ "type": "boolean"
31173
+ },
31174
+ "edges": {
31175
+ "items": {
31176
+ "$ref": "#/components/schemas/ObservabilityTopologyEdge"
31177
+ },
31178
+ "maxItems": 5000,
31179
+ "type": "array"
31180
+ },
31181
+ "meta": {
31182
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
31183
+ },
31184
+ "nodes": {
31185
+ "items": {
31186
+ "$ref": "#/components/schemas/ObservabilityTopologyNode"
31187
+ },
31188
+ "maxItems": 1000,
31189
+ "type": "array"
31190
+ }
31191
+ },
31192
+ "required": [
31193
+ "nodes",
31194
+ "edges",
31195
+ "beta",
31196
+ "meta"
31197
+ ],
31198
+ "type": "object"
31199
+ },
31200
+ "ObservabilityTopologyEdge": {
31201
+ "additionalProperties": false,
31202
+ "properties": {
31203
+ "errorRate": {
31204
+ "format": "double",
31205
+ "minimum": 0,
31206
+ "type": "number"
31207
+ },
31208
+ "latencyP95Ms": {
31209
+ "format": "double",
31210
+ "minimum": 0,
31211
+ "type": "number"
31212
+ },
31213
+ "requestRate": {
31214
+ "format": "double",
31215
+ "minimum": 0,
31216
+ "type": "number"
31217
+ },
31218
+ "sourceServiceId": {
31219
+ "maxLength": 253,
31220
+ "minLength": 1,
31221
+ "type": "string"
31222
+ },
31223
+ "status": {
31224
+ "$ref": "#/components/schemas/ObservabilityServiceStatus"
31225
+ },
31226
+ "targetServiceId": {
31227
+ "maxLength": 253,
31228
+ "minLength": 1,
31229
+ "type": "string"
31230
+ }
31231
+ },
31232
+ "required": [
31233
+ "sourceServiceId",
31234
+ "targetServiceId",
31235
+ "status"
31236
+ ],
31237
+ "type": "object"
31238
+ },
31239
+ "ObservabilityTopologyEnvelope": {
31240
+ "additionalProperties": false,
31241
+ "properties": {
31242
+ "data": {
31243
+ "$ref": "#/components/schemas/ObservabilityTopology"
31244
+ }
31245
+ },
31246
+ "required": [
31247
+ "data"
31248
+ ],
31249
+ "type": "object"
31250
+ },
31251
+ "ObservabilityTopologyNode": {
31252
+ "additionalProperties": false,
31253
+ "properties": {
31254
+ "name": {
31255
+ "maxLength": 253,
31256
+ "minLength": 1,
31257
+ "type": "string"
31258
+ },
31259
+ "serviceId": {
31260
+ "maxLength": 253,
31261
+ "minLength": 1,
31262
+ "type": "string"
31263
+ },
31264
+ "status": {
31265
+ "$ref": "#/components/schemas/ObservabilityServiceStatus"
31266
+ }
31267
+ },
31268
+ "required": [
31269
+ "serviceId",
31270
+ "name",
31271
+ "status"
31272
+ ],
31273
+ "type": "object"
31274
+ },
30035
31275
  "ObservabilityTraceQueryEnvelope": {
30036
31276
  "additionalProperties": false,
30037
31277
  "properties": {
@@ -30098,6 +31338,9 @@
30098
31338
  "dataSourceId": {
30099
31339
  "type": "string"
30100
31340
  },
31341
+ "meta": {
31342
+ "$ref": "#/components/schemas/ObservabilityQueryResultMeta"
31343
+ },
30101
31344
  "services": {
30102
31345
  "items": {
30103
31346
  "type": "string"
@@ -30176,14 +31419,43 @@
30176
31419
  "OIDCClient": {
30177
31420
  "additionalProperties": false,
30178
31421
  "properties": {
31422
+ "accessTokenTtlSeconds": {
31423
+ "minimum": 60,
31424
+ "type": "integer"
31425
+ },
31426
+ "allowedGrantTypes": {
31427
+ "items": {
31428
+ "enum": [
31429
+ "authorization_code",
31430
+ "refresh_token"
31431
+ ],
31432
+ "type": "string"
31433
+ },
31434
+ "type": "array"
31435
+ },
31436
+ "allowedScopes": {
31437
+ "items": {
31438
+ "type": "string"
31439
+ },
31440
+ "type": "array"
31441
+ },
30179
31442
  "clientId": {
30180
31443
  "type": "string"
30181
31444
  },
31445
+ "clientType": {
31446
+ "enum": [
31447
+ "public",
31448
+ "confidential"
31449
+ ],
31450
+ "type": "string"
31451
+ },
30182
31452
  "createdAt": {
30183
31453
  "format": "date-time",
30184
31454
  "type": "string"
30185
31455
  },
30186
31456
  "grantTypes": {
31457
+ "deprecated": true,
31458
+ "description": "Deprecated response alias retained for 0.1.x compatibility; use allowedGrantTypes.",
30187
31459
  "items": {
30188
31460
  "enum": [
30189
31461
  "authorization_code",
@@ -30196,16 +31468,46 @@
30196
31468
  "id": {
30197
31469
  "type": "string"
30198
31470
  },
31471
+ "idTokenTtlSeconds": {
31472
+ "minimum": 60,
31473
+ "type": "integer"
31474
+ },
31475
+ "postLogoutRedirectUris": {
31476
+ "description": "Absolute HTTP or HTTPS post-logout redirect URIs. HTTPS is recommended for production deployments.",
31477
+ "items": {
31478
+ "format": "uri",
31479
+ "type": "string"
31480
+ },
31481
+ "type": "array"
31482
+ },
30199
31483
  "providerId": {
30200
31484
  "type": "string"
30201
31485
  },
31486
+ "redirectUriRegexes": {
31487
+ "description": "RE2 regular expressions matched against the complete absolute HTTP or HTTPS redirect URI. Evaluated in addition to redirectUris.",
31488
+ "items": {
31489
+ "maxLength": 2048,
31490
+ "minLength": 1,
31491
+ "type": "string"
31492
+ },
31493
+ "maxItems": 100,
31494
+ "type": "array"
31495
+ },
30202
31496
  "redirectUris": {
31497
+ "description": "Strict-match absolute HTTP or HTTPS redirect URIs. HTTPS is recommended for production deployments.",
30203
31498
  "items": {
30204
31499
  "format": "uri",
30205
31500
  "type": "string"
30206
31501
  },
30207
31502
  "type": "array"
30208
31503
  },
31504
+ "refreshTokenTtlSeconds": {
31505
+ "minimum": 0,
31506
+ "type": "integer"
31507
+ },
31508
+ "requirePkce": {
31509
+ "type": "boolean"
31510
+ },
30209
31511
  "status": {
30210
31512
  "$ref": "#/components/schemas/IdentityResourceStatus"
30211
31513
  },
@@ -30226,11 +31528,27 @@
30226
31528
  ],
30227
31529
  "type": "object"
30228
31530
  },
30229
- "OIDCClientEnvelope": {
31531
+ "OIDCClientCreated": {
30230
31532
  "additionalProperties": false,
30231
31533
  "properties": {
30232
- "data": {
31534
+ "client": {
30233
31535
  "$ref": "#/components/schemas/OIDCClient"
31536
+ },
31537
+ "clientSecret": {
31538
+ "type": "string",
31539
+ "writeOnly": true
31540
+ }
31541
+ },
31542
+ "required": [
31543
+ "client"
31544
+ ],
31545
+ "type": "object"
31546
+ },
31547
+ "OIDCClientCreatedEnvelope": {
31548
+ "additionalProperties": false,
31549
+ "properties": {
31550
+ "data": {
31551
+ "$ref": "#/components/schemas/OIDCClientCreated"
30234
31552
  }
30235
31553
  },
30236
31554
  "required": [
@@ -30238,52 +31556,161 @@
30238
31556
  ],
30239
31557
  "type": "object"
30240
31558
  },
30241
- "OIDCClientInput": {
31559
+ "OIDCClientEnvelope": {
30242
31560
  "additionalProperties": false,
30243
31561
  "properties": {
30244
- "clientId": {
30245
- "type": "string"
30246
- },
30247
- "clientSecret": {
30248
- "minLength": 16,
30249
- "type": "string",
30250
- "writeOnly": true
30251
- },
30252
- "grantTypes": {
30253
- "items": {
30254
- "enum": [
30255
- "authorization_code",
30256
- "refresh_token"
30257
- ],
30258
- "type": "string"
30259
- },
30260
- "minItems": 1,
30261
- "type": "array"
30262
- },
30263
- "providerId": {
30264
- "type": "string"
30265
- },
30266
- "redirectUris": {
30267
- "items": {
30268
- "format": "uri",
30269
- "type": "string"
30270
- },
30271
- "minItems": 1,
30272
- "type": "array"
30273
- },
30274
- "status": {
30275
- "$ref": "#/components/schemas/IdentityResourceStatus"
31562
+ "data": {
31563
+ "$ref": "#/components/schemas/OIDCClient"
30276
31564
  }
30277
31565
  },
30278
31566
  "required": [
30279
- "providerId",
30280
- "clientId",
30281
- "redirectUris",
30282
- "grantTypes",
30283
- "status"
31567
+ "data"
30284
31568
  ],
30285
31569
  "type": "object"
30286
31570
  },
31571
+ "OIDCClientInput": {
31572
+ "allOf": [
31573
+ {
31574
+ "additionalProperties": false,
31575
+ "properties": {
31576
+ "accessTokenTtlSeconds": {
31577
+ "minimum": 0,
31578
+ "type": "integer"
31579
+ },
31580
+ "allowedGrantTypes": {
31581
+ "items": {
31582
+ "enum": [
31583
+ "authorization_code",
31584
+ "refresh_token"
31585
+ ],
31586
+ "type": "string"
31587
+ },
31588
+ "minItems": 1,
31589
+ "type": "array"
31590
+ },
31591
+ "allowedScopes": {
31592
+ "items": {
31593
+ "type": "string"
31594
+ },
31595
+ "minItems": 1,
31596
+ "type": "array"
31597
+ },
31598
+ "clientId": {
31599
+ "type": "string"
31600
+ },
31601
+ "clientSecret": {
31602
+ "minLength": 16,
31603
+ "type": "string",
31604
+ "writeOnly": true
31605
+ },
31606
+ "clientType": {
31607
+ "enum": [
31608
+ "public",
31609
+ "confidential"
31610
+ ],
31611
+ "type": "string"
31612
+ },
31613
+ "grantTypes": {
31614
+ "deprecated": true,
31615
+ "description": "Deprecated request alias retained for 0.1.x compatibility; use allowedGrantTypes.",
31616
+ "items": {
31617
+ "enum": [
31618
+ "authorization_code",
31619
+ "refresh_token"
31620
+ ],
31621
+ "type": "string"
31622
+ },
31623
+ "minItems": 1,
31624
+ "type": "array"
31625
+ },
31626
+ "idTokenTtlSeconds": {
31627
+ "minimum": 0,
31628
+ "type": "integer"
31629
+ },
31630
+ "postLogoutRedirectUris": {
31631
+ "description": "Absolute HTTP or HTTPS post-logout redirect URIs. HTTPS is recommended for production deployments.",
31632
+ "items": {
31633
+ "format": "uri",
31634
+ "type": "string"
31635
+ },
31636
+ "type": "array"
31637
+ },
31638
+ "providerId": {
31639
+ "type": "string"
31640
+ },
31641
+ "redirectUriRegexes": {
31642
+ "description": "RE2 regular expressions matched against the complete absolute HTTP or HTTPS redirect URI. At least one redirectUris or redirectUriRegexes entry is required.",
31643
+ "items": {
31644
+ "maxLength": 2048,
31645
+ "minLength": 1,
31646
+ "type": "string"
31647
+ },
31648
+ "maxItems": 100,
31649
+ "type": "array"
31650
+ },
31651
+ "redirectUris": {
31652
+ "description": "Strict-match absolute HTTP or HTTPS redirect URIs. At least one redirectUris or redirectUriRegexes entry is required. HTTPS is recommended for production deployments.",
31653
+ "items": {
31654
+ "format": "uri",
31655
+ "type": "string"
31656
+ },
31657
+ "type": "array"
31658
+ },
31659
+ "refreshTokenTtlSeconds": {
31660
+ "minimum": 0,
31661
+ "type": "integer"
31662
+ },
31663
+ "requirePkce": {
31664
+ "type": "boolean"
31665
+ },
31666
+ "status": {
31667
+ "$ref": "#/components/schemas/IdentityResourceStatus"
31668
+ }
31669
+ },
31670
+ "required": [
31671
+ "clientId"
31672
+ ],
31673
+ "type": "object"
31674
+ },
31675
+ {
31676
+ "anyOf": [
31677
+ {
31678
+ "properties": {
31679
+ "redirectUris": {
31680
+ "items": {
31681
+ "format": "uri",
31682
+ "type": "string"
31683
+ },
31684
+ "minItems": 1,
31685
+ "type": "array"
31686
+ }
31687
+ },
31688
+ "required": [
31689
+ "redirectUris"
31690
+ ],
31691
+ "type": "object"
31692
+ },
31693
+ {
31694
+ "properties": {
31695
+ "redirectUriRegexes": {
31696
+ "items": {
31697
+ "maxLength": 2048,
31698
+ "minLength": 1,
31699
+ "type": "string"
31700
+ },
31701
+ "minItems": 1,
31702
+ "type": "array"
31703
+ }
31704
+ },
31705
+ "required": [
31706
+ "redirectUriRegexes"
31707
+ ],
31708
+ "type": "object"
31709
+ }
31710
+ ]
31711
+ }
31712
+ ]
31713
+ },
30287
31714
  "OIDCClientListEnvelope": {
30288
31715
  "additionalProperties": false,
30289
31716
  "properties": {
@@ -34794,6 +36221,7 @@
34794
36221
  "additionalProperties": false,
34795
36222
  "properties": {
34796
36223
  "acsUrls": {
36224
+ "description": "Absolute HTTP or HTTPS assertion consumer service URLs. HTTPS is recommended for production deployments.",
34797
36225
  "items": {
34798
36226
  "format": "uri",
34799
36227
  "type": "string"
@@ -34847,6 +36275,7 @@
34847
36275
  "additionalProperties": false,
34848
36276
  "properties": {
34849
36277
  "acsUrls": {
36278
+ "description": "Absolute HTTP or HTTPS assertion consumer service URLs. HTTPS is recommended for production deployments.",
34850
36279
  "items": {
34851
36280
  "format": "uri",
34852
36281
  "type": "string"
@@ -34884,6 +36313,263 @@
34884
36313
  ],
34885
36314
  "type": "object"
34886
36315
  },
36316
+ "ScopeGrant": {
36317
+ "additionalProperties": false,
36318
+ "properties": {
36319
+ "applicationIds": {
36320
+ "items": {
36321
+ "minLength": 1,
36322
+ "type": "string"
36323
+ },
36324
+ "type": "array",
36325
+ "uniqueItems": true
36326
+ },
36327
+ "businessLineId": {
36328
+ "description": "Required for legacy and delivery grants; empty for platform grants.",
36329
+ "type": "string"
36330
+ },
36331
+ "clusterIds": {
36332
+ "items": {
36333
+ "minLength": 1,
36334
+ "type": "string"
36335
+ },
36336
+ "type": "array",
36337
+ "uniqueItems": true
36338
+ },
36339
+ "createdAt": {
36340
+ "format": "date-time",
36341
+ "type": "string"
36342
+ },
36343
+ "effect": {
36344
+ "$ref": "#/components/schemas/ScopeGrantEffect"
36345
+ },
36346
+ "enabled": {
36347
+ "type": "boolean"
36348
+ },
36349
+ "environmentIds": {
36350
+ "items": {
36351
+ "minLength": 1,
36352
+ "type": "string"
36353
+ },
36354
+ "type": "array",
36355
+ "uniqueItems": true
36356
+ },
36357
+ "id": {
36358
+ "minLength": 1,
36359
+ "type": "string"
36360
+ },
36361
+ "namespaces": {
36362
+ "items": {
36363
+ "minLength": 1,
36364
+ "type": "string"
36365
+ },
36366
+ "type": "array",
36367
+ "uniqueItems": true
36368
+ },
36369
+ "namespaceSelector": {
36370
+ "type": "string"
36371
+ },
36372
+ "resourceGroups": {
36373
+ "items": {
36374
+ "minLength": 1,
36375
+ "type": "string"
36376
+ },
36377
+ "type": "array",
36378
+ "uniqueItems": true
36379
+ },
36380
+ "resourceKinds": {
36381
+ "items": {
36382
+ "minLength": 1,
36383
+ "type": "string"
36384
+ },
36385
+ "type": "array",
36386
+ "uniqueItems": true
36387
+ },
36388
+ "role": {
36389
+ "minLength": 1,
36390
+ "type": "string"
36391
+ },
36392
+ "scopeType": {
36393
+ "$ref": "#/components/schemas/ScopeGrantType"
36394
+ },
36395
+ "subjectId": {
36396
+ "minLength": 1,
36397
+ "type": "string"
36398
+ },
36399
+ "subjectType": {
36400
+ "$ref": "#/components/schemas/ScopeGrantSubjectType"
36401
+ },
36402
+ "updatedAt": {
36403
+ "format": "date-time",
36404
+ "type": "string"
36405
+ }
36406
+ },
36407
+ "required": [
36408
+ "id",
36409
+ "subjectType",
36410
+ "subjectId",
36411
+ "businessLineId",
36412
+ "scopeType",
36413
+ "role",
36414
+ "effect",
36415
+ "enabled",
36416
+ "createdAt",
36417
+ "updatedAt"
36418
+ ],
36419
+ "type": "object"
36420
+ },
36421
+ "ScopeGrantEffect": {
36422
+ "enum": [
36423
+ "allow",
36424
+ "deny"
36425
+ ],
36426
+ "type": "string"
36427
+ },
36428
+ "ScopeGrantEnvelope": {
36429
+ "additionalProperties": false,
36430
+ "properties": {
36431
+ "data": {
36432
+ "$ref": "#/components/schemas/ScopeGrant"
36433
+ }
36434
+ },
36435
+ "required": [
36436
+ "data"
36437
+ ],
36438
+ "type": "object"
36439
+ },
36440
+ "ScopeGrantInput": {
36441
+ "additionalProperties": false,
36442
+ "properties": {
36443
+ "applicationIds": {
36444
+ "items": {
36445
+ "minLength": 1,
36446
+ "type": "string"
36447
+ },
36448
+ "type": "array",
36449
+ "uniqueItems": true
36450
+ },
36451
+ "businessLineId": {
36452
+ "description": "Required when scopeType is legacy or delivery.",
36453
+ "type": "string"
36454
+ },
36455
+ "clusterIds": {
36456
+ "description": "Required when scopeType is platform.",
36457
+ "items": {
36458
+ "minLength": 1,
36459
+ "type": "string"
36460
+ },
36461
+ "minItems": 1,
36462
+ "type": "array",
36463
+ "uniqueItems": true
36464
+ },
36465
+ "effect": {
36466
+ "allOf": [
36467
+ {
36468
+ "$ref": "#/components/schemas/ScopeGrantEffect"
36469
+ }
36470
+ ],
36471
+ "default": "allow"
36472
+ },
36473
+ "enabled": {
36474
+ "type": "boolean"
36475
+ },
36476
+ "environmentIds": {
36477
+ "items": {
36478
+ "minLength": 1,
36479
+ "type": "string"
36480
+ },
36481
+ "type": "array",
36482
+ "uniqueItems": true
36483
+ },
36484
+ "id": {
36485
+ "minLength": 1,
36486
+ "type": "string"
36487
+ },
36488
+ "namespaces": {
36489
+ "items": {
36490
+ "minLength": 1,
36491
+ "type": "string"
36492
+ },
36493
+ "type": "array",
36494
+ "uniqueItems": true
36495
+ },
36496
+ "namespaceSelector": {
36497
+ "type": "string"
36498
+ },
36499
+ "resourceGroups": {
36500
+ "items": {
36501
+ "minLength": 1,
36502
+ "type": "string"
36503
+ },
36504
+ "type": "array",
36505
+ "uniqueItems": true
36506
+ },
36507
+ "resourceKinds": {
36508
+ "items": {
36509
+ "minLength": 1,
36510
+ "type": "string"
36511
+ },
36512
+ "type": "array",
36513
+ "uniqueItems": true
36514
+ },
36515
+ "role": {
36516
+ "minLength": 1,
36517
+ "type": "string"
36518
+ },
36519
+ "scopeType": {
36520
+ "allOf": [
36521
+ {
36522
+ "$ref": "#/components/schemas/ScopeGrantType"
36523
+ }
36524
+ ],
36525
+ "default": "legacy"
36526
+ },
36527
+ "subjectId": {
36528
+ "minLength": 1,
36529
+ "type": "string"
36530
+ },
36531
+ "subjectType": {
36532
+ "$ref": "#/components/schemas/ScopeGrantSubjectType"
36533
+ }
36534
+ },
36535
+ "required": [
36536
+ "subjectType",
36537
+ "subjectId",
36538
+ "role",
36539
+ "enabled"
36540
+ ],
36541
+ "type": "object"
36542
+ },
36543
+ "ScopeGrantListEnvelope": {
36544
+ "additionalProperties": false,
36545
+ "properties": {
36546
+ "items": {
36547
+ "items": {
36548
+ "$ref": "#/components/schemas/ScopeGrant"
36549
+ },
36550
+ "type": "array"
36551
+ }
36552
+ },
36553
+ "required": [
36554
+ "items"
36555
+ ],
36556
+ "type": "object"
36557
+ },
36558
+ "ScopeGrantSubjectType": {
36559
+ "enum": [
36560
+ "user",
36561
+ "team"
36562
+ ],
36563
+ "type": "string"
36564
+ },
36565
+ "ScopeGrantType": {
36566
+ "enum": [
36567
+ "legacy",
36568
+ "delivery",
36569
+ "platform"
36570
+ ],
36571
+ "type": "string"
36572
+ },
34887
36573
  "SecretBinding": {
34888
36574
  "additionalProperties": false,
34889
36575
  "properties": {
@@ -36792,6 +38478,9 @@
36792
38478
  },
36793
38479
  "sidebarTitle": {
36794
38480
  "type": "string"
38481
+ },
38482
+ "slogan": {
38483
+ "type": "string"
36795
38484
  }
36796
38485
  },
36797
38486
  "required": [
@@ -39463,7 +41152,7 @@
39463
41152
  "type": "http"
39464
41153
  },
39465
41154
  "runtimeBearerAuth": {
39466
- "description": "Runtime execution runner token.",
41155
+ "description": "Runtime execution runner token, including host-bound Docker Agent credentials.",
39467
41156
  "scheme": "bearer",
39468
41157
  "type": "http"
39469
41158
  },
@@ -39478,7 +41167,7 @@
39478
41167
  "info": {
39479
41168
  "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",
39480
41169
  "title": "Soha API",
39481
- "version": "0.1.9"
41170
+ "version": "0.1.12"
39482
41171
  },
39483
41172
  "openapi": "3.1.0",
39484
41173
  "paths": {
@@ -39802,6 +41491,140 @@
39802
41491
  ]
39803
41492
  }
39804
41493
  },
41494
+ "/access/scope-grants": {
41495
+ "get": {
41496
+ "operationId": "listScopeGrants",
41497
+ "responses": {
41498
+ "200": {
41499
+ "content": {
41500
+ "application/json": {
41501
+ "schema": {
41502
+ "$ref": "#/components/schemas/ScopeGrantListEnvelope"
41503
+ }
41504
+ }
41505
+ },
41506
+ "description": "Resource scope grants."
41507
+ },
41508
+ "401": {
41509
+ "$ref": "#/components/responses/Error"
41510
+ },
41511
+ "403": {
41512
+ "$ref": "#/components/responses/Error"
41513
+ }
41514
+ },
41515
+ "tags": [
41516
+ "Access"
41517
+ ],
41518
+ "x-soha-implementation-status": "implemented"
41519
+ },
41520
+ "post": {
41521
+ "operationId": "createScopeGrant",
41522
+ "requestBody": {
41523
+ "content": {
41524
+ "application/json": {
41525
+ "schema": {
41526
+ "$ref": "#/components/schemas/ScopeGrantInput"
41527
+ }
41528
+ }
41529
+ },
41530
+ "required": true
41531
+ },
41532
+ "responses": {
41533
+ "201": {
41534
+ "content": {
41535
+ "application/json": {
41536
+ "schema": {
41537
+ "$ref": "#/components/schemas/ScopeGrantEnvelope"
41538
+ }
41539
+ }
41540
+ },
41541
+ "description": "Created resource scope grant."
41542
+ },
41543
+ "400": {
41544
+ "$ref": "#/components/responses/Error"
41545
+ },
41546
+ "401": {
41547
+ "$ref": "#/components/responses/Error"
41548
+ },
41549
+ "403": {
41550
+ "$ref": "#/components/responses/Error"
41551
+ }
41552
+ },
41553
+ "tags": [
41554
+ "Access"
41555
+ ],
41556
+ "x-soha-implementation-status": "implemented"
41557
+ }
41558
+ },
41559
+ "/access/scope-grants/{scopeGrantID}": {
41560
+ "delete": {
41561
+ "operationId": "deleteScopeGrant",
41562
+ "responses": {
41563
+ "204": {
41564
+ "description": "Resource scope grant deleted."
41565
+ },
41566
+ "401": {
41567
+ "$ref": "#/components/responses/Error"
41568
+ },
41569
+ "403": {
41570
+ "$ref": "#/components/responses/Error"
41571
+ },
41572
+ "404": {
41573
+ "$ref": "#/components/responses/Error"
41574
+ }
41575
+ },
41576
+ "tags": [
41577
+ "Access"
41578
+ ],
41579
+ "x-soha-implementation-status": "implemented"
41580
+ },
41581
+ "parameters": [
41582
+ {
41583
+ "$ref": "#/components/parameters/ScopeGrantID"
41584
+ }
41585
+ ],
41586
+ "put": {
41587
+ "operationId": "updateScopeGrant",
41588
+ "requestBody": {
41589
+ "content": {
41590
+ "application/json": {
41591
+ "schema": {
41592
+ "$ref": "#/components/schemas/ScopeGrantInput"
41593
+ }
41594
+ }
41595
+ },
41596
+ "required": true
41597
+ },
41598
+ "responses": {
41599
+ "200": {
41600
+ "content": {
41601
+ "application/json": {
41602
+ "schema": {
41603
+ "$ref": "#/components/schemas/ScopeGrantEnvelope"
41604
+ }
41605
+ }
41606
+ },
41607
+ "description": "Updated resource scope grant."
41608
+ },
41609
+ "400": {
41610
+ "$ref": "#/components/responses/Error"
41611
+ },
41612
+ "401": {
41613
+ "$ref": "#/components/responses/Error"
41614
+ },
41615
+ "403": {
41616
+ "$ref": "#/components/responses/Error"
41617
+ },
41618
+ "404": {
41619
+ "$ref": "#/components/responses/Error"
41620
+ }
41621
+ },
41622
+ "tags": [
41623
+ "Access"
41624
+ ],
41625
+ "x-soha-implementation-status": "implemented"
41626
+ }
41627
+ },
39805
41628
  "/agent-sessions/connect": {
39806
41629
  "get": {
39807
41630
  "description": "Upgrades to the soha-agent-tunnel.v1 WebSocket subprotocol. The Agent initiates this connection and carries multiplexed HTTP and stream traffic over the resulting session.\n",
@@ -55289,6 +57112,102 @@
55289
57112
  ]
55290
57113
  }
55291
57114
  },
57115
+ "/docker/agent-installations/{installTicket}/install.sh": {
57116
+ "get": {
57117
+ "operationId": "downloadDockerHostAgentInstaller",
57118
+ "parameters": [
57119
+ {
57120
+ "in": "path",
57121
+ "name": "installTicket",
57122
+ "required": true,
57123
+ "schema": {
57124
+ "minLength": 1,
57125
+ "type": "string"
57126
+ }
57127
+ }
57128
+ ],
57129
+ "responses": {
57130
+ "200": {
57131
+ "content": {
57132
+ "text/x-shellscript": {
57133
+ "schema": {
57134
+ "type": "string"
57135
+ }
57136
+ }
57137
+ },
57138
+ "description": "Short-lived Linux shell installer for the selected Docker host Agent."
57139
+ },
57140
+ "404": {
57141
+ "$ref": "#/components/responses/Error"
57142
+ },
57143
+ "410": {
57144
+ "$ref": "#/components/responses/Error"
57145
+ }
57146
+ },
57147
+ "security": [],
57148
+ "tags": [
57149
+ "Docker"
57150
+ ],
57151
+ "x-soha-implementation-status": "implemented"
57152
+ }
57153
+ },
57154
+ "/docker/agent-installations/{operationID}/enroll": {
57155
+ "post": {
57156
+ "operationId": "exchangeDockerHostAgentEnrollment",
57157
+ "parameters": [
57158
+ {
57159
+ "$ref": "#/components/parameters/OperationID"
57160
+ }
57161
+ ],
57162
+ "requestBody": {
57163
+ "content": {
57164
+ "application/json": {
57165
+ "schema": {
57166
+ "$ref": "#/components/schemas/DockerHostAgentEnrollmentRequest"
57167
+ }
57168
+ }
57169
+ },
57170
+ "required": true
57171
+ },
57172
+ "responses": {
57173
+ "201": {
57174
+ "content": {
57175
+ "application/json": {
57176
+ "schema": {
57177
+ "$ref": "#/components/schemas/DockerHostAgentCredentialsEnvelope"
57178
+ }
57179
+ }
57180
+ },
57181
+ "description": "One-time host-bound Agent and control-plane credentials. The enrollment token is atomically consumed by a successful response.",
57182
+ "headers": {
57183
+ "Cache-Control": {
57184
+ "description": "Prevents credential responses from being cached.",
57185
+ "schema": {
57186
+ "const": "no-store",
57187
+ "type": "string"
57188
+ }
57189
+ }
57190
+ }
57191
+ },
57192
+ "400": {
57193
+ "$ref": "#/components/responses/Error"
57194
+ },
57195
+ "404": {
57196
+ "$ref": "#/components/responses/Error"
57197
+ },
57198
+ "409": {
57199
+ "$ref": "#/components/responses/Error"
57200
+ },
57201
+ "410": {
57202
+ "$ref": "#/components/responses/Error"
57203
+ }
57204
+ },
57205
+ "security": [],
57206
+ "tags": [
57207
+ "Runner"
57208
+ ]
57209
+ }
57210
+ },
55292
57211
  "/docker/containers/start": {
55293
57212
  "post": {
55294
57213
  "operationId": "startDockerContainer",
@@ -55324,6 +57243,50 @@
55324
57243
  ]
55325
57244
  }
55326
57245
  },
57246
+ "/docker/hosts/{dockerHostID}/agent-installation": {
57247
+ "post": {
57248
+ "operationId": "createDockerHostAgentInstallation",
57249
+ "parameters": [
57250
+ {
57251
+ "in": "path",
57252
+ "name": "dockerHostID",
57253
+ "required": true,
57254
+ "schema": {
57255
+ "minLength": 1,
57256
+ "type": "string"
57257
+ }
57258
+ }
57259
+ ],
57260
+ "responses": {
57261
+ "200": {
57262
+ "content": {
57263
+ "application/json": {
57264
+ "schema": {
57265
+ "$ref": "#/components/schemas/DockerHostAgentInstallationEnvelope"
57266
+ }
57267
+ }
57268
+ },
57269
+ "description": "Short-lived shell installer URL and command for connecting an existing Linux Docker host."
57270
+ },
57271
+ "400": {
57272
+ "$ref": "#/components/responses/Error"
57273
+ },
57274
+ "403": {
57275
+ "$ref": "#/components/responses/Error"
57276
+ },
57277
+ "404": {
57278
+ "$ref": "#/components/responses/Error"
57279
+ },
57280
+ "409": {
57281
+ "$ref": "#/components/responses/Error"
57282
+ }
57283
+ },
57284
+ "tags": [
57285
+ "Docker"
57286
+ ],
57287
+ "x-soha-implementation-status": "implemented"
57288
+ }
57289
+ },
55327
57290
  "/docker/hosts/quick-create": {
55328
57291
  "post": {
55329
57292
  "operationId": "quickCreateDockerHost",
@@ -56156,6 +58119,7 @@
56156
58119
  },
56157
58120
  "/identity/oidc-clients": {
56158
58121
  "get": {
58122
+ "deprecated": true,
56159
58123
  "operationId": "listIdentityOIDCClients",
56160
58124
  "responses": {
56161
58125
  "200": {
@@ -56166,7 +58130,7 @@
56166
58130
  }
56167
58131
  }
56168
58132
  },
56169
- "description": "Identity OIDC clients."
58133
+ "description": "Identity OIDC clients across providers."
56170
58134
  }
56171
58135
  },
56172
58136
  "tags": [
@@ -56174,6 +58138,7 @@
56174
58138
  ]
56175
58139
  },
56176
58140
  "post": {
58141
+ "deprecated": true,
56177
58142
  "operationId": "createIdentityOIDCClient",
56178
58143
  "requestBody": {
56179
58144
  "content": {
@@ -56194,7 +58159,7 @@
56194
58159
  }
56195
58160
  }
56196
58161
  },
56197
- "description": "Created OIDC client."
58162
+ "description": "Created OIDC client without the one-time client secret."
56198
58163
  },
56199
58164
  "400": {
56200
58165
  "$ref": "#/components/responses/IdentityError"
@@ -56835,6 +58800,103 @@
56835
58800
  ]
56836
58801
  }
56837
58802
  },
58803
+ "/identity/providers/{identityProviderID}/oidc-clients": {
58804
+ "get": {
58805
+ "operationId": "listIdentityProviderOIDCClients",
58806
+ "responses": {
58807
+ "200": {
58808
+ "content": {
58809
+ "application/json": {
58810
+ "schema": {
58811
+ "$ref": "#/components/schemas/OIDCClientListEnvelope"
58812
+ }
58813
+ }
58814
+ },
58815
+ "description": "Identity OIDC clients."
58816
+ }
58817
+ },
58818
+ "tags": [
58819
+ "Identity"
58820
+ ]
58821
+ },
58822
+ "parameters": [
58823
+ {
58824
+ "$ref": "#/components/parameters/IdentityProviderID"
58825
+ }
58826
+ ],
58827
+ "post": {
58828
+ "operationId": "createIdentityProviderOIDCClient",
58829
+ "requestBody": {
58830
+ "content": {
58831
+ "application/json": {
58832
+ "schema": {
58833
+ "$ref": "#/components/schemas/OIDCClientInput"
58834
+ }
58835
+ }
58836
+ },
58837
+ "required": true
58838
+ },
58839
+ "responses": {
58840
+ "201": {
58841
+ "content": {
58842
+ "application/json": {
58843
+ "schema": {
58844
+ "$ref": "#/components/schemas/OIDCClientCreatedEnvelope"
58845
+ }
58846
+ }
58847
+ },
58848
+ "description": "Created OIDC client."
58849
+ },
58850
+ "400": {
58851
+ "$ref": "#/components/responses/IdentityError"
58852
+ }
58853
+ },
58854
+ "tags": [
58855
+ "Identity"
58856
+ ]
58857
+ }
58858
+ },
58859
+ "/identity/providers/{identityProviderID}/saml/certificate/rotate": {
58860
+ "parameters": [
58861
+ {
58862
+ "$ref": "#/components/parameters/IdentityProviderID"
58863
+ }
58864
+ ],
58865
+ "post": {
58866
+ "operationId": "rotateIdentityProviderSAMLCertificate",
58867
+ "requestBody": {
58868
+ "content": {
58869
+ "application/json": {
58870
+ "schema": {
58871
+ "$ref": "#/components/schemas/SAMLCertificateRotateRequest"
58872
+ }
58873
+ }
58874
+ },
58875
+ "required": true
58876
+ },
58877
+ "responses": {
58878
+ "200": {
58879
+ "content": {
58880
+ "application/json": {
58881
+ "schema": {
58882
+ "$ref": "#/components/schemas/SAMLCertificateRotationEnvelope"
58883
+ }
58884
+ }
58885
+ },
58886
+ "description": "Active and retiring public certificate summaries."
58887
+ },
58888
+ "400": {
58889
+ "$ref": "#/components/responses/IdentityError"
58890
+ },
58891
+ "404": {
58892
+ "$ref": "#/components/responses/IdentityError"
58893
+ }
58894
+ },
58895
+ "tags": [
58896
+ "Identity"
58897
+ ]
58898
+ }
58899
+ },
56838
58900
  "/identity/saml/certificates/{certificateID}/rotate": {
56839
58901
  "post": {
56840
58902
  "operationId": "rotateSAMLCertificate",
@@ -57492,6 +59554,199 @@
57492
59554
  ]
57493
59555
  }
57494
59556
  },
59557
+ "/menus": {
59558
+ "get": {
59559
+ "operationId": "listMenus",
59560
+ "responses": {
59561
+ "200": {
59562
+ "content": {
59563
+ "application/json": {
59564
+ "schema": {
59565
+ "$ref": "#/components/schemas/MenuListEnvelope"
59566
+ }
59567
+ }
59568
+ },
59569
+ "description": "Complete menu tree for administration."
59570
+ },
59571
+ "401": {
59572
+ "$ref": "#/components/responses/Error"
59573
+ },
59574
+ "403": {
59575
+ "$ref": "#/components/responses/Error"
59576
+ }
59577
+ },
59578
+ "tags": [
59579
+ "System"
59580
+ ],
59581
+ "x-soha-implementation-status": "implemented"
59582
+ },
59583
+ "post": {
59584
+ "operationId": "createMenu",
59585
+ "requestBody": {
59586
+ "content": {
59587
+ "application/json": {
59588
+ "schema": {
59589
+ "$ref": "#/components/schemas/MenuInput"
59590
+ }
59591
+ }
59592
+ },
59593
+ "required": true
59594
+ },
59595
+ "responses": {
59596
+ "201": {
59597
+ "content": {
59598
+ "application/json": {
59599
+ "schema": {
59600
+ "$ref": "#/components/schemas/MenuEnvelope"
59601
+ }
59602
+ }
59603
+ },
59604
+ "description": "Created menu."
59605
+ },
59606
+ "400": {
59607
+ "$ref": "#/components/responses/Error"
59608
+ },
59609
+ "401": {
59610
+ "$ref": "#/components/responses/Error"
59611
+ },
59612
+ "403": {
59613
+ "$ref": "#/components/responses/Error"
59614
+ }
59615
+ },
59616
+ "tags": [
59617
+ "System"
59618
+ ],
59619
+ "x-soha-implementation-status": "implemented"
59620
+ }
59621
+ },
59622
+ "/menus/{menuID}": {
59623
+ "delete": {
59624
+ "operationId": "deleteMenu",
59625
+ "responses": {
59626
+ "200": {
59627
+ "content": {
59628
+ "application/json": {
59629
+ "schema": {
59630
+ "$ref": "#/components/schemas/MenuDeleteResult"
59631
+ }
59632
+ }
59633
+ },
59634
+ "description": "Menu deleted."
59635
+ },
59636
+ "401": {
59637
+ "$ref": "#/components/responses/Error"
59638
+ },
59639
+ "403": {
59640
+ "$ref": "#/components/responses/Error"
59641
+ },
59642
+ "404": {
59643
+ "$ref": "#/components/responses/Error"
59644
+ }
59645
+ },
59646
+ "tags": [
59647
+ "System"
59648
+ ],
59649
+ "x-soha-implementation-status": "implemented"
59650
+ },
59651
+ "get": {
59652
+ "operationId": "getMenu",
59653
+ "responses": {
59654
+ "200": {
59655
+ "content": {
59656
+ "application/json": {
59657
+ "schema": {
59658
+ "$ref": "#/components/schemas/MenuEnvelope"
59659
+ }
59660
+ }
59661
+ },
59662
+ "description": "Menu detail."
59663
+ },
59664
+ "401": {
59665
+ "$ref": "#/components/responses/Error"
59666
+ },
59667
+ "403": {
59668
+ "$ref": "#/components/responses/Error"
59669
+ },
59670
+ "404": {
59671
+ "$ref": "#/components/responses/Error"
59672
+ }
59673
+ },
59674
+ "tags": [
59675
+ "System"
59676
+ ],
59677
+ "x-soha-implementation-status": "implemented"
59678
+ },
59679
+ "parameters": [
59680
+ {
59681
+ "$ref": "#/components/parameters/MenuID"
59682
+ }
59683
+ ],
59684
+ "put": {
59685
+ "operationId": "updateMenu",
59686
+ "requestBody": {
59687
+ "content": {
59688
+ "application/json": {
59689
+ "schema": {
59690
+ "$ref": "#/components/schemas/MenuInput"
59691
+ }
59692
+ }
59693
+ },
59694
+ "required": true
59695
+ },
59696
+ "responses": {
59697
+ "200": {
59698
+ "content": {
59699
+ "application/json": {
59700
+ "schema": {
59701
+ "$ref": "#/components/schemas/MenuEnvelope"
59702
+ }
59703
+ }
59704
+ },
59705
+ "description": "Updated menu."
59706
+ },
59707
+ "400": {
59708
+ "$ref": "#/components/responses/Error"
59709
+ },
59710
+ "401": {
59711
+ "$ref": "#/components/responses/Error"
59712
+ },
59713
+ "403": {
59714
+ "$ref": "#/components/responses/Error"
59715
+ },
59716
+ "404": {
59717
+ "$ref": "#/components/responses/Error"
59718
+ }
59719
+ },
59720
+ "tags": [
59721
+ "System"
59722
+ ],
59723
+ "x-soha-implementation-status": "implemented"
59724
+ }
59725
+ },
59726
+ "/menus/visible": {
59727
+ "get": {
59728
+ "operationId": "listVisibleMenus",
59729
+ "responses": {
59730
+ "200": {
59731
+ "content": {
59732
+ "application/json": {
59733
+ "schema": {
59734
+ "$ref": "#/components/schemas/MenuListEnvelope"
59735
+ }
59736
+ }
59737
+ },
59738
+ "description": "Menu tree visible to the authenticated principal."
59739
+ },
59740
+ "401": {
59741
+ "$ref": "#/components/responses/Error"
59742
+ }
59743
+ },
59744
+ "tags": [
59745
+ "System"
59746
+ ],
59747
+ "x-soha-implementation-status": "implemented"
59748
+ }
59749
+ },
57495
59750
  "/observability/dashboards": {
57496
59751
  "get": {
57497
59752
  "operationId": "listObservabilityDashboards",
@@ -57799,6 +60054,37 @@
57799
60054
  ]
57800
60055
  }
57801
60056
  },
60057
+ "/observability/metrics/catalog": {
60058
+ "get": {
60059
+ "operationId": "listObservabilityMetricCatalog",
60060
+ "parameters": [
60061
+ {
60062
+ "$ref": "#/components/parameters/ObservabilityDataSourceIDQuery"
60063
+ }
60064
+ ],
60065
+ "responses": {
60066
+ "200": {
60067
+ "content": {
60068
+ "application/json": {
60069
+ "schema": {
60070
+ "$ref": "#/components/schemas/ObservabilityMetricCatalogEnvelope"
60071
+ }
60072
+ }
60073
+ },
60074
+ "description": "Semantic metric definitions supported by the configured metrics provider."
60075
+ },
60076
+ "403": {
60077
+ "$ref": "#/components/responses/Error"
60078
+ },
60079
+ "404": {
60080
+ "$ref": "#/components/responses/Error"
60081
+ }
60082
+ },
60083
+ "tags": [
60084
+ "Observability"
60085
+ ]
60086
+ }
60087
+ },
57802
60088
  "/observability/metrics/data-sources": {
57803
60089
  "get": {
57804
60090
  "operationId": "listObservabilityMetricDataSources",
@@ -57887,6 +60173,171 @@
57887
60173
  ]
57888
60174
  }
57889
60175
  },
60176
+ "/observability/services": {
60177
+ "get": {
60178
+ "operationId": "listObservabilityServices",
60179
+ "parameters": [
60180
+ {
60181
+ "$ref": "#/components/parameters/ObservabilityDataSourceIDQuery"
60182
+ },
60183
+ {
60184
+ "$ref": "#/components/parameters/ObservabilityClusterIDQuery"
60185
+ },
60186
+ {
60187
+ "$ref": "#/components/parameters/ObservabilityEnvironmentQuery"
60188
+ },
60189
+ {
60190
+ "$ref": "#/components/parameters/ObservabilityNamespaceQuery"
60191
+ },
60192
+ {
60193
+ "$ref": "#/components/parameters/ObservabilityServiceQuery"
60194
+ },
60195
+ {
60196
+ "$ref": "#/components/parameters/ObservabilityTimeFromQuery"
60197
+ },
60198
+ {
60199
+ "$ref": "#/components/parameters/ObservabilityTimeToQuery"
60200
+ }
60201
+ ],
60202
+ "responses": {
60203
+ "200": {
60204
+ "content": {
60205
+ "application/json": {
60206
+ "schema": {
60207
+ "$ref": "#/components/schemas/ObservabilityServiceListEnvelope"
60208
+ }
60209
+ }
60210
+ },
60211
+ "description": "OTel-identified services from the configured SkyWalking OAP provider."
60212
+ },
60213
+ "400": {
60214
+ "$ref": "#/components/responses/Error"
60215
+ },
60216
+ "403": {
60217
+ "$ref": "#/components/responses/Error"
60218
+ },
60219
+ "404": {
60220
+ "$ref": "#/components/responses/Error"
60221
+ },
60222
+ "502": {
60223
+ "$ref": "#/components/responses/Error"
60224
+ }
60225
+ },
60226
+ "tags": [
60227
+ "Observability"
60228
+ ]
60229
+ }
60230
+ },
60231
+ "/observability/services/{serviceID}": {
60232
+ "get": {
60233
+ "operationId": "getObservabilityService",
60234
+ "parameters": [
60235
+ {
60236
+ "$ref": "#/components/parameters/ServiceID"
60237
+ },
60238
+ {
60239
+ "$ref": "#/components/parameters/ObservabilityDataSourceIDQuery"
60240
+ },
60241
+ {
60242
+ "$ref": "#/components/parameters/ObservabilityClusterIDQuery"
60243
+ },
60244
+ {
60245
+ "$ref": "#/components/parameters/ObservabilityEnvironmentQuery"
60246
+ },
60247
+ {
60248
+ "$ref": "#/components/parameters/ObservabilityNamespaceQuery"
60249
+ },
60250
+ {
60251
+ "$ref": "#/components/parameters/ObservabilityTimeFromQuery"
60252
+ },
60253
+ {
60254
+ "$ref": "#/components/parameters/ObservabilityTimeToQuery"
60255
+ }
60256
+ ],
60257
+ "responses": {
60258
+ "200": {
60259
+ "content": {
60260
+ "application/json": {
60261
+ "schema": {
60262
+ "$ref": "#/components/schemas/ObservabilityServiceEnvelope"
60263
+ }
60264
+ }
60265
+ },
60266
+ "description": "Service identity, instances and endpoints from the configured SkyWalking OAP provider."
60267
+ },
60268
+ "400": {
60269
+ "$ref": "#/components/responses/Error"
60270
+ },
60271
+ "403": {
60272
+ "$ref": "#/components/responses/Error"
60273
+ },
60274
+ "404": {
60275
+ "$ref": "#/components/responses/Error"
60276
+ },
60277
+ "502": {
60278
+ "$ref": "#/components/responses/Error"
60279
+ }
60280
+ },
60281
+ "tags": [
60282
+ "Observability"
60283
+ ]
60284
+ }
60285
+ },
60286
+ "/observability/services/{serviceID}/topology": {
60287
+ "get": {
60288
+ "operationId": "getObservabilityServiceTopology",
60289
+ "parameters": [
60290
+ {
60291
+ "$ref": "#/components/parameters/ServiceID"
60292
+ },
60293
+ {
60294
+ "$ref": "#/components/parameters/ObservabilityDataSourceIDQuery"
60295
+ },
60296
+ {
60297
+ "$ref": "#/components/parameters/ObservabilityClusterIDQuery"
60298
+ },
60299
+ {
60300
+ "$ref": "#/components/parameters/ObservabilityEnvironmentQuery"
60301
+ },
60302
+ {
60303
+ "$ref": "#/components/parameters/ObservabilityNamespaceQuery"
60304
+ },
60305
+ {
60306
+ "$ref": "#/components/parameters/ObservabilityTimeFromQuery"
60307
+ },
60308
+ {
60309
+ "$ref": "#/components/parameters/ObservabilityTimeToQuery"
60310
+ }
60311
+ ],
60312
+ "responses": {
60313
+ "200": {
60314
+ "content": {
60315
+ "application/json": {
60316
+ "schema": {
60317
+ "$ref": "#/components/schemas/ObservabilityTopologyEnvelope"
60318
+ }
60319
+ }
60320
+ },
60321
+ "description": "Beta dependency graph for one service from the configured SkyWalking OAP provider."
60322
+ },
60323
+ "400": {
60324
+ "$ref": "#/components/responses/Error"
60325
+ },
60326
+ "403": {
60327
+ "$ref": "#/components/responses/Error"
60328
+ },
60329
+ "404": {
60330
+ "$ref": "#/components/responses/Error"
60331
+ },
60332
+ "502": {
60333
+ "$ref": "#/components/responses/Error"
60334
+ }
60335
+ },
60336
+ "tags": [
60337
+ "Observability"
60338
+ ]
60339
+ }
60340
+ },
57890
60341
  "/observability/traces/query": {
57891
60342
  "post": {
57892
60343
  "operationId": "queryObservabilityTraces",