@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.
- package/README.md +1 -1
- package/auth/catalog_generated.go +3 -3
- package/auth/catalog_test.go +35 -0
- package/auth/permission-catalog.json +19 -151
- package/compat/json-schema-ecosystem-0.1.0.json +1 -1
- package/compat/openapi-loose-boundaries-0.1.0.json +1 -5
- package/fixtures/openapi/DockerHostAgentCredentialsEnvelope/invalid/missing-runtime-token.json +9 -0
- package/fixtures/openapi/DockerHostAgentCredentialsEnvelope/valid/credentials.json +10 -0
- package/fixtures/openapi/DockerHostAgentEnrollmentRequest/invalid/short-token.json +4 -0
- package/fixtures/openapi/DockerHostAgentEnrollmentRequest/valid/enrollment.json +4 -0
- package/fixtures/openapi/DockerHostAgentInstallation/invalid/missing-command.json +6 -0
- package/fixtures/openapi/DockerHostAgentInstallation/valid/installation.json +7 -0
- package/fixtures/openapi/IdentityProvider/invalid/missing-id.json +9 -0
- package/fixtures/openapi/IdentityProvider/valid/current.json +12 -0
- package/fixtures/openapi/IdentityProvider/valid/v0.1.9.json +14 -0
- package/fixtures/openapi/MenuEnvelope/invalid/missing-data.json +1 -0
- package/fixtures/openapi/MenuEnvelope/valid/menu.json +13 -0
- package/fixtures/openapi/MenuInput/invalid/missing-icon.json +5 -0
- package/fixtures/openapi/MenuInput/valid/top-level.json +12 -0
- package/fixtures/openapi/MenuListEnvelope/invalid/items-object.json +3 -0
- package/fixtures/openapi/MenuListEnvelope/valid/tree.json +27 -0
- package/fixtures/openapi/OIDCClient/invalid/missing-grant-types.json +9 -0
- package/fixtures/openapi/OIDCClient/valid/current.json +19 -0
- package/fixtures/openapi/OIDCClient/valid/v0.1.9.json +10 -0
- package/fixtures/openapi/OIDCClientInput/invalid/empty-rules.json +5 -0
- package/fixtures/openapi/OIDCClientInput/valid/regex.json +4 -0
- package/fixtures/openapi/OIDCClientInput/valid/strict.json +4 -0
- package/fixtures/openapi/OIDCClientInput/valid/v0.1.9.json +7 -0
- package/fixtures/openapi/ObservabilityContext/invalid/missing-time-range.json +6 -0
- package/fixtures/openapi/ObservabilityContext/valid/scoped.json +27 -0
- package/fixtures/openapi/ObservabilityDashboardImportResultEnvelope/valid/imported.json +28 -1
- package/fixtures/openapi/ObservabilityDashboardPanelQueryInput/invalid/missing-time-to.json +6 -0
- package/fixtures/openapi/ObservabilityDashboardPanelQueryInput/valid/variables.json +8 -0
- package/fixtures/openapi/ObservabilityMetricCatalogEnvelope/invalid/missing-availability.json +10 -0
- package/fixtures/openapi/ObservabilityMetricCatalogEnvelope/valid/catalog.json +13 -0
- package/fixtures/openapi/ObservabilityQueryResultMeta/invalid/missing-state.json +3 -0
- package/fixtures/openapi/ObservabilityQueryResultMeta/valid/partial.json +15 -0
- package/fixtures/openapi/ObservabilityQuerySnapshot/invalid/missing-context.json +5 -0
- package/fixtures/openapi/ObservabilityQuerySnapshot/valid/prometheus.json +22 -0
- package/fixtures/openapi/ObservabilityServiceEnvelope/invalid/missing-status.json +12 -0
- package/fixtures/openapi/ObservabilityServiceEnvelope/valid/service.json +29 -0
- package/fixtures/openapi/ObservabilityServiceListEnvelope/invalid/missing-meta.json +3 -0
- package/fixtures/openapi/ObservabilityServiceListEnvelope/valid/services.json +39 -0
- package/fixtures/openapi/ObservabilityTopologyEnvelope/invalid/missing-edge-status.json +10 -0
- package/fixtures/openapi/ObservabilityTopologyEnvelope/valid/topology.json +22 -0
- package/fixtures/openapi/ScopeGrantEnvelope/invalid/missing-id.json +13 -0
- package/fixtures/openapi/ScopeGrantEnvelope/valid/platform.json +15 -0
- package/fixtures/openapi/ScopeGrantInput/invalid/missing-subject.json +7 -0
- package/fixtures/openapi/ScopeGrantInput/valid/delivery.json +11 -0
- package/fixtures/openapi/ScopeGrantListEnvelope/invalid/unknown-scope.json +16 -0
- package/fixtures/openapi/ScopeGrantListEnvelope/valid/list.json +18 -0
- package/gen/go/sohaapi/client.go +10 -1
- package/gen/go/sohaapi/client_test.go +47 -0
- package/gen/go/sohaapi/types.go +987 -93
- package/gen/ts/sohaapi/index.ts +1263 -48
- package/go.mod +1 -1
- package/openapi/soha-api.json +2501 -50
- package/openapi/soha-api.yaml +1398 -57
- package/openapi/spec_generated.go +3 -3
- package/package.json +1 -1
package/openapi/soha-api.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: Soha API
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.12
|
|
5
5
|
description: >
|
|
6
6
|
Public OpenSoha core API contract. This first contract focuses on stable
|
|
7
7
|
cross-repository boundaries: auth, health, runner-facing control-plane
|
|
@@ -3249,6 +3249,84 @@ paths:
|
|
|
3249
3249
|
schema: { $ref: "#/components/schemas/VirtualizationOperationEnvelope" }
|
|
3250
3250
|
"400": { $ref: "#/components/responses/Error" }
|
|
3251
3251
|
"403": { $ref: "#/components/responses/Error" }
|
|
3252
|
+
/docker/hosts/{dockerHostID}/agent-installation:
|
|
3253
|
+
post:
|
|
3254
|
+
tags: [Docker]
|
|
3255
|
+
operationId: createDockerHostAgentInstallation
|
|
3256
|
+
x-soha-implementation-status: implemented
|
|
3257
|
+
parameters:
|
|
3258
|
+
- name: dockerHostID
|
|
3259
|
+
in: path
|
|
3260
|
+
required: true
|
|
3261
|
+
schema: { type: string, minLength: 1 }
|
|
3262
|
+
responses:
|
|
3263
|
+
"200":
|
|
3264
|
+
description: Short-lived shell installer URL and command for connecting an existing Linux Docker host.
|
|
3265
|
+
content:
|
|
3266
|
+
application/json:
|
|
3267
|
+
schema:
|
|
3268
|
+
$ref: "#/components/schemas/DockerHostAgentInstallationEnvelope"
|
|
3269
|
+
"400":
|
|
3270
|
+
$ref: "#/components/responses/Error"
|
|
3271
|
+
"403":
|
|
3272
|
+
$ref: "#/components/responses/Error"
|
|
3273
|
+
"404":
|
|
3274
|
+
$ref: "#/components/responses/Error"
|
|
3275
|
+
"409":
|
|
3276
|
+
$ref: "#/components/responses/Error"
|
|
3277
|
+
/docker/agent-installations/{installTicket}/install.sh:
|
|
3278
|
+
get:
|
|
3279
|
+
tags: [Docker]
|
|
3280
|
+
operationId: downloadDockerHostAgentInstaller
|
|
3281
|
+
x-soha-implementation-status: implemented
|
|
3282
|
+
security: []
|
|
3283
|
+
parameters:
|
|
3284
|
+
- name: installTicket
|
|
3285
|
+
in: path
|
|
3286
|
+
required: true
|
|
3287
|
+
schema: { type: string, minLength: 1 }
|
|
3288
|
+
responses:
|
|
3289
|
+
"200":
|
|
3290
|
+
description: Short-lived Linux shell installer for the selected Docker host Agent.
|
|
3291
|
+
content:
|
|
3292
|
+
text/x-shellscript:
|
|
3293
|
+
schema: { type: string }
|
|
3294
|
+
"404":
|
|
3295
|
+
$ref: "#/components/responses/Error"
|
|
3296
|
+
"410":
|
|
3297
|
+
$ref: "#/components/responses/Error"
|
|
3298
|
+
/docker/agent-installations/{operationID}/enroll:
|
|
3299
|
+
post:
|
|
3300
|
+
tags: [Runner]
|
|
3301
|
+
operationId: exchangeDockerHostAgentEnrollment
|
|
3302
|
+
security: []
|
|
3303
|
+
parameters:
|
|
3304
|
+
- $ref: "#/components/parameters/OperationID"
|
|
3305
|
+
requestBody:
|
|
3306
|
+
required: true
|
|
3307
|
+
content:
|
|
3308
|
+
application/json:
|
|
3309
|
+
schema:
|
|
3310
|
+
$ref: "#/components/schemas/DockerHostAgentEnrollmentRequest"
|
|
3311
|
+
responses:
|
|
3312
|
+
"201":
|
|
3313
|
+
description: One-time host-bound Agent and control-plane credentials. The enrollment token is atomically consumed by a successful response.
|
|
3314
|
+
headers:
|
|
3315
|
+
Cache-Control:
|
|
3316
|
+
description: Prevents credential responses from being cached.
|
|
3317
|
+
schema: { type: string, const: no-store }
|
|
3318
|
+
content:
|
|
3319
|
+
application/json:
|
|
3320
|
+
schema:
|
|
3321
|
+
$ref: "#/components/schemas/DockerHostAgentCredentialsEnvelope"
|
|
3322
|
+
"400":
|
|
3323
|
+
$ref: "#/components/responses/Error"
|
|
3324
|
+
"404":
|
|
3325
|
+
$ref: "#/components/responses/Error"
|
|
3326
|
+
"409":
|
|
3327
|
+
$ref: "#/components/responses/Error"
|
|
3328
|
+
"410":
|
|
3329
|
+
$ref: "#/components/responses/Error"
|
|
3252
3330
|
/docker/hosts/quick-create/plan:
|
|
3253
3331
|
post:
|
|
3254
3332
|
tags: [Docker]
|
|
@@ -5892,6 +5970,104 @@ paths:
|
|
|
5892
5970
|
$ref: "#/components/schemas/ObservabilityMetricDataSourceListEnvelope"
|
|
5893
5971
|
"403":
|
|
5894
5972
|
$ref: "#/components/responses/Error"
|
|
5973
|
+
/observability/metrics/catalog:
|
|
5974
|
+
get:
|
|
5975
|
+
tags: [Observability]
|
|
5976
|
+
operationId: listObservabilityMetricCatalog
|
|
5977
|
+
parameters:
|
|
5978
|
+
- $ref: "#/components/parameters/ObservabilityDataSourceIDQuery"
|
|
5979
|
+
responses:
|
|
5980
|
+
"200":
|
|
5981
|
+
description: Semantic metric definitions supported by the configured metrics provider.
|
|
5982
|
+
content:
|
|
5983
|
+
application/json:
|
|
5984
|
+
schema:
|
|
5985
|
+
$ref: "#/components/schemas/ObservabilityMetricCatalogEnvelope"
|
|
5986
|
+
"403":
|
|
5987
|
+
$ref: "#/components/responses/Error"
|
|
5988
|
+
"404":
|
|
5989
|
+
$ref: "#/components/responses/Error"
|
|
5990
|
+
/observability/services:
|
|
5991
|
+
get:
|
|
5992
|
+
tags: [Observability]
|
|
5993
|
+
operationId: listObservabilityServices
|
|
5994
|
+
parameters:
|
|
5995
|
+
- $ref: "#/components/parameters/ObservabilityDataSourceIDQuery"
|
|
5996
|
+
- $ref: "#/components/parameters/ObservabilityClusterIDQuery"
|
|
5997
|
+
- $ref: "#/components/parameters/ObservabilityEnvironmentQuery"
|
|
5998
|
+
- $ref: "#/components/parameters/ObservabilityNamespaceQuery"
|
|
5999
|
+
- $ref: "#/components/parameters/ObservabilityServiceQuery"
|
|
6000
|
+
- $ref: "#/components/parameters/ObservabilityTimeFromQuery"
|
|
6001
|
+
- $ref: "#/components/parameters/ObservabilityTimeToQuery"
|
|
6002
|
+
responses:
|
|
6003
|
+
"200":
|
|
6004
|
+
description: OTel-identified services from the configured SkyWalking OAP provider.
|
|
6005
|
+
content:
|
|
6006
|
+
application/json:
|
|
6007
|
+
schema:
|
|
6008
|
+
$ref: "#/components/schemas/ObservabilityServiceListEnvelope"
|
|
6009
|
+
"400":
|
|
6010
|
+
$ref: "#/components/responses/Error"
|
|
6011
|
+
"403":
|
|
6012
|
+
$ref: "#/components/responses/Error"
|
|
6013
|
+
"404":
|
|
6014
|
+
$ref: "#/components/responses/Error"
|
|
6015
|
+
"502":
|
|
6016
|
+
$ref: "#/components/responses/Error"
|
|
6017
|
+
/observability/services/{serviceID}:
|
|
6018
|
+
get:
|
|
6019
|
+
tags: [Observability]
|
|
6020
|
+
operationId: getObservabilityService
|
|
6021
|
+
parameters:
|
|
6022
|
+
- $ref: "#/components/parameters/ServiceID"
|
|
6023
|
+
- $ref: "#/components/parameters/ObservabilityDataSourceIDQuery"
|
|
6024
|
+
- $ref: "#/components/parameters/ObservabilityClusterIDQuery"
|
|
6025
|
+
- $ref: "#/components/parameters/ObservabilityEnvironmentQuery"
|
|
6026
|
+
- $ref: "#/components/parameters/ObservabilityNamespaceQuery"
|
|
6027
|
+
- $ref: "#/components/parameters/ObservabilityTimeFromQuery"
|
|
6028
|
+
- $ref: "#/components/parameters/ObservabilityTimeToQuery"
|
|
6029
|
+
responses:
|
|
6030
|
+
"200":
|
|
6031
|
+
description: Service identity, instances and endpoints from the configured SkyWalking OAP provider.
|
|
6032
|
+
content:
|
|
6033
|
+
application/json:
|
|
6034
|
+
schema:
|
|
6035
|
+
$ref: "#/components/schemas/ObservabilityServiceEnvelope"
|
|
6036
|
+
"400":
|
|
6037
|
+
$ref: "#/components/responses/Error"
|
|
6038
|
+
"403":
|
|
6039
|
+
$ref: "#/components/responses/Error"
|
|
6040
|
+
"404":
|
|
6041
|
+
$ref: "#/components/responses/Error"
|
|
6042
|
+
"502":
|
|
6043
|
+
$ref: "#/components/responses/Error"
|
|
6044
|
+
/observability/services/{serviceID}/topology:
|
|
6045
|
+
get:
|
|
6046
|
+
tags: [Observability]
|
|
6047
|
+
operationId: getObservabilityServiceTopology
|
|
6048
|
+
parameters:
|
|
6049
|
+
- $ref: "#/components/parameters/ServiceID"
|
|
6050
|
+
- $ref: "#/components/parameters/ObservabilityDataSourceIDQuery"
|
|
6051
|
+
- $ref: "#/components/parameters/ObservabilityClusterIDQuery"
|
|
6052
|
+
- $ref: "#/components/parameters/ObservabilityEnvironmentQuery"
|
|
6053
|
+
- $ref: "#/components/parameters/ObservabilityNamespaceQuery"
|
|
6054
|
+
- $ref: "#/components/parameters/ObservabilityTimeFromQuery"
|
|
6055
|
+
- $ref: "#/components/parameters/ObservabilityTimeToQuery"
|
|
6056
|
+
responses:
|
|
6057
|
+
"200":
|
|
6058
|
+
description: Beta dependency graph for one service from the configured SkyWalking OAP provider.
|
|
6059
|
+
content:
|
|
6060
|
+
application/json:
|
|
6061
|
+
schema:
|
|
6062
|
+
$ref: "#/components/schemas/ObservabilityTopologyEnvelope"
|
|
6063
|
+
"400":
|
|
6064
|
+
$ref: "#/components/responses/Error"
|
|
6065
|
+
"403":
|
|
6066
|
+
$ref: "#/components/responses/Error"
|
|
6067
|
+
"404":
|
|
6068
|
+
$ref: "#/components/responses/Error"
|
|
6069
|
+
"502":
|
|
6070
|
+
$ref: "#/components/responses/Error"
|
|
5895
6071
|
/observability/dashboards/imports:
|
|
5896
6072
|
post:
|
|
5897
6073
|
tags: [Observability]
|
|
@@ -10719,6 +10895,97 @@ paths:
|
|
|
10719
10895
|
"400": { $ref: "#/components/responses/Error" }
|
|
10720
10896
|
"401": { $ref: "#/components/responses/Error" }
|
|
10721
10897
|
"403": { $ref: "#/components/responses/Error" }
|
|
10898
|
+
/menus:
|
|
10899
|
+
get:
|
|
10900
|
+
tags: [System]
|
|
10901
|
+
operationId: listMenus
|
|
10902
|
+
x-soha-implementation-status: implemented
|
|
10903
|
+
responses:
|
|
10904
|
+
"200":
|
|
10905
|
+
description: Complete menu tree for administration.
|
|
10906
|
+
content:
|
|
10907
|
+
application/json:
|
|
10908
|
+
schema: { $ref: "#/components/schemas/MenuListEnvelope" }
|
|
10909
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10910
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
10911
|
+
post:
|
|
10912
|
+
tags: [System]
|
|
10913
|
+
operationId: createMenu
|
|
10914
|
+
x-soha-implementation-status: implemented
|
|
10915
|
+
requestBody:
|
|
10916
|
+
required: true
|
|
10917
|
+
content:
|
|
10918
|
+
application/json:
|
|
10919
|
+
schema: { $ref: "#/components/schemas/MenuInput" }
|
|
10920
|
+
responses:
|
|
10921
|
+
"201":
|
|
10922
|
+
description: Created menu.
|
|
10923
|
+
content:
|
|
10924
|
+
application/json:
|
|
10925
|
+
schema: { $ref: "#/components/schemas/MenuEnvelope" }
|
|
10926
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
10927
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10928
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
10929
|
+
/menus/visible:
|
|
10930
|
+
get:
|
|
10931
|
+
tags: [System]
|
|
10932
|
+
operationId: listVisibleMenus
|
|
10933
|
+
x-soha-implementation-status: implemented
|
|
10934
|
+
responses:
|
|
10935
|
+
"200":
|
|
10936
|
+
description: Menu tree visible to the authenticated principal.
|
|
10937
|
+
content:
|
|
10938
|
+
application/json:
|
|
10939
|
+
schema: { $ref: "#/components/schemas/MenuListEnvelope" }
|
|
10940
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10941
|
+
/menus/{menuID}:
|
|
10942
|
+
parameters:
|
|
10943
|
+
- $ref: "#/components/parameters/MenuID"
|
|
10944
|
+
get:
|
|
10945
|
+
tags: [System]
|
|
10946
|
+
operationId: getMenu
|
|
10947
|
+
x-soha-implementation-status: implemented
|
|
10948
|
+
responses:
|
|
10949
|
+
"200":
|
|
10950
|
+
description: Menu detail.
|
|
10951
|
+
content:
|
|
10952
|
+
application/json:
|
|
10953
|
+
schema: { $ref: "#/components/schemas/MenuEnvelope" }
|
|
10954
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10955
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
10956
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
10957
|
+
put:
|
|
10958
|
+
tags: [System]
|
|
10959
|
+
operationId: updateMenu
|
|
10960
|
+
x-soha-implementation-status: implemented
|
|
10961
|
+
requestBody:
|
|
10962
|
+
required: true
|
|
10963
|
+
content:
|
|
10964
|
+
application/json:
|
|
10965
|
+
schema: { $ref: "#/components/schemas/MenuInput" }
|
|
10966
|
+
responses:
|
|
10967
|
+
"200":
|
|
10968
|
+
description: Updated menu.
|
|
10969
|
+
content:
|
|
10970
|
+
application/json:
|
|
10971
|
+
schema: { $ref: "#/components/schemas/MenuEnvelope" }
|
|
10972
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
10973
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10974
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
10975
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
10976
|
+
delete:
|
|
10977
|
+
tags: [System]
|
|
10978
|
+
operationId: deleteMenu
|
|
10979
|
+
x-soha-implementation-status: implemented
|
|
10980
|
+
responses:
|
|
10981
|
+
"200":
|
|
10982
|
+
description: Menu deleted.
|
|
10983
|
+
content:
|
|
10984
|
+
application/json:
|
|
10985
|
+
schema: { $ref: "#/components/schemas/MenuDeleteResult" }
|
|
10986
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
10987
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
10988
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
10722
10989
|
/access/permissions:
|
|
10723
10990
|
get:
|
|
10724
10991
|
tags: [Access]
|
|
@@ -10805,6 +11072,69 @@ paths:
|
|
|
10805
11072
|
"401": { $ref: "#/components/responses/Error" }
|
|
10806
11073
|
"403": { $ref: "#/components/responses/Error" }
|
|
10807
11074
|
"404": { $ref: "#/components/responses/Error" }
|
|
11075
|
+
/access/scope-grants:
|
|
11076
|
+
get:
|
|
11077
|
+
tags: [Access]
|
|
11078
|
+
operationId: listScopeGrants
|
|
11079
|
+
x-soha-implementation-status: implemented
|
|
11080
|
+
responses:
|
|
11081
|
+
"200":
|
|
11082
|
+
description: Resource scope grants.
|
|
11083
|
+
content:
|
|
11084
|
+
application/json:
|
|
11085
|
+
schema: { $ref: "#/components/schemas/ScopeGrantListEnvelope" }
|
|
11086
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
11087
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
11088
|
+
post:
|
|
11089
|
+
tags: [Access]
|
|
11090
|
+
operationId: createScopeGrant
|
|
11091
|
+
x-soha-implementation-status: implemented
|
|
11092
|
+
requestBody:
|
|
11093
|
+
required: true
|
|
11094
|
+
content:
|
|
11095
|
+
application/json:
|
|
11096
|
+
schema: { $ref: "#/components/schemas/ScopeGrantInput" }
|
|
11097
|
+
responses:
|
|
11098
|
+
"201":
|
|
11099
|
+
description: Created resource scope grant.
|
|
11100
|
+
content:
|
|
11101
|
+
application/json:
|
|
11102
|
+
schema: { $ref: "#/components/schemas/ScopeGrantEnvelope" }
|
|
11103
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
11104
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
11105
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
11106
|
+
/access/scope-grants/{scopeGrantID}:
|
|
11107
|
+
parameters:
|
|
11108
|
+
- $ref: "#/components/parameters/ScopeGrantID"
|
|
11109
|
+
put:
|
|
11110
|
+
tags: [Access]
|
|
11111
|
+
operationId: updateScopeGrant
|
|
11112
|
+
x-soha-implementation-status: implemented
|
|
11113
|
+
requestBody:
|
|
11114
|
+
required: true
|
|
11115
|
+
content:
|
|
11116
|
+
application/json:
|
|
11117
|
+
schema: { $ref: "#/components/schemas/ScopeGrantInput" }
|
|
11118
|
+
responses:
|
|
11119
|
+
"200":
|
|
11120
|
+
description: Updated resource scope grant.
|
|
11121
|
+
content:
|
|
11122
|
+
application/json:
|
|
11123
|
+
schema: { $ref: "#/components/schemas/ScopeGrantEnvelope" }
|
|
11124
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
11125
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
11126
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
11127
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
11128
|
+
delete:
|
|
11129
|
+
tags: [Access]
|
|
11130
|
+
operationId: deleteScopeGrant
|
|
11131
|
+
x-soha-implementation-status: implemented
|
|
11132
|
+
responses:
|
|
11133
|
+
"204":
|
|
11134
|
+
description: Resource scope grant deleted.
|
|
11135
|
+
"401": { $ref: "#/components/responses/Error" }
|
|
11136
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
11137
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
10808
11138
|
/identity/capabilities:
|
|
10809
11139
|
get:
|
|
10810
11140
|
tags: [Identity]
|
|
@@ -10938,6 +11268,25 @@ paths:
|
|
|
10938
11268
|
responses:
|
|
10939
11269
|
"204": { description: Identity provider deleted. }
|
|
10940
11270
|
"404": { $ref: "#/components/responses/IdentityError" }
|
|
11271
|
+
/identity/providers/{identityProviderID}/saml/certificate/rotate:
|
|
11272
|
+
parameters:
|
|
11273
|
+
- $ref: "#/components/parameters/IdentityProviderID"
|
|
11274
|
+
post:
|
|
11275
|
+
tags: [Identity]
|
|
11276
|
+
operationId: rotateIdentityProviderSAMLCertificate
|
|
11277
|
+
requestBody:
|
|
11278
|
+
required: true
|
|
11279
|
+
content:
|
|
11280
|
+
application/json:
|
|
11281
|
+
schema: { $ref: "#/components/schemas/SAMLCertificateRotateRequest" }
|
|
11282
|
+
responses:
|
|
11283
|
+
"200":
|
|
11284
|
+
description: Active and retiring public certificate summaries.
|
|
11285
|
+
content:
|
|
11286
|
+
application/json:
|
|
11287
|
+
schema: { $ref: "#/components/schemas/SAMLCertificateRotationEnvelope" }
|
|
11288
|
+
"400": { $ref: "#/components/responses/IdentityError" }
|
|
11289
|
+
"404": { $ref: "#/components/responses/IdentityError" }
|
|
10941
11290
|
/identity/policies:
|
|
10942
11291
|
get:
|
|
10943
11292
|
tags: [Identity]
|
|
@@ -11062,15 +11411,17 @@ paths:
|
|
|
11062
11411
|
get:
|
|
11063
11412
|
tags: [Identity]
|
|
11064
11413
|
operationId: listIdentityOIDCClients
|
|
11414
|
+
deprecated: true
|
|
11065
11415
|
responses:
|
|
11066
11416
|
"200":
|
|
11067
|
-
description: Identity OIDC clients.
|
|
11417
|
+
description: Identity OIDC clients across providers.
|
|
11068
11418
|
content:
|
|
11069
11419
|
application/json:
|
|
11070
11420
|
schema: { $ref: "#/components/schemas/OIDCClientListEnvelope" }
|
|
11071
11421
|
post:
|
|
11072
11422
|
tags: [Identity]
|
|
11073
11423
|
operationId: createIdentityOIDCClient
|
|
11424
|
+
deprecated: true
|
|
11074
11425
|
requestBody:
|
|
11075
11426
|
required: true
|
|
11076
11427
|
content:
|
|
@@ -11078,14 +11429,41 @@ paths:
|
|
|
11078
11429
|
schema: { $ref: "#/components/schemas/OIDCClientInput" }
|
|
11079
11430
|
responses:
|
|
11080
11431
|
"201":
|
|
11081
|
-
description: Created OIDC client.
|
|
11432
|
+
description: Created OIDC client without the one-time client secret.
|
|
11082
11433
|
content:
|
|
11083
11434
|
application/json:
|
|
11084
11435
|
schema: { $ref: "#/components/schemas/OIDCClientEnvelope" }
|
|
11085
11436
|
"400": { $ref: "#/components/responses/IdentityError" }
|
|
11086
|
-
/identity/oidc-clients
|
|
11437
|
+
/identity/providers/{identityProviderID}/oidc-clients:
|
|
11087
11438
|
parameters:
|
|
11088
|
-
- $ref: "#/components/parameters/
|
|
11439
|
+
- $ref: "#/components/parameters/IdentityProviderID"
|
|
11440
|
+
get:
|
|
11441
|
+
tags: [Identity]
|
|
11442
|
+
operationId: listIdentityProviderOIDCClients
|
|
11443
|
+
responses:
|
|
11444
|
+
"200":
|
|
11445
|
+
description: Identity OIDC clients.
|
|
11446
|
+
content:
|
|
11447
|
+
application/json:
|
|
11448
|
+
schema: { $ref: "#/components/schemas/OIDCClientListEnvelope" }
|
|
11449
|
+
post:
|
|
11450
|
+
tags: [Identity]
|
|
11451
|
+
operationId: createIdentityProviderOIDCClient
|
|
11452
|
+
requestBody:
|
|
11453
|
+
required: true
|
|
11454
|
+
content:
|
|
11455
|
+
application/json:
|
|
11456
|
+
schema: { $ref: "#/components/schemas/OIDCClientInput" }
|
|
11457
|
+
responses:
|
|
11458
|
+
"201":
|
|
11459
|
+
description: Created OIDC client.
|
|
11460
|
+
content:
|
|
11461
|
+
application/json:
|
|
11462
|
+
schema: { $ref: "#/components/schemas/OIDCClientCreatedEnvelope" }
|
|
11463
|
+
"400": { $ref: "#/components/responses/IdentityError" }
|
|
11464
|
+
/identity/oidc-clients/{oidcClientID}:
|
|
11465
|
+
parameters:
|
|
11466
|
+
- $ref: "#/components/parameters/OIDCClientID"
|
|
11089
11467
|
get:
|
|
11090
11468
|
tags: [Identity]
|
|
11091
11469
|
operationId: getIdentityOIDCClient
|
|
@@ -11598,7 +11976,7 @@ components:
|
|
|
11598
11976
|
runtimeBearerAuth:
|
|
11599
11977
|
type: http
|
|
11600
11978
|
scheme: bearer
|
|
11601
|
-
description: Runtime execution runner token.
|
|
11979
|
+
description: Runtime execution runner token, including host-bound Docker Agent credentials.
|
|
11602
11980
|
agentBearerAuth:
|
|
11603
11981
|
type: http
|
|
11604
11982
|
scheme: bearer
|
|
@@ -11609,11 +11987,21 @@ components:
|
|
|
11609
11987
|
name: x-api-key
|
|
11610
11988
|
description: Anthropic-style Soha PAT/SAT credential header for native relay endpoints.
|
|
11611
11989
|
parameters:
|
|
11990
|
+
MenuID:
|
|
11991
|
+
name: menuID
|
|
11992
|
+
in: path
|
|
11993
|
+
required: true
|
|
11994
|
+
schema: { type: string, minLength: 1, maxLength: 128 }
|
|
11612
11995
|
AccessRoleID:
|
|
11613
11996
|
name: accessRoleID
|
|
11614
11997
|
in: path
|
|
11615
11998
|
required: true
|
|
11616
11999
|
schema: { type: string, minLength: 1, maxLength: 128 }
|
|
12000
|
+
ScopeGrantID:
|
|
12001
|
+
name: scopeGrantID
|
|
12002
|
+
in: path
|
|
12003
|
+
required: true
|
|
12004
|
+
schema: { type: string, minLength: 1, maxLength: 128 }
|
|
11617
12005
|
IdentityApplicationID:
|
|
11618
12006
|
name: identityApplicationID
|
|
11619
12007
|
in: path
|
|
@@ -11918,6 +12306,60 @@ components:
|
|
|
11918
12306
|
type: string
|
|
11919
12307
|
minLength: 1
|
|
11920
12308
|
maxLength: 128
|
|
12309
|
+
ObservabilityDataSourceIDQuery:
|
|
12310
|
+
name: dataSourceId
|
|
12311
|
+
in: query
|
|
12312
|
+
required: false
|
|
12313
|
+
schema:
|
|
12314
|
+
type: string
|
|
12315
|
+
minLength: 1
|
|
12316
|
+
maxLength: 200
|
|
12317
|
+
ObservabilityClusterIDQuery:
|
|
12318
|
+
name: clusterId
|
|
12319
|
+
in: query
|
|
12320
|
+
required: false
|
|
12321
|
+
schema:
|
|
12322
|
+
type: string
|
|
12323
|
+
minLength: 1
|
|
12324
|
+
maxLength: 128
|
|
12325
|
+
ObservabilityEnvironmentQuery:
|
|
12326
|
+
name: environment
|
|
12327
|
+
in: query
|
|
12328
|
+
required: false
|
|
12329
|
+
schema:
|
|
12330
|
+
type: string
|
|
12331
|
+
minLength: 1
|
|
12332
|
+
maxLength: 128
|
|
12333
|
+
ObservabilityNamespaceQuery:
|
|
12334
|
+
name: namespace
|
|
12335
|
+
in: query
|
|
12336
|
+
required: false
|
|
12337
|
+
schema:
|
|
12338
|
+
type: string
|
|
12339
|
+
minLength: 1
|
|
12340
|
+
maxLength: 253
|
|
12341
|
+
ObservabilityServiceQuery:
|
|
12342
|
+
name: service
|
|
12343
|
+
in: query
|
|
12344
|
+
required: false
|
|
12345
|
+
schema:
|
|
12346
|
+
type: string
|
|
12347
|
+
minLength: 1
|
|
12348
|
+
maxLength: 253
|
|
12349
|
+
ObservabilityTimeFromQuery:
|
|
12350
|
+
name: timeFrom
|
|
12351
|
+
in: query
|
|
12352
|
+
required: true
|
|
12353
|
+
schema:
|
|
12354
|
+
type: string
|
|
12355
|
+
format: date-time
|
|
12356
|
+
ObservabilityTimeToQuery:
|
|
12357
|
+
name: timeTo
|
|
12358
|
+
in: query
|
|
12359
|
+
required: true
|
|
12360
|
+
schema:
|
|
12361
|
+
type: string
|
|
12362
|
+
format: date-time
|
|
11921
12363
|
DashboardID:
|
|
11922
12364
|
name: dashboardID
|
|
11923
12365
|
in: path
|
|
@@ -12584,22 +13026,92 @@ components:
|
|
|
12584
13026
|
id: { type: string }
|
|
12585
13027
|
providerId: { type: string }
|
|
12586
13028
|
clientId: { type: string }
|
|
12587
|
-
|
|
12588
|
-
|
|
13029
|
+
clientType: { type: string, enum: [public, confidential] }
|
|
13030
|
+
redirectUris:
|
|
13031
|
+
type: array
|
|
13032
|
+
description: Strict-match absolute HTTP or HTTPS redirect URIs. HTTPS is recommended for production deployments.
|
|
13033
|
+
items: { type: string, format: uri }
|
|
13034
|
+
grantTypes:
|
|
13035
|
+
type: array
|
|
13036
|
+
deprecated: true
|
|
13037
|
+
description: Deprecated response alias retained for 0.1.x compatibility; use allowedGrantTypes.
|
|
13038
|
+
items: { type: string, enum: [authorization_code, refresh_token] }
|
|
13039
|
+
redirectUriRegexes:
|
|
13040
|
+
type: array
|
|
13041
|
+
maxItems: 100
|
|
13042
|
+
description: RE2 regular expressions matched against the complete absolute HTTP or HTTPS redirect URI. Evaluated in addition to redirectUris.
|
|
13043
|
+
items: { type: string, minLength: 1, maxLength: 2048 }
|
|
13044
|
+
postLogoutRedirectUris:
|
|
13045
|
+
type: array
|
|
13046
|
+
description: Absolute HTTP or HTTPS post-logout redirect URIs. HTTPS is recommended for production deployments.
|
|
13047
|
+
items: { type: string, format: uri }
|
|
13048
|
+
allowedScopes: { type: array, items: { type: string } }
|
|
13049
|
+
allowedGrantTypes: { type: array, items: { type: string, enum: [authorization_code, refresh_token] } }
|
|
13050
|
+
requirePkce: { type: boolean }
|
|
13051
|
+
accessTokenTtlSeconds: { type: integer, minimum: 60 }
|
|
13052
|
+
idTokenTtlSeconds: { type: integer, minimum: 60 }
|
|
13053
|
+
refreshTokenTtlSeconds: { type: integer, minimum: 0 }
|
|
12589
13054
|
status: { $ref: "#/components/schemas/IdentityResourceStatus" }
|
|
12590
13055
|
createdAt: { type: string, format: date-time }
|
|
12591
13056
|
updatedAt: { type: string, format: date-time }
|
|
12592
13057
|
additionalProperties: false
|
|
12593
13058
|
OIDCClientInput:
|
|
13059
|
+
allOf:
|
|
13060
|
+
- type: object
|
|
13061
|
+
required: [clientId]
|
|
13062
|
+
properties:
|
|
13063
|
+
providerId: { type: string }
|
|
13064
|
+
clientId: { type: string }
|
|
13065
|
+
clientType: { type: string, enum: [public, confidential] }
|
|
13066
|
+
clientSecret: { type: string, minLength: 16, writeOnly: true }
|
|
13067
|
+
redirectUris:
|
|
13068
|
+
type: array
|
|
13069
|
+
description: Strict-match absolute HTTP or HTTPS redirect URIs. At least one redirectUris or redirectUriRegexes entry is required. HTTPS is recommended for production deployments.
|
|
13070
|
+
items: { type: string, format: uri }
|
|
13071
|
+
redirectUriRegexes:
|
|
13072
|
+
type: array
|
|
13073
|
+
maxItems: 100
|
|
13074
|
+
description: RE2 regular expressions matched against the complete absolute HTTP or HTTPS redirect URI. At least one redirectUris or redirectUriRegexes entry is required.
|
|
13075
|
+
items: { type: string, minLength: 1, maxLength: 2048 }
|
|
13076
|
+
postLogoutRedirectUris:
|
|
13077
|
+
type: array
|
|
13078
|
+
description: Absolute HTTP or HTTPS post-logout redirect URIs. HTTPS is recommended for production deployments.
|
|
13079
|
+
items: { type: string, format: uri }
|
|
13080
|
+
allowedScopes: { type: array, minItems: 1, items: { type: string } }
|
|
13081
|
+
grantTypes:
|
|
13082
|
+
type: array
|
|
13083
|
+
minItems: 1
|
|
13084
|
+
deprecated: true
|
|
13085
|
+
description: Deprecated request alias retained for 0.1.x compatibility; use allowedGrantTypes.
|
|
13086
|
+
items: { type: string, enum: [authorization_code, refresh_token] }
|
|
13087
|
+
allowedGrantTypes: { type: array, minItems: 1, items: { type: string, enum: [authorization_code, refresh_token] } }
|
|
13088
|
+
requirePkce: { type: boolean }
|
|
13089
|
+
accessTokenTtlSeconds: { type: integer, minimum: 0 }
|
|
13090
|
+
idTokenTtlSeconds: { type: integer, minimum: 0 }
|
|
13091
|
+
refreshTokenTtlSeconds: { type: integer, minimum: 0 }
|
|
13092
|
+
status: { $ref: "#/components/schemas/IdentityResourceStatus" }
|
|
13093
|
+
additionalProperties: false
|
|
13094
|
+
- anyOf:
|
|
13095
|
+
- type: object
|
|
13096
|
+
required: [redirectUris]
|
|
13097
|
+
properties:
|
|
13098
|
+
redirectUris: { type: array, minItems: 1, items: { type: string, format: uri } }
|
|
13099
|
+
- type: object
|
|
13100
|
+
required: [redirectUriRegexes]
|
|
13101
|
+
properties:
|
|
13102
|
+
redirectUriRegexes: { type: array, minItems: 1, items: { type: string, minLength: 1, maxLength: 2048 } }
|
|
13103
|
+
OIDCClientCreated:
|
|
12594
13104
|
type: object
|
|
12595
|
-
required: [
|
|
13105
|
+
required: [client]
|
|
12596
13106
|
properties:
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
|
|
13107
|
+
client: { $ref: "#/components/schemas/OIDCClient" }
|
|
13108
|
+
clientSecret: { type: string, writeOnly: true }
|
|
13109
|
+
additionalProperties: false
|
|
13110
|
+
OIDCClientCreatedEnvelope:
|
|
13111
|
+
type: object
|
|
13112
|
+
required: [data]
|
|
13113
|
+
properties:
|
|
13114
|
+
data: { $ref: "#/components/schemas/OIDCClientCreated" }
|
|
12603
13115
|
additionalProperties: false
|
|
12604
13116
|
OIDCClientEnvelope:
|
|
12605
13117
|
type: object
|
|
@@ -12618,7 +13130,11 @@ components:
|
|
|
12618
13130
|
required: [entityId, acsUrls, nameIdFormat, wantAuthnRequestsSigned, wantAssertionsSigned, attributeMappings]
|
|
12619
13131
|
properties:
|
|
12620
13132
|
entityId: { type: string, minLength: 1 }
|
|
12621
|
-
acsUrls:
|
|
13133
|
+
acsUrls:
|
|
13134
|
+
type: array
|
|
13135
|
+
minItems: 1
|
|
13136
|
+
description: Absolute HTTP or HTTPS assertion consumer service URLs. HTTPS is recommended for production deployments.
|
|
13137
|
+
items: { type: string, format: uri }
|
|
12622
13138
|
nameIdFormat: { $ref: "#/components/schemas/SAMLNameIDFormat" }
|
|
12623
13139
|
spCertificates: { type: array, items: { $ref: "#/components/schemas/CertificateSummary" } }
|
|
12624
13140
|
signingCertificates: { type: array, items: { $ref: "#/components/schemas/CertificateSummary" } }
|
|
@@ -12631,7 +13147,11 @@ components:
|
|
|
12631
13147
|
required: [entityId, acsUrls, nameIdFormat, wantAuthnRequestsSigned, attributeMappings]
|
|
12632
13148
|
properties:
|
|
12633
13149
|
entityId: { type: string, minLength: 1 }
|
|
12634
|
-
acsUrls:
|
|
13150
|
+
acsUrls:
|
|
13151
|
+
type: array
|
|
13152
|
+
minItems: 1
|
|
13153
|
+
description: Absolute HTTP or HTTPS assertion consumer service URLs. HTTPS is recommended for production deployments.
|
|
13154
|
+
items: { type: string, format: uri }
|
|
12635
13155
|
nameIdFormat: { $ref: "#/components/schemas/SAMLNameIDFormat" }
|
|
12636
13156
|
spCertificatePem: { type: string, writeOnly: true }
|
|
12637
13157
|
wantAuthnRequestsSigned: { type: boolean }
|
|
@@ -12646,8 +13166,20 @@ components:
|
|
|
12646
13166
|
name: { type: string }
|
|
12647
13167
|
type: { $ref: "#/components/schemas/IdentityProviderType" }
|
|
12648
13168
|
enabled: { type: boolean }
|
|
12649
|
-
config:
|
|
12650
|
-
|
|
13169
|
+
config:
|
|
13170
|
+
type: object
|
|
13171
|
+
description: Non-secret provider configuration.
|
|
13172
|
+
additionalProperties: true
|
|
13173
|
+
secretRefs:
|
|
13174
|
+
type: object
|
|
13175
|
+
readOnly: true
|
|
13176
|
+
deprecated: true
|
|
13177
|
+
description: Deprecated response field retained for 0.1.x SDK compatibility; current servers omit it.
|
|
13178
|
+
additionalProperties: true
|
|
13179
|
+
configuredSecretAliases:
|
|
13180
|
+
type: array
|
|
13181
|
+
readOnly: true
|
|
13182
|
+
items: { type: string }
|
|
12651
13183
|
status: { $ref: "#/components/schemas/IdentityResourceStatus" }
|
|
12652
13184
|
createdBy: { type: string }
|
|
12653
13185
|
updatedBy: { type: string }
|
|
@@ -12656,14 +13188,18 @@ components:
|
|
|
12656
13188
|
additionalProperties: false
|
|
12657
13189
|
IdentityProviderInput:
|
|
12658
13190
|
type: object
|
|
12659
|
-
required: [applicationId, name, type, enabled, config,
|
|
13191
|
+
required: [applicationId, name, type, enabled, config, status]
|
|
12660
13192
|
properties:
|
|
12661
13193
|
applicationId: { type: string }
|
|
12662
13194
|
name: { type: string, minLength: 1, maxLength: 200 }
|
|
12663
13195
|
type: { $ref: "#/components/schemas/IdentityProviderType" }
|
|
12664
13196
|
enabled: { type: boolean }
|
|
12665
13197
|
config: { type: object, additionalProperties: true }
|
|
12666
|
-
secretRefs:
|
|
13198
|
+
secretRefs:
|
|
13199
|
+
allOf:
|
|
13200
|
+
- $ref: "#/components/schemas/SecretReferenceMap"
|
|
13201
|
+
writeOnly: true
|
|
13202
|
+
description: Omit on update to preserve existing references; send an empty object to clear them.
|
|
12667
13203
|
status: { $ref: "#/components/schemas/IdentityResourceStatus" }
|
|
12668
13204
|
additionalProperties: false
|
|
12669
13205
|
IdentityProviderEnvelope:
|
|
@@ -14047,6 +14583,65 @@ components:
|
|
|
14047
14583
|
items:
|
|
14048
14584
|
$ref: "#/components/schemas/AnyValue"
|
|
14049
14585
|
additionalProperties: false
|
|
14586
|
+
Menu:
|
|
14587
|
+
type: object
|
|
14588
|
+
required: [id, path, labelZh, labelEn, iconKey, section, sortOrder, enabled]
|
|
14589
|
+
properties:
|
|
14590
|
+
id: { type: string, minLength: 1 }
|
|
14591
|
+
parentId: { type: string, minLength: 1 }
|
|
14592
|
+
path: { type: string, minLength: 1 }
|
|
14593
|
+
labelZh: { type: string, minLength: 1 }
|
|
14594
|
+
labelEn: { type: string, minLength: 1 }
|
|
14595
|
+
iconKey: { type: string, minLength: 1 }
|
|
14596
|
+
section: { type: string }
|
|
14597
|
+
sortOrder: { type: integer }
|
|
14598
|
+
enabled: { type: boolean }
|
|
14599
|
+
roleIds:
|
|
14600
|
+
type: array
|
|
14601
|
+
uniqueItems: true
|
|
14602
|
+
items: { type: string, minLength: 1 }
|
|
14603
|
+
children:
|
|
14604
|
+
type: array
|
|
14605
|
+
items: { $ref: "#/components/schemas/Menu" }
|
|
14606
|
+
additionalProperties: false
|
|
14607
|
+
MenuInput:
|
|
14608
|
+
type: object
|
|
14609
|
+
required: [path, labelZh, labelEn, iconKey]
|
|
14610
|
+
properties:
|
|
14611
|
+
id: { type: string, minLength: 1 }
|
|
14612
|
+
parentId: { type: string, minLength: 1, nullable: true }
|
|
14613
|
+
path: { type: string, minLength: 1 }
|
|
14614
|
+
labelZh: { type: string, minLength: 1 }
|
|
14615
|
+
labelEn: { type: string, minLength: 1 }
|
|
14616
|
+
iconKey: { type: string, minLength: 1 }
|
|
14617
|
+
section: { type: string }
|
|
14618
|
+
sortOrder: { type: integer }
|
|
14619
|
+
enabled: { type: boolean }
|
|
14620
|
+
roleIds:
|
|
14621
|
+
type: array
|
|
14622
|
+
uniqueItems: true
|
|
14623
|
+
items: { type: string, minLength: 1 }
|
|
14624
|
+
additionalProperties: false
|
|
14625
|
+
MenuEnvelope:
|
|
14626
|
+
type: object
|
|
14627
|
+
required: [data]
|
|
14628
|
+
properties:
|
|
14629
|
+
data: { $ref: "#/components/schemas/Menu" }
|
|
14630
|
+
additionalProperties: false
|
|
14631
|
+
MenuListEnvelope:
|
|
14632
|
+
type: object
|
|
14633
|
+
required: [items]
|
|
14634
|
+
properties:
|
|
14635
|
+
items:
|
|
14636
|
+
type: array
|
|
14637
|
+
items: { $ref: "#/components/schemas/Menu" }
|
|
14638
|
+
additionalProperties: false
|
|
14639
|
+
MenuDeleteResult:
|
|
14640
|
+
type: object
|
|
14641
|
+
required: [status]
|
|
14642
|
+
properties:
|
|
14643
|
+
status: { type: string, const: ok }
|
|
14644
|
+
additionalProperties: false
|
|
14050
14645
|
PermissionRiskLevel:
|
|
14051
14646
|
type: string
|
|
14052
14647
|
enum: [read, mutate, execute, high]
|
|
@@ -14162,6 +14757,117 @@ components:
|
|
|
14162
14757
|
properties:
|
|
14163
14758
|
status: { type: string, const: ok }
|
|
14164
14759
|
additionalProperties: false
|
|
14760
|
+
ScopeGrantSubjectType:
|
|
14761
|
+
type: string
|
|
14762
|
+
enum: [user, team]
|
|
14763
|
+
ScopeGrantType:
|
|
14764
|
+
type: string
|
|
14765
|
+
enum: [legacy, delivery, platform]
|
|
14766
|
+
ScopeGrantEffect:
|
|
14767
|
+
type: string
|
|
14768
|
+
enum: [allow, deny]
|
|
14769
|
+
ScopeGrant:
|
|
14770
|
+
type: object
|
|
14771
|
+
required: [id, subjectType, subjectId, businessLineId, scopeType, role, effect, enabled, createdAt, updatedAt]
|
|
14772
|
+
properties:
|
|
14773
|
+
id: { type: string, minLength: 1 }
|
|
14774
|
+
subjectType: { $ref: "#/components/schemas/ScopeGrantSubjectType" }
|
|
14775
|
+
subjectId: { type: string, minLength: 1 }
|
|
14776
|
+
businessLineId:
|
|
14777
|
+
type: string
|
|
14778
|
+
description: Required for legacy and delivery grants; empty for platform grants.
|
|
14779
|
+
environmentIds:
|
|
14780
|
+
type: array
|
|
14781
|
+
uniqueItems: true
|
|
14782
|
+
items: { type: string, minLength: 1 }
|
|
14783
|
+
applicationIds:
|
|
14784
|
+
type: array
|
|
14785
|
+
uniqueItems: true
|
|
14786
|
+
items: { type: string, minLength: 1 }
|
|
14787
|
+
scopeType: { $ref: "#/components/schemas/ScopeGrantType" }
|
|
14788
|
+
clusterIds:
|
|
14789
|
+
type: array
|
|
14790
|
+
uniqueItems: true
|
|
14791
|
+
items: { type: string, minLength: 1 }
|
|
14792
|
+
namespaces:
|
|
14793
|
+
type: array
|
|
14794
|
+
uniqueItems: true
|
|
14795
|
+
items: { type: string, minLength: 1 }
|
|
14796
|
+
namespaceSelector: { type: string }
|
|
14797
|
+
resourceGroups:
|
|
14798
|
+
type: array
|
|
14799
|
+
uniqueItems: true
|
|
14800
|
+
items: { type: string, minLength: 1 }
|
|
14801
|
+
resourceKinds:
|
|
14802
|
+
type: array
|
|
14803
|
+
uniqueItems: true
|
|
14804
|
+
items: { type: string, minLength: 1 }
|
|
14805
|
+
role: { type: string, minLength: 1 }
|
|
14806
|
+
effect: { $ref: "#/components/schemas/ScopeGrantEffect" }
|
|
14807
|
+
enabled: { type: boolean }
|
|
14808
|
+
createdAt: { type: string, format: date-time }
|
|
14809
|
+
updatedAt: { type: string, format: date-time }
|
|
14810
|
+
additionalProperties: false
|
|
14811
|
+
ScopeGrantInput:
|
|
14812
|
+
type: object
|
|
14813
|
+
required: [subjectType, subjectId, role, enabled]
|
|
14814
|
+
properties:
|
|
14815
|
+
id: { type: string, minLength: 1 }
|
|
14816
|
+
subjectType: { $ref: "#/components/schemas/ScopeGrantSubjectType" }
|
|
14817
|
+
subjectId: { type: string, minLength: 1 }
|
|
14818
|
+
businessLineId:
|
|
14819
|
+
type: string
|
|
14820
|
+
description: Required when scopeType is legacy or delivery.
|
|
14821
|
+
environmentIds:
|
|
14822
|
+
type: array
|
|
14823
|
+
uniqueItems: true
|
|
14824
|
+
items: { type: string, minLength: 1 }
|
|
14825
|
+
applicationIds:
|
|
14826
|
+
type: array
|
|
14827
|
+
uniqueItems: true
|
|
14828
|
+
items: { type: string, minLength: 1 }
|
|
14829
|
+
scopeType:
|
|
14830
|
+
allOf:
|
|
14831
|
+
- $ref: "#/components/schemas/ScopeGrantType"
|
|
14832
|
+
default: legacy
|
|
14833
|
+
clusterIds:
|
|
14834
|
+
type: array
|
|
14835
|
+
minItems: 1
|
|
14836
|
+
uniqueItems: true
|
|
14837
|
+
description: Required when scopeType is platform.
|
|
14838
|
+
items: { type: string, minLength: 1 }
|
|
14839
|
+
namespaces:
|
|
14840
|
+
type: array
|
|
14841
|
+
uniqueItems: true
|
|
14842
|
+
items: { type: string, minLength: 1 }
|
|
14843
|
+
namespaceSelector: { type: string }
|
|
14844
|
+
resourceGroups:
|
|
14845
|
+
type: array
|
|
14846
|
+
uniqueItems: true
|
|
14847
|
+
items: { type: string, minLength: 1 }
|
|
14848
|
+
resourceKinds:
|
|
14849
|
+
type: array
|
|
14850
|
+
uniqueItems: true
|
|
14851
|
+
items: { type: string, minLength: 1 }
|
|
14852
|
+
role: { type: string, minLength: 1 }
|
|
14853
|
+
effect:
|
|
14854
|
+
allOf:
|
|
14855
|
+
- $ref: "#/components/schemas/ScopeGrantEffect"
|
|
14856
|
+
default: allow
|
|
14857
|
+
enabled: { type: boolean }
|
|
14858
|
+
additionalProperties: false
|
|
14859
|
+
ScopeGrantEnvelope:
|
|
14860
|
+
type: object
|
|
14861
|
+
required: [data]
|
|
14862
|
+
properties:
|
|
14863
|
+
data: { $ref: "#/components/schemas/ScopeGrant" }
|
|
14864
|
+
additionalProperties: false
|
|
14865
|
+
ScopeGrantListEnvelope:
|
|
14866
|
+
type: object
|
|
14867
|
+
required: [items]
|
|
14868
|
+
properties:
|
|
14869
|
+
items: { type: array, items: { $ref: "#/components/schemas/ScopeGrant" } }
|
|
14870
|
+
additionalProperties: false
|
|
14165
14871
|
AuthorizationDecisionStatus:
|
|
14166
14872
|
type: string
|
|
14167
14873
|
enum: [allow, deny, approval_required]
|
|
@@ -16578,6 +17284,7 @@ components:
|
|
|
16578
17284
|
properties:
|
|
16579
17285
|
appTitle: { type: string }
|
|
16580
17286
|
sidebarTitle: { type: string }
|
|
17287
|
+
slogan: { type: string }
|
|
16581
17288
|
loginLogoUrl: { type: string }
|
|
16582
17289
|
expandedLogoUrl: { type: string }
|
|
16583
17290
|
collapsedLogoUrl: { type: string }
|
|
@@ -16596,6 +17303,7 @@ components:
|
|
|
16596
17303
|
properties:
|
|
16597
17304
|
appTitle: { type: string }
|
|
16598
17305
|
sidebarTitle: { type: string }
|
|
17306
|
+
slogan: { type: string }
|
|
16599
17307
|
loginLogoUrl: { type: string }
|
|
16600
17308
|
expandedLogoUrl: { type: string }
|
|
16601
17309
|
collapsedLogoUrl: { type: string }
|
|
@@ -17338,6 +18046,8 @@ components:
|
|
|
17338
18046
|
type: object
|
|
17339
18047
|
required: [verification]
|
|
17340
18048
|
properties:
|
|
18049
|
+
branding:
|
|
18050
|
+
$ref: "#/components/schemas/BrandingSettings"
|
|
17341
18051
|
localPasswordLoginEnabled:
|
|
17342
18052
|
type: boolean
|
|
17343
18053
|
verification:
|
|
@@ -25210,47 +25920,136 @@ components:
|
|
|
25210
25920
|
data:
|
|
25211
25921
|
$ref: "#/components/schemas/AgentInstallation"
|
|
25212
25922
|
additionalProperties: false
|
|
25213
|
-
|
|
25214
|
-
type: string
|
|
25215
|
-
enum: [logs, metrics, traces, profiles]
|
|
25216
|
-
x-enum-varnames:
|
|
25217
|
-
- ObservabilityProviderSignalLogs
|
|
25218
|
-
- ObservabilityProviderSignalMetrics
|
|
25219
|
-
- ObservabilityProviderSignalTraces
|
|
25220
|
-
- ObservabilityProviderSignalProfiles
|
|
25221
|
-
ObservabilityProviderRuntimeMode:
|
|
25222
|
-
type: string
|
|
25223
|
-
enum: [builtin, external-http, managed-container]
|
|
25224
|
-
x-enum-varnames:
|
|
25225
|
-
- ObservabilityProviderRuntimeModeBuiltin
|
|
25226
|
-
- ObservabilityProviderRuntimeModeExternalHTTP
|
|
25227
|
-
- ObservabilityProviderRuntimeModeManagedContainer
|
|
25228
|
-
ObservabilityProviderStatus:
|
|
25229
|
-
type: string
|
|
25230
|
-
enum: [supported, degraded, unsupported]
|
|
25231
|
-
x-enum-varnames:
|
|
25232
|
-
- ObservabilityProviderStatusSupported
|
|
25233
|
-
- ObservabilityProviderStatusDegraded
|
|
25234
|
-
- ObservabilityProviderStatusUnsupported
|
|
25235
|
-
ObservabilityProviderDefinition:
|
|
25923
|
+
DockerHostAgentInstallation:
|
|
25236
25924
|
type: object
|
|
25237
|
-
required: [
|
|
25925
|
+
required: [hostId, operationId, scriptUrl, command, expiresAt]
|
|
25238
25926
|
properties:
|
|
25239
|
-
|
|
25927
|
+
hostId:
|
|
25240
25928
|
type: string
|
|
25241
|
-
|
|
25242
|
-
|
|
25243
|
-
description: Required when backendType is provider.
|
|
25244
|
-
displayName:
|
|
25929
|
+
minLength: 1
|
|
25930
|
+
operationId:
|
|
25245
25931
|
type: string
|
|
25246
25932
|
minLength: 1
|
|
25247
|
-
|
|
25248
|
-
description:
|
|
25933
|
+
scriptUrl:
|
|
25249
25934
|
type: string
|
|
25250
|
-
|
|
25251
|
-
|
|
25935
|
+
format: uri
|
|
25936
|
+
command:
|
|
25252
25937
|
type: string
|
|
25253
|
-
|
|
25938
|
+
minLength: 1
|
|
25939
|
+
expiresAt:
|
|
25940
|
+
type: string
|
|
25941
|
+
format: date-time
|
|
25942
|
+
additionalProperties: false
|
|
25943
|
+
DockerHostAgentInstallationEnvelope:
|
|
25944
|
+
type: object
|
|
25945
|
+
required: [data]
|
|
25946
|
+
properties:
|
|
25947
|
+
data:
|
|
25948
|
+
$ref: "#/components/schemas/DockerHostAgentInstallation"
|
|
25949
|
+
additionalProperties: false
|
|
25950
|
+
DockerHostAgentEnrollmentRequest:
|
|
25951
|
+
type: object
|
|
25952
|
+
required: [agentId, enrollmentToken]
|
|
25953
|
+
properties:
|
|
25954
|
+
agentId:
|
|
25955
|
+
type: string
|
|
25956
|
+
minLength: 1
|
|
25957
|
+
maxLength: 200
|
|
25958
|
+
enrollmentToken:
|
|
25959
|
+
type: string
|
|
25960
|
+
minLength: 32
|
|
25961
|
+
maxLength: 512
|
|
25962
|
+
format: password
|
|
25963
|
+
description: Short-lived one-time secret delivered only inside the installer.
|
|
25964
|
+
additionalProperties: false
|
|
25965
|
+
DockerHostAgentCredentials:
|
|
25966
|
+
type: object
|
|
25967
|
+
required: [hostId, operationId, agentId, agentBearerToken, runtimeBearerToken, issuedAt]
|
|
25968
|
+
properties:
|
|
25969
|
+
hostId:
|
|
25970
|
+
type: string
|
|
25971
|
+
minLength: 1
|
|
25972
|
+
operationId:
|
|
25973
|
+
type: string
|
|
25974
|
+
minLength: 1
|
|
25975
|
+
agentId:
|
|
25976
|
+
type: string
|
|
25977
|
+
minLength: 1
|
|
25978
|
+
maxLength: 200
|
|
25979
|
+
agentBearerToken:
|
|
25980
|
+
type: string
|
|
25981
|
+
minLength: 32
|
|
25982
|
+
maxLength: 512
|
|
25983
|
+
format: password
|
|
25984
|
+
description: Credential for the Agent's local HTTP API, returned only by the successful enrollment response.
|
|
25985
|
+
runtimeBearerToken:
|
|
25986
|
+
type: string
|
|
25987
|
+
minLength: 32
|
|
25988
|
+
maxLength: 512
|
|
25989
|
+
format: password
|
|
25990
|
+
description: Revocable credential restricted to Docker operations for this host.
|
|
25991
|
+
issuedAt:
|
|
25992
|
+
type: string
|
|
25993
|
+
format: date-time
|
|
25994
|
+
additionalProperties: false
|
|
25995
|
+
DockerHostAgentCredentialsEnvelope:
|
|
25996
|
+
type: object
|
|
25997
|
+
required: [data]
|
|
25998
|
+
properties:
|
|
25999
|
+
data:
|
|
26000
|
+
$ref: "#/components/schemas/DockerHostAgentCredentials"
|
|
26001
|
+
additionalProperties: false
|
|
26002
|
+
ObservabilityProviderSignal:
|
|
26003
|
+
type: string
|
|
26004
|
+
enum: [logs, metrics, traces, profiles]
|
|
26005
|
+
x-enum-varnames:
|
|
26006
|
+
- ObservabilityProviderSignalLogs
|
|
26007
|
+
- ObservabilityProviderSignalMetrics
|
|
26008
|
+
- ObservabilityProviderSignalTraces
|
|
26009
|
+
- ObservabilityProviderSignalProfiles
|
|
26010
|
+
ObservabilityProviderRuntimeMode:
|
|
26011
|
+
type: string
|
|
26012
|
+
enum: [builtin, external-http, managed-container]
|
|
26013
|
+
x-enum-varnames:
|
|
26014
|
+
- ObservabilityProviderRuntimeModeBuiltin
|
|
26015
|
+
- ObservabilityProviderRuntimeModeExternalHTTP
|
|
26016
|
+
- ObservabilityProviderRuntimeModeManagedContainer
|
|
26017
|
+
ObservabilityProviderStatus:
|
|
26018
|
+
type: string
|
|
26019
|
+
enum: [supported, degraded, unsupported]
|
|
26020
|
+
x-enum-varnames:
|
|
26021
|
+
- ObservabilityProviderStatusSupported
|
|
26022
|
+
- ObservabilityProviderStatusDegraded
|
|
26023
|
+
- ObservabilityProviderStatusUnsupported
|
|
26024
|
+
ObservabilityProviderRuntimeStatus:
|
|
26025
|
+
type: string
|
|
26026
|
+
enum: [unconfigured, unknown, healthy, degraded, failed, unsupported]
|
|
26027
|
+
x-enum-varnames:
|
|
26028
|
+
- ObservabilityProviderRuntimeStatusUnconfigured
|
|
26029
|
+
- ObservabilityProviderRuntimeStatusUnknown
|
|
26030
|
+
- ObservabilityProviderRuntimeStatusHealthy
|
|
26031
|
+
- ObservabilityProviderRuntimeStatusDegraded
|
|
26032
|
+
- ObservabilityProviderRuntimeStatusFailed
|
|
26033
|
+
- ObservabilityProviderRuntimeStatusUnsupported
|
|
26034
|
+
ObservabilityProviderDefinition:
|
|
26035
|
+
type: object
|
|
26036
|
+
required: [providerKey, displayName, protocolVersion, signals, capabilities, runtimeMode, builtIn, status]
|
|
26037
|
+
properties:
|
|
26038
|
+
providerKey:
|
|
26039
|
+
type: string
|
|
26040
|
+
pattern: "^[a-z][a-z0-9._-]*$"
|
|
26041
|
+
maxLength: 128
|
|
26042
|
+
description: Required when backendType is provider.
|
|
26043
|
+
displayName:
|
|
26044
|
+
type: string
|
|
26045
|
+
minLength: 1
|
|
26046
|
+
maxLength: 200
|
|
26047
|
+
description:
|
|
26048
|
+
type: string
|
|
26049
|
+
maxLength: 1000
|
|
26050
|
+
protocolVersion:
|
|
26051
|
+
type: string
|
|
26052
|
+
pattern: "^v[1-9][0-9]*$"
|
|
25254
26053
|
signals:
|
|
25255
26054
|
type: array
|
|
25256
26055
|
minItems: 1
|
|
@@ -25273,6 +26072,17 @@ components:
|
|
|
25273
26072
|
statusReason:
|
|
25274
26073
|
type: string
|
|
25275
26074
|
maxLength: 500
|
|
26075
|
+
configured:
|
|
26076
|
+
type: boolean
|
|
26077
|
+
description: True when at least one enabled data source is configured for this provider.
|
|
26078
|
+
runtimeStatus:
|
|
26079
|
+
$ref: "#/components/schemas/ObservabilityProviderRuntimeStatus"
|
|
26080
|
+
runtimeStatusReason:
|
|
26081
|
+
type: string
|
|
26082
|
+
maxLength: 500
|
|
26083
|
+
lastValidatedAt:
|
|
26084
|
+
type: string
|
|
26085
|
+
format: date-time
|
|
25276
26086
|
pluginId:
|
|
25277
26087
|
type: string
|
|
25278
26088
|
maxLength: 200
|
|
@@ -25294,14 +26104,23 @@ components:
|
|
|
25294
26104
|
enum: [grafana]
|
|
25295
26105
|
x-enum-varnames:
|
|
25296
26106
|
- ObservabilityDashboardSourceGrafana
|
|
26107
|
+
ObservabilityDashboardSourceFormat:
|
|
26108
|
+
type: string
|
|
26109
|
+
enum: [classic, v1]
|
|
26110
|
+
x-enum-varnames:
|
|
26111
|
+
- ObservabilityDashboardSourceFormatClassic
|
|
26112
|
+
- ObservabilityDashboardSourceFormatV1
|
|
25297
26113
|
ObservabilityDashboardPanelType:
|
|
25298
26114
|
type: string
|
|
25299
|
-
enum: [timeseries, stat, text, row]
|
|
26115
|
+
enum: [timeseries, table, stat, gauge, text, row, unsupported]
|
|
25300
26116
|
x-enum-varnames:
|
|
25301
26117
|
- ObservabilityDashboardPanelTypeTimeseries
|
|
26118
|
+
- ObservabilityDashboardPanelTypeTable
|
|
25302
26119
|
- ObservabilityDashboardPanelTypeStat
|
|
26120
|
+
- ObservabilityDashboardPanelTypeGauge
|
|
25303
26121
|
- ObservabilityDashboardPanelTypeText
|
|
25304
26122
|
- ObservabilityDashboardPanelTypeRow
|
|
26123
|
+
- ObservabilityDashboardPanelTypeUnsupported
|
|
25305
26124
|
ObservabilityDashboardPanelLayout:
|
|
25306
26125
|
type: object
|
|
25307
26126
|
required: [x, y, w, h]
|
|
@@ -25337,6 +26156,15 @@ components:
|
|
|
25337
26156
|
legend:
|
|
25338
26157
|
type: string
|
|
25339
26158
|
maxLength: 256
|
|
26159
|
+
dataSourceType:
|
|
26160
|
+
type: string
|
|
26161
|
+
maxLength: 128
|
|
26162
|
+
dataSourceUid:
|
|
26163
|
+
type: string
|
|
26164
|
+
maxLength: 200
|
|
26165
|
+
dataSourceId:
|
|
26166
|
+
type: string
|
|
26167
|
+
maxLength: 200
|
|
25340
26168
|
additionalProperties: false
|
|
25341
26169
|
ObservabilityDashboardPanel:
|
|
25342
26170
|
type: object
|
|
@@ -25364,6 +26192,61 @@ components:
|
|
|
25364
26192
|
markdown:
|
|
25365
26193
|
type: string
|
|
25366
26194
|
maxLength: 32768
|
|
26195
|
+
sourcePanelType:
|
|
26196
|
+
type: string
|
|
26197
|
+
maxLength: 128
|
|
26198
|
+
unsupported:
|
|
26199
|
+
type: boolean
|
|
26200
|
+
rawJson:
|
|
26201
|
+
type: string
|
|
26202
|
+
maxLength: 2097152
|
|
26203
|
+
description: Original Grafana panel JSON retained for unsupported renderers and never executed directly.
|
|
26204
|
+
additionalProperties: false
|
|
26205
|
+
ObservabilityDashboardVariableType:
|
|
26206
|
+
type: string
|
|
26207
|
+
enum: [custom, constant]
|
|
26208
|
+
x-enum-varnames:
|
|
26209
|
+
- ObservabilityDashboardVariableTypeCustom
|
|
26210
|
+
- ObservabilityDashboardVariableTypeConstant
|
|
26211
|
+
ObservabilityDashboardVariable:
|
|
26212
|
+
type: object
|
|
26213
|
+
required: [name, type, options]
|
|
26214
|
+
properties:
|
|
26215
|
+
name:
|
|
26216
|
+
type: string
|
|
26217
|
+
pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
26218
|
+
maxLength: 64
|
|
26219
|
+
label:
|
|
26220
|
+
type: string
|
|
26221
|
+
maxLength: 200
|
|
26222
|
+
type:
|
|
26223
|
+
$ref: "#/components/schemas/ObservabilityDashboardVariableType"
|
|
26224
|
+
current:
|
|
26225
|
+
type: string
|
|
26226
|
+
maxLength: 512
|
|
26227
|
+
options:
|
|
26228
|
+
type: array
|
|
26229
|
+
maxItems: 100
|
|
26230
|
+
uniqueItems: true
|
|
26231
|
+
items:
|
|
26232
|
+
type: string
|
|
26233
|
+
maxLength: 512
|
|
26234
|
+
additionalProperties: false
|
|
26235
|
+
ObservabilityDashboardDataSourceBinding:
|
|
26236
|
+
type: object
|
|
26237
|
+
required: [type, dataSourceId]
|
|
26238
|
+
properties:
|
|
26239
|
+
type:
|
|
26240
|
+
type: string
|
|
26241
|
+
minLength: 1
|
|
26242
|
+
maxLength: 128
|
|
26243
|
+
uid:
|
|
26244
|
+
type: string
|
|
26245
|
+
maxLength: 200
|
|
26246
|
+
dataSourceId:
|
|
26247
|
+
type: string
|
|
26248
|
+
minLength: 1
|
|
26249
|
+
maxLength: 200
|
|
25367
26250
|
additionalProperties: false
|
|
25368
26251
|
ObservabilityDashboard:
|
|
25369
26252
|
type: object
|
|
@@ -25379,6 +26262,8 @@ components:
|
|
|
25379
26262
|
maxLength: 200
|
|
25380
26263
|
source:
|
|
25381
26264
|
$ref: "#/components/schemas/ObservabilityDashboardSource"
|
|
26265
|
+
sourceFormat:
|
|
26266
|
+
$ref: "#/components/schemas/ObservabilityDashboardSourceFormat"
|
|
25382
26267
|
sourceSchemaVersion:
|
|
25383
26268
|
type: integer
|
|
25384
26269
|
minimum: 0
|
|
@@ -25398,6 +26283,25 @@ components:
|
|
|
25398
26283
|
maxItems: 200
|
|
25399
26284
|
items:
|
|
25400
26285
|
$ref: "#/components/schemas/ObservabilityDashboardPanel"
|
|
26286
|
+
variables:
|
|
26287
|
+
type: array
|
|
26288
|
+
maxItems: 50
|
|
26289
|
+
items:
|
|
26290
|
+
$ref: "#/components/schemas/ObservabilityDashboardVariable"
|
|
26291
|
+
dataSourceBindings:
|
|
26292
|
+
type: array
|
|
26293
|
+
maxItems: 100
|
|
26294
|
+
items:
|
|
26295
|
+
$ref: "#/components/schemas/ObservabilityDashboardDataSourceBinding"
|
|
26296
|
+
importWarnings:
|
|
26297
|
+
type: array
|
|
26298
|
+
maxItems: 500
|
|
26299
|
+
items:
|
|
26300
|
+
$ref: "#/components/schemas/ObservabilityDashboardImportWarning"
|
|
26301
|
+
rawJson:
|
|
26302
|
+
type: string
|
|
26303
|
+
maxLength: 2097152
|
|
26304
|
+
description: Original bounded Grafana import document. It is retained for fidelity and never executed directly.
|
|
25401
26305
|
createdAt:
|
|
25402
26306
|
type: string
|
|
25403
26307
|
format: date-time
|
|
@@ -25486,7 +26390,7 @@ components:
|
|
|
25486
26390
|
$ref: "#/components/schemas/ObservabilityDashboardImportWarning"
|
|
25487
26391
|
importedPanelCount:
|
|
25488
26392
|
type: integer
|
|
25489
|
-
minimum:
|
|
26393
|
+
minimum: 0
|
|
25490
26394
|
skippedPanelCount:
|
|
25491
26395
|
type: integer
|
|
25492
26396
|
minimum: 0
|
|
@@ -25513,13 +26417,25 @@ components:
|
|
|
25513
26417
|
minimum: 1
|
|
25514
26418
|
maximum: 3600
|
|
25515
26419
|
default: 60
|
|
26420
|
+
variables:
|
|
26421
|
+
type: object
|
|
26422
|
+
maxProperties: 50
|
|
26423
|
+
additionalProperties:
|
|
26424
|
+
type: string
|
|
26425
|
+
maxLength: 512
|
|
25516
26426
|
additionalProperties: false
|
|
25517
26427
|
ObservabilityQueryScope:
|
|
25518
26428
|
type: object
|
|
25519
26429
|
properties:
|
|
26430
|
+
workspaceId:
|
|
26431
|
+
type: string
|
|
26432
|
+
maxLength: 128
|
|
25520
26433
|
clusterId:
|
|
25521
26434
|
type: string
|
|
25522
26435
|
maxLength: 128
|
|
26436
|
+
environment:
|
|
26437
|
+
type: string
|
|
26438
|
+
maxLength: 128
|
|
25523
26439
|
namespace:
|
|
25524
26440
|
type: string
|
|
25525
26441
|
maxLength: 253
|
|
@@ -25530,6 +26446,187 @@ components:
|
|
|
25530
26446
|
type: string
|
|
25531
26447
|
maxLength: 253
|
|
25532
26448
|
additionalProperties: false
|
|
26449
|
+
ObservabilitySignal:
|
|
26450
|
+
type: string
|
|
26451
|
+
enum: [metrics, traces, logs, events]
|
|
26452
|
+
x-enum-varnames:
|
|
26453
|
+
- ObservabilitySignalMetrics
|
|
26454
|
+
- ObservabilitySignalTraces
|
|
26455
|
+
- ObservabilitySignalLogs
|
|
26456
|
+
- ObservabilitySignalEvents
|
|
26457
|
+
ObservabilityTimeRange:
|
|
26458
|
+
type: object
|
|
26459
|
+
required: [from, to]
|
|
26460
|
+
properties:
|
|
26461
|
+
from:
|
|
26462
|
+
type: string
|
|
26463
|
+
format: date-time
|
|
26464
|
+
to:
|
|
26465
|
+
type: string
|
|
26466
|
+
format: date-time
|
|
26467
|
+
timezone:
|
|
26468
|
+
type: string
|
|
26469
|
+
maxLength: 64
|
|
26470
|
+
additionalProperties: false
|
|
26471
|
+
ObservabilityResourceIdentity:
|
|
26472
|
+
type: object
|
|
26473
|
+
required: [kind, name]
|
|
26474
|
+
properties:
|
|
26475
|
+
kind:
|
|
26476
|
+
type: string
|
|
26477
|
+
minLength: 1
|
|
26478
|
+
maxLength: 128
|
|
26479
|
+
name:
|
|
26480
|
+
type: string
|
|
26481
|
+
minLength: 1
|
|
26482
|
+
maxLength: 253
|
|
26483
|
+
uid:
|
|
26484
|
+
type: string
|
|
26485
|
+
maxLength: 253
|
|
26486
|
+
additionalProperties: false
|
|
26487
|
+
ObservabilityFilter:
|
|
26488
|
+
type: object
|
|
26489
|
+
properties:
|
|
26490
|
+
text:
|
|
26491
|
+
type: string
|
|
26492
|
+
maxLength: 2048
|
|
26493
|
+
labels:
|
|
26494
|
+
type: object
|
|
26495
|
+
maxProperties: 100
|
|
26496
|
+
additionalProperties:
|
|
26497
|
+
type: string
|
|
26498
|
+
maxLength: 1024
|
|
26499
|
+
traceId:
|
|
26500
|
+
type: string
|
|
26501
|
+
maxLength: 128
|
|
26502
|
+
spanId:
|
|
26503
|
+
type: string
|
|
26504
|
+
maxLength: 128
|
|
26505
|
+
additionalProperties: false
|
|
26506
|
+
ObservabilityContext:
|
|
26507
|
+
type: object
|
|
26508
|
+
required: [version, scope, timeRange]
|
|
26509
|
+
properties:
|
|
26510
|
+
version:
|
|
26511
|
+
type: string
|
|
26512
|
+
enum: [v1]
|
|
26513
|
+
scope:
|
|
26514
|
+
$ref: "#/components/schemas/ObservabilityQueryScope"
|
|
26515
|
+
resource:
|
|
26516
|
+
$ref: "#/components/schemas/ObservabilityResourceIdentity"
|
|
26517
|
+
timeRange:
|
|
26518
|
+
$ref: "#/components/schemas/ObservabilityTimeRange"
|
|
26519
|
+
filter:
|
|
26520
|
+
$ref: "#/components/schemas/ObservabilityFilter"
|
|
26521
|
+
scopeRestricted:
|
|
26522
|
+
type: boolean
|
|
26523
|
+
readOnly: true
|
|
26524
|
+
description: True when authorization narrowed the requested scope.
|
|
26525
|
+
additionalProperties: false
|
|
26526
|
+
ObservabilityQueryLanguage:
|
|
26527
|
+
type: string
|
|
26528
|
+
enum: [metric_key, promql, logql, elasticsearch, clickhouse_sql, trace_filter, event_filter]
|
|
26529
|
+
x-enum-varnames:
|
|
26530
|
+
- ObservabilityQueryLanguageMetricKey
|
|
26531
|
+
- ObservabilityQueryLanguagePromQL
|
|
26532
|
+
- ObservabilityQueryLanguageLogQL
|
|
26533
|
+
- ObservabilityQueryLanguageElasticsearch
|
|
26534
|
+
- ObservabilityQueryLanguageClickHouseSQL
|
|
26535
|
+
- ObservabilityQueryLanguageTraceFilter
|
|
26536
|
+
- ObservabilityQueryLanguageEventFilter
|
|
26537
|
+
ObservabilityQuerySnapshot:
|
|
26538
|
+
type: object
|
|
26539
|
+
required: [version, signal, context]
|
|
26540
|
+
properties:
|
|
26541
|
+
version:
|
|
26542
|
+
type: string
|
|
26543
|
+
enum: [v1]
|
|
26544
|
+
signal:
|
|
26545
|
+
$ref: "#/components/schemas/ObservabilitySignal"
|
|
26546
|
+
dataSourceId:
|
|
26547
|
+
type: string
|
|
26548
|
+
maxLength: 200
|
|
26549
|
+
backendType:
|
|
26550
|
+
type: string
|
|
26551
|
+
maxLength: 128
|
|
26552
|
+
context:
|
|
26553
|
+
$ref: "#/components/schemas/ObservabilityContext"
|
|
26554
|
+
queryLanguage:
|
|
26555
|
+
$ref: "#/components/schemas/ObservabilityQueryLanguage"
|
|
26556
|
+
query:
|
|
26557
|
+
type: string
|
|
26558
|
+
maxLength: 8192
|
|
26559
|
+
description: Provider-native query text. Soha does not translate arbitrary query languages.
|
|
26560
|
+
metricKey:
|
|
26561
|
+
type: string
|
|
26562
|
+
maxLength: 128
|
|
26563
|
+
traceId:
|
|
26564
|
+
type: string
|
|
26565
|
+
maxLength: 128
|
|
26566
|
+
spanId:
|
|
26567
|
+
type: string
|
|
26568
|
+
maxLength: 128
|
|
26569
|
+
createdAt:
|
|
26570
|
+
type: string
|
|
26571
|
+
format: date-time
|
|
26572
|
+
additionalProperties: false
|
|
26573
|
+
ObservabilityQueryState:
|
|
26574
|
+
type: string
|
|
26575
|
+
enum: [success, empty, partial, error, no_data, unsupported]
|
|
26576
|
+
x-enum-varnames:
|
|
26577
|
+
- ObservabilityQueryStateSuccess
|
|
26578
|
+
- ObservabilityQueryStateEmpty
|
|
26579
|
+
- ObservabilityQueryStatePartial
|
|
26580
|
+
- ObservabilityQueryStateError
|
|
26581
|
+
- ObservabilityQueryStateNoData
|
|
26582
|
+
- ObservabilityQueryStateUnsupported
|
|
26583
|
+
ObservabilityQueryError:
|
|
26584
|
+
type: object
|
|
26585
|
+
required: [code, message]
|
|
26586
|
+
properties:
|
|
26587
|
+
code:
|
|
26588
|
+
type: string
|
|
26589
|
+
pattern: "^[a-z][a-z0-9._-]*$"
|
|
26590
|
+
maxLength: 128
|
|
26591
|
+
message:
|
|
26592
|
+
type: string
|
|
26593
|
+
minLength: 1
|
|
26594
|
+
maxLength: 1000
|
|
26595
|
+
retryable:
|
|
26596
|
+
type: boolean
|
|
26597
|
+
sourceId:
|
|
26598
|
+
type: string
|
|
26599
|
+
maxLength: 200
|
|
26600
|
+
additionalProperties: false
|
|
26601
|
+
ObservabilityQueryResultMeta:
|
|
26602
|
+
type: object
|
|
26603
|
+
required: [state]
|
|
26604
|
+
properties:
|
|
26605
|
+
state:
|
|
26606
|
+
$ref: "#/components/schemas/ObservabilityQueryState"
|
|
26607
|
+
snapshot:
|
|
26608
|
+
$ref: "#/components/schemas/ObservabilityQuerySnapshot"
|
|
26609
|
+
observedAt:
|
|
26610
|
+
type: string
|
|
26611
|
+
format: date-time
|
|
26612
|
+
durationMs:
|
|
26613
|
+
type: integer
|
|
26614
|
+
format: int64
|
|
26615
|
+
minimum: 0
|
|
26616
|
+
scopeRestricted:
|
|
26617
|
+
type: boolean
|
|
26618
|
+
warnings:
|
|
26619
|
+
type: array
|
|
26620
|
+
maxItems: 100
|
|
26621
|
+
items:
|
|
26622
|
+
type: string
|
|
26623
|
+
maxLength: 1000
|
|
26624
|
+
errors:
|
|
26625
|
+
type: array
|
|
26626
|
+
maxItems: 100
|
|
26627
|
+
items:
|
|
26628
|
+
$ref: "#/components/schemas/ObservabilityQueryError"
|
|
26629
|
+
additionalProperties: false
|
|
25533
26630
|
ObservabilityMetricKey:
|
|
25534
26631
|
type: string
|
|
25535
26632
|
enum: [cpu_usage, memory_usage, restart_rate, error_rate, latency_p95]
|
|
@@ -25604,6 +26701,8 @@ components:
|
|
|
25604
26701
|
type: array
|
|
25605
26702
|
items:
|
|
25606
26703
|
$ref: "#/components/schemas/ObservabilityMetricSeries"
|
|
26704
|
+
meta:
|
|
26705
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
25607
26706
|
additionalProperties: false
|
|
25608
26707
|
ObservabilityMetricQueryEnvelope:
|
|
25609
26708
|
type: object
|
|
@@ -25689,6 +26788,8 @@ components:
|
|
|
25689
26788
|
type: array
|
|
25690
26789
|
items:
|
|
25691
26790
|
$ref: "#/components/schemas/ObservabilityTraceSpan"
|
|
26791
|
+
meta:
|
|
26792
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
25692
26793
|
additionalProperties: false
|
|
25693
26794
|
ObservabilityTraceQueryEnvelope:
|
|
25694
26795
|
type: object
|
|
@@ -25697,6 +26798,244 @@ components:
|
|
|
25697
26798
|
data:
|
|
25698
26799
|
$ref: "#/components/schemas/ObservabilityTraceQueryResult"
|
|
25699
26800
|
additionalProperties: false
|
|
26801
|
+
ObservabilityServiceStatus:
|
|
26802
|
+
type: string
|
|
26803
|
+
enum: [healthy, degraded, unknown, unsupported]
|
|
26804
|
+
x-enum-varnames:
|
|
26805
|
+
- ObservabilityServiceStatusHealthy
|
|
26806
|
+
- ObservabilityServiceStatusDegraded
|
|
26807
|
+
- ObservabilityServiceStatusUnknown
|
|
26808
|
+
- ObservabilityServiceStatusUnsupported
|
|
26809
|
+
ObservabilityServiceInstance:
|
|
26810
|
+
type: object
|
|
26811
|
+
required: [id, name, status]
|
|
26812
|
+
properties:
|
|
26813
|
+
id:
|
|
26814
|
+
type: string
|
|
26815
|
+
minLength: 1
|
|
26816
|
+
maxLength: 253
|
|
26817
|
+
name:
|
|
26818
|
+
type: string
|
|
26819
|
+
minLength: 1
|
|
26820
|
+
maxLength: 253
|
|
26821
|
+
status:
|
|
26822
|
+
$ref: "#/components/schemas/ObservabilityServiceStatus"
|
|
26823
|
+
lastSeenAt:
|
|
26824
|
+
type: string
|
|
26825
|
+
format: date-time
|
|
26826
|
+
additionalProperties: false
|
|
26827
|
+
ObservabilityServiceEndpoint:
|
|
26828
|
+
type: object
|
|
26829
|
+
required: [id, name, status]
|
|
26830
|
+
properties:
|
|
26831
|
+
id:
|
|
26832
|
+
type: string
|
|
26833
|
+
minLength: 1
|
|
26834
|
+
maxLength: 512
|
|
26835
|
+
name:
|
|
26836
|
+
type: string
|
|
26837
|
+
minLength: 1
|
|
26838
|
+
maxLength: 512
|
|
26839
|
+
method:
|
|
26840
|
+
type: string
|
|
26841
|
+
maxLength: 32
|
|
26842
|
+
status:
|
|
26843
|
+
$ref: "#/components/schemas/ObservabilityServiceStatus"
|
|
26844
|
+
requestRate:
|
|
26845
|
+
type: number
|
|
26846
|
+
format: double
|
|
26847
|
+
minimum: 0
|
|
26848
|
+
errorRate:
|
|
26849
|
+
type: number
|
|
26850
|
+
format: double
|
|
26851
|
+
minimum: 0
|
|
26852
|
+
latencyP95Ms:
|
|
26853
|
+
type: number
|
|
26854
|
+
format: double
|
|
26855
|
+
minimum: 0
|
|
26856
|
+
additionalProperties: false
|
|
26857
|
+
ObservabilityService:
|
|
26858
|
+
type: object
|
|
26859
|
+
required: [id, name, status, clusterIds, instances, endpoints]
|
|
26860
|
+
properties:
|
|
26861
|
+
id:
|
|
26862
|
+
type: string
|
|
26863
|
+
minLength: 1
|
|
26864
|
+
maxLength: 253
|
|
26865
|
+
name:
|
|
26866
|
+
type: string
|
|
26867
|
+
minLength: 1
|
|
26868
|
+
maxLength: 253
|
|
26869
|
+
displayName:
|
|
26870
|
+
type: string
|
|
26871
|
+
maxLength: 253
|
|
26872
|
+
environment:
|
|
26873
|
+
type: string
|
|
26874
|
+
maxLength: 128
|
|
26875
|
+
namespace:
|
|
26876
|
+
type: string
|
|
26877
|
+
maxLength: 253
|
|
26878
|
+
clusterIds:
|
|
26879
|
+
type: array
|
|
26880
|
+
maxItems: 100
|
|
26881
|
+
uniqueItems: true
|
|
26882
|
+
items:
|
|
26883
|
+
type: string
|
|
26884
|
+
minLength: 1
|
|
26885
|
+
maxLength: 128
|
|
26886
|
+
status:
|
|
26887
|
+
$ref: "#/components/schemas/ObservabilityServiceStatus"
|
|
26888
|
+
requestRate:
|
|
26889
|
+
type: number
|
|
26890
|
+
format: double
|
|
26891
|
+
minimum: 0
|
|
26892
|
+
errorRate:
|
|
26893
|
+
type: number
|
|
26894
|
+
format: double
|
|
26895
|
+
minimum: 0
|
|
26896
|
+
latencyP95Ms:
|
|
26897
|
+
type: number
|
|
26898
|
+
format: double
|
|
26899
|
+
minimum: 0
|
|
26900
|
+
lastSeenAt:
|
|
26901
|
+
type: string
|
|
26902
|
+
format: date-time
|
|
26903
|
+
instances:
|
|
26904
|
+
type: array
|
|
26905
|
+
maxItems: 1000
|
|
26906
|
+
items:
|
|
26907
|
+
$ref: "#/components/schemas/ObservabilityServiceInstance"
|
|
26908
|
+
endpoints:
|
|
26909
|
+
type: array
|
|
26910
|
+
maxItems: 1000
|
|
26911
|
+
items:
|
|
26912
|
+
$ref: "#/components/schemas/ObservabilityServiceEndpoint"
|
|
26913
|
+
additionalProperties: false
|
|
26914
|
+
ObservabilityServiceListEnvelope:
|
|
26915
|
+
type: object
|
|
26916
|
+
required: [items, meta]
|
|
26917
|
+
properties:
|
|
26918
|
+
items:
|
|
26919
|
+
type: array
|
|
26920
|
+
maxItems: 1000
|
|
26921
|
+
items:
|
|
26922
|
+
$ref: "#/components/schemas/ObservabilityService"
|
|
26923
|
+
meta:
|
|
26924
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
26925
|
+
additionalProperties: false
|
|
26926
|
+
ObservabilityServiceEnvelope:
|
|
26927
|
+
type: object
|
|
26928
|
+
required: [data, meta]
|
|
26929
|
+
properties:
|
|
26930
|
+
data:
|
|
26931
|
+
$ref: "#/components/schemas/ObservabilityService"
|
|
26932
|
+
meta:
|
|
26933
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
26934
|
+
additionalProperties: false
|
|
26935
|
+
ObservabilityTopologyNode:
|
|
26936
|
+
type: object
|
|
26937
|
+
required: [serviceId, name, status]
|
|
26938
|
+
properties:
|
|
26939
|
+
serviceId:
|
|
26940
|
+
type: string
|
|
26941
|
+
minLength: 1
|
|
26942
|
+
maxLength: 253
|
|
26943
|
+
name:
|
|
26944
|
+
type: string
|
|
26945
|
+
minLength: 1
|
|
26946
|
+
maxLength: 253
|
|
26947
|
+
status:
|
|
26948
|
+
$ref: "#/components/schemas/ObservabilityServiceStatus"
|
|
26949
|
+
additionalProperties: false
|
|
26950
|
+
ObservabilityTopologyEdge:
|
|
26951
|
+
type: object
|
|
26952
|
+
required: [sourceServiceId, targetServiceId, status]
|
|
26953
|
+
properties:
|
|
26954
|
+
sourceServiceId:
|
|
26955
|
+
type: string
|
|
26956
|
+
minLength: 1
|
|
26957
|
+
maxLength: 253
|
|
26958
|
+
targetServiceId:
|
|
26959
|
+
type: string
|
|
26960
|
+
minLength: 1
|
|
26961
|
+
maxLength: 253
|
|
26962
|
+
status:
|
|
26963
|
+
$ref: "#/components/schemas/ObservabilityServiceStatus"
|
|
26964
|
+
requestRate:
|
|
26965
|
+
type: number
|
|
26966
|
+
format: double
|
|
26967
|
+
minimum: 0
|
|
26968
|
+
errorRate:
|
|
26969
|
+
type: number
|
|
26970
|
+
format: double
|
|
26971
|
+
minimum: 0
|
|
26972
|
+
latencyP95Ms:
|
|
26973
|
+
type: number
|
|
26974
|
+
format: double
|
|
26975
|
+
minimum: 0
|
|
26976
|
+
additionalProperties: false
|
|
26977
|
+
ObservabilityTopology:
|
|
26978
|
+
type: object
|
|
26979
|
+
required: [nodes, edges, beta, meta]
|
|
26980
|
+
properties:
|
|
26981
|
+
nodes:
|
|
26982
|
+
type: array
|
|
26983
|
+
maxItems: 1000
|
|
26984
|
+
items:
|
|
26985
|
+
$ref: "#/components/schemas/ObservabilityTopologyNode"
|
|
26986
|
+
edges:
|
|
26987
|
+
type: array
|
|
26988
|
+
maxItems: 5000
|
|
26989
|
+
items:
|
|
26990
|
+
$ref: "#/components/schemas/ObservabilityTopologyEdge"
|
|
26991
|
+
beta:
|
|
26992
|
+
type: boolean
|
|
26993
|
+
meta:
|
|
26994
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
26995
|
+
additionalProperties: false
|
|
26996
|
+
ObservabilityTopologyEnvelope:
|
|
26997
|
+
type: object
|
|
26998
|
+
required: [data]
|
|
26999
|
+
properties:
|
|
27000
|
+
data:
|
|
27001
|
+
$ref: "#/components/schemas/ObservabilityTopology"
|
|
27002
|
+
additionalProperties: false
|
|
27003
|
+
ObservabilityMetricDefinition:
|
|
27004
|
+
type: object
|
|
27005
|
+
required: [key, label, unit, signal, available]
|
|
27006
|
+
properties:
|
|
27007
|
+
key:
|
|
27008
|
+
type: string
|
|
27009
|
+
minLength: 1
|
|
27010
|
+
maxLength: 128
|
|
27011
|
+
label:
|
|
27012
|
+
type: string
|
|
27013
|
+
minLength: 1
|
|
27014
|
+
maxLength: 200
|
|
27015
|
+
description:
|
|
27016
|
+
type: string
|
|
27017
|
+
maxLength: 1000
|
|
27018
|
+
unit:
|
|
27019
|
+
type: string
|
|
27020
|
+
maxLength: 64
|
|
27021
|
+
semanticConvention:
|
|
27022
|
+
type: string
|
|
27023
|
+
maxLength: 256
|
|
27024
|
+
signal:
|
|
27025
|
+
$ref: "#/components/schemas/ObservabilitySignal"
|
|
27026
|
+
available:
|
|
27027
|
+
type: boolean
|
|
27028
|
+
additionalProperties: false
|
|
27029
|
+
ObservabilityMetricCatalogEnvelope:
|
|
27030
|
+
type: object
|
|
27031
|
+
required: [items]
|
|
27032
|
+
properties:
|
|
27033
|
+
items:
|
|
27034
|
+
type: array
|
|
27035
|
+
maxItems: 500
|
|
27036
|
+
items:
|
|
27037
|
+
$ref: "#/components/schemas/ObservabilityMetricDefinition"
|
|
27038
|
+
additionalProperties: false
|
|
25700
27039
|
ObservabilityDataSourceBackendType:
|
|
25701
27040
|
type: string
|
|
25702
27041
|
enum: [loki, elasticsearch, clickhouse, provider]
|
|
@@ -26341,6 +27680,8 @@ components:
|
|
|
26341
27680
|
$ref: "#/components/schemas/LogWarning"
|
|
26342
27681
|
retentionHint:
|
|
26343
27682
|
type: string
|
|
27683
|
+
meta:
|
|
27684
|
+
$ref: "#/components/schemas/ObservabilityQueryResultMeta"
|
|
26344
27685
|
additionalProperties: false
|
|
26345
27686
|
LogPageEnvelope:
|
|
26346
27687
|
type: object
|