@opensoha/contracts 0.1.27 → 0.1.29
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/COMPATIBILITY.md +4 -3
- package/README.md +8 -9
- package/compat/consumer-revisions.json +1 -1
- package/compat/json-schema-ecosystem-0.1.0.json +1 -1
- package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/metric-cluster-value-length.json +3 -0
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/metric-cluster-value-type.json +3 -0
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/metric-cluster-alias.json +5 -0
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/metric-cluster-reset.json +3 -0
- package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/invalid/revision-overflow.json +4 -0
- package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/valid/legacy.json +3 -0
- package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/valid/observed-revision.json +4 -0
- package/fixtures/openapi/KubernetesJobDetail/invalid/execution-observation.json +23 -0
- package/fixtures/openapi/KubernetesJobDetail/valid/execution-observation.json +23 -0
- package/fixtures/openapi/KubernetesNode/invalid/labels.json +10 -0
- package/fixtures/openapi/KubernetesNode/valid/labels.json +11 -0
- package/fixtures/openapi/KubernetesPodListEnvelope/invalid/empty-uid.json +13 -0
- package/fixtures/openapi/KubernetesPodListEnvelope/invalid/invalid-container-state.json +20 -0
- package/fixtures/openapi/KubernetesPodListEnvelope/invalid/missing-container-ready.json +19 -0
- package/fixtures/openapi/KubernetesPodListEnvelope/valid/container-statuses.json +67 -0
- package/fixtures/openapi/KubernetesPodListEnvelope/valid/running-pod.json +1 -0
- package/fixtures/openapi/KubernetesPrometheusDetail/invalid/metric-cluster-value-type.json +4 -0
- package/fixtures/openapi/KubernetesPrometheusDetail/valid/metric-cluster-alias.json +5 -0
- package/fixtures/openapi/KubernetesResourceGraphEnvelope/invalid/network-edge-source-payload.json +73 -0
- package/fixtures/openapi/KubernetesResourceGraphEnvelope/valid/network-edge-facts.json +67 -0
- package/fixtures/openapi/KubernetesSecretCertificate/invalid/secret-data.json +1 -0
- package/fixtures/openapi/KubernetesSecretCertificate/invalid/status.json +1 -0
- package/fixtures/openapi/KubernetesSecretCertificate/valid/available.json +1 -0
- package/fixtures/openapi/KubernetesSecretCertificate/valid/missing.json +1 -0
- package/gen/go/sohaapi/client.go +1 -1
- package/gen/go/sohaapi/client_test.go +13 -0
- package/gen/go/sohaapi/kubernetes_workload_optional_test.go +40 -0
- package/gen/go/sohaapi/pod_status_compat_test.go +36 -0
- package/gen/go/sohaapi/types.go +421 -88
- package/gen/ts/sohaapi/index.ts +756 -4
- package/helmrelease/runtime/values_upgrade.go +78 -0
- package/helmrelease/runtime/values_upgrade_test.go +123 -0
- package/helmrelease/values_update.go +31 -0
- package/openapi/soha-api.json +1191 -14
- package/openapi/soha-api.yaml +588 -28
- package/openapi/spec_generated.go +3 -3
- package/package.json +1 -1
- package/resource/agent_profiles.go +9 -15
- package/resource/agent_profiles_test.go +9 -3
- package/resource/custom_graph_page.go +18 -0
- package/resource/models.go +102 -57
- package/resource/network_topology.go +22 -0
- package/resource/network_topology_projection.go +36 -22
- package/resource/network_topology_projection_test.go +4 -0
- package/resource/network_topology_test.go +20 -0
- package/resource/network_topology_validation.go +5 -0
- package/resource/observed_workload.go +18 -0
- package/resource/pod_status_test.go +22 -0
- package/resource/rbac_graph.go +4 -0
- package/resource/rollout_optional_test.go +33 -0
- package/resource/runtime/network_relationship_primitives.go +66 -0
- package/resource/runtime/network_relationship_primitives_test.go +147 -0
- package/resource/runtime/network_topology.go +17 -5
- package/resource/runtime/network_topology_builder.go +405 -0
- package/resource/runtime/network_topology_builder_backends.go +195 -0
- package/resource/runtime/network_topology_builder_gateway_l4_test.go +86 -0
- package/resource/runtime/network_topology_builder_ingress.go +302 -0
- package/resource/runtime/network_topology_builder_legacy.go +66 -0
- package/resource/runtime/network_topology_builder_providers.go +242 -0
- package/resource/runtime/network_topology_builder_test.go +186 -0
- package/resource/runtime/network_topology_declarations.go +329 -0
- package/resource/runtime/resource_edit.go +22 -0
- package/resource/runtime/resource_edit_test.go +32 -0
- package/resource/runtime/resource_graph_collect.go +325 -0
- package/resource/runtime/resource_graph_configuration.go +59 -0
- package/resource/runtime/resource_graph_configuration_collect.go +198 -0
- package/resource/runtime/resource_graph_configuration_test.go +470 -0
- package/resource/runtime/resource_graph_custom_page.go +159 -0
- package/resource/runtime/resource_graph_custom_root.go +132 -0
- package/resource/runtime/resource_graph_custom_root_test.go +197 -0
- package/resource/runtime/resource_graph_enrichment.go +417 -0
- package/resource/runtime/resource_graph_enrichment_hpa_test.go +117 -0
- package/resource/runtime/resource_graph_enrichment_test.go +201 -0
- package/resource/runtime/resource_graph_metadata.go +125 -0
- package/resource/runtime/resource_graph_metadata_test.go +204 -0
- package/resource/runtime/resource_graph_network.go +224 -0
- package/resource/runtime/resource_graph_network_collect.go +174 -0
- package/resource/runtime/resource_graph_network_collect_test.go +147 -0
- package/resource/runtime/resource_graph_network_test.go +342 -0
- package/resource/runtime/resource_graph_rbac.go +278 -0
- package/resource/runtime/resource_graph_rbac_test.go +372 -0
- package/resource/runtime/resource_graph_rules.go +834 -0
- package/resource/runtime/resource_graph_storage.go +144 -0
- package/resource/runtime/resource_graph_storage_collect.go +163 -0
- package/resource/runtime/resource_graph_storage_test.go +397 -0
- package/resource/runtime/resource_graph_test.go +627 -0
- package/resource/runtime/secret_certificate.go +44 -0
- package/resource/runtime/secret_certificate_test.go +87 -0
- package/resource/storage_graph.go +4 -0
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.29
|
|
5
5
|
description: >
|
|
6
6
|
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. Pod session WebSocket targets and their UID-aware ticket requirements are described separately in x-soha-websocket-paths to preserve HTTP client generation.
|
|
7
7
|
servers:
|
|
@@ -11112,7 +11112,7 @@ paths:
|
|
|
11112
11112
|
"503": { $ref: "#/components/responses/Error" }
|
|
11113
11113
|
/clusters/{clusterID}/resources/graph:
|
|
11114
11114
|
get:
|
|
11115
|
-
tags: [
|
|
11115
|
+
tags: [Platform]
|
|
11116
11116
|
operationId: getKubernetesResourceGraph
|
|
11117
11117
|
x-soha-permissions:
|
|
11118
11118
|
mode: resource
|
|
@@ -11128,6 +11128,14 @@ paths:
|
|
|
11128
11128
|
in: query
|
|
11129
11129
|
required: true
|
|
11130
11130
|
schema: { type: string, minLength: 1 }
|
|
11131
|
+
- name: apiVersion
|
|
11132
|
+
in: query
|
|
11133
|
+
description: Exact served group/version for a CRD instance, or apiextensions.k8s.io/v1 for a CRD definition. Required together with resource for explicit CRD graphs.
|
|
11134
|
+
schema: { type: string, minLength: 1 }
|
|
11135
|
+
- name: resource
|
|
11136
|
+
in: query
|
|
11137
|
+
description: Exact CRD plural resource name. For a CRD definition use customresourcedefinitions.
|
|
11138
|
+
schema: { type: string, minLength: 1 }
|
|
11131
11139
|
responses:
|
|
11132
11140
|
"200": { description: Permission-filtered resource relationship graph and recent evidence., content: { application/json: { schema: { $ref: "#/components/schemas/KubernetesResourceGraphEnvelope" } } } }
|
|
11133
11141
|
"400": { $ref: "#/components/responses/Error" }
|
|
@@ -20788,10 +20796,12 @@ paths:
|
|
|
20788
20796
|
keys:
|
|
20789
20797
|
- platform.pods.delete
|
|
20790
20798
|
x-soha-implementation-status: implemented
|
|
20799
|
+
description: Request deletion of a Pod. With expectedUid, a same-name replacement is rejected and an Agent that cannot enforce the precondition returns 501.
|
|
20791
20800
|
parameters:
|
|
20792
20801
|
- $ref: "#/components/parameters/ClusterID"
|
|
20793
20802
|
- $ref: "#/components/parameters/KubernetesPodName"
|
|
20794
20803
|
- $ref: "#/components/parameters/KubernetesNamespaceQuery"
|
|
20804
|
+
- $ref: "#/components/parameters/KubernetesExpectedWorkloadUID"
|
|
20795
20805
|
responses:
|
|
20796
20806
|
"204":
|
|
20797
20807
|
description: Operation completed.
|
|
@@ -20803,6 +20813,8 @@ paths:
|
|
|
20803
20813
|
$ref: "#/components/responses/Error"
|
|
20804
20814
|
"409":
|
|
20805
20815
|
$ref: "#/components/responses/Error"
|
|
20816
|
+
"501":
|
|
20817
|
+
$ref: "#/components/responses/Error"
|
|
20806
20818
|
"503":
|
|
20807
20819
|
$ref: "#/components/responses/Error"
|
|
20808
20820
|
/clusters/{clusterID}/workloads/cronjobs/{cronJobName}/suspend:
|
|
@@ -23069,6 +23081,373 @@ paths:
|
|
|
23069
23081
|
"network_access.content_transfer_events.view"
|
|
23070
23082
|
]
|
|
23071
23083
|
}
|
|
23084
|
+
/clusters/{clusterID}/workloads/deployments/{deploymentName}:
|
|
23085
|
+
delete:
|
|
23086
|
+
tags: [Platform]
|
|
23087
|
+
operationId: deleteKubernetesDeployment
|
|
23088
|
+
x-soha-permissions: { mode: all, keys: [platform.deployment.delete] }
|
|
23089
|
+
x-soha-implementation-status: implemented
|
|
23090
|
+
description: Request deletion of a Deployment. With expectedUid, a same-name replacement is rejected and an Agent that cannot enforce the precondition returns 501.
|
|
23091
|
+
parameters:
|
|
23092
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23093
|
+
- $ref: "#/components/parameters/KubernetesDeploymentName"
|
|
23094
|
+
- $ref: "#/components/parameters/KubernetesNamespaceQuery"
|
|
23095
|
+
- $ref: "#/components/parameters/KubernetesExpectedWorkloadUID"
|
|
23096
|
+
responses:
|
|
23097
|
+
"204": { description: Deletion requested. }
|
|
23098
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23099
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23100
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23101
|
+
"409": { $ref: "#/components/responses/Error" }
|
|
23102
|
+
"501": { $ref: "#/components/responses/Error" }
|
|
23103
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23104
|
+
/clusters/{clusterID}/workloads/statefulsets/{statefulSetName}/rollouts:
|
|
23105
|
+
get:
|
|
23106
|
+
tags: [Platform]
|
|
23107
|
+
operationId: listKubernetesStatefulSetRollouts
|
|
23108
|
+
x-soha-permissions:
|
|
23109
|
+
mode: all
|
|
23110
|
+
keys:
|
|
23111
|
+
- platform.workloads.stateful-sets.view
|
|
23112
|
+
x-soha-implementation-status: implemented
|
|
23113
|
+
description: Retained ControllerRevisions controlled by the selected StatefulSet UID. Replica counts include only Pods controlled by that StatefulSet and referencing the revision, not replicas inferred from the template.
|
|
23114
|
+
parameters:
|
|
23115
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23116
|
+
- $ref: "#/components/parameters/KubernetesStatefulSetName"
|
|
23117
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23118
|
+
responses:
|
|
23119
|
+
"200":
|
|
23120
|
+
description: Retained StatefulSet ControllerRevisions. Revision is the native ControllerRevision sequence, name is the ControllerRevision name, and zero replicas means no currently observed owned Pod references this revision. This is not a permanent change archive.
|
|
23121
|
+
content:
|
|
23122
|
+
application/json:
|
|
23123
|
+
schema:
|
|
23124
|
+
$ref: "#/components/schemas/KubernetesDeploymentRolloutListEnvelope"
|
|
23125
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23126
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23127
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23128
|
+
/clusters/{clusterID}/workloads/statefulsets/{statefulSetName}/rollouts/{revisionName}/yaml:
|
|
23129
|
+
get:
|
|
23130
|
+
tags: [Platform]
|
|
23131
|
+
operationId: getKubernetesStatefulSetRevisionYaml
|
|
23132
|
+
x-soha-permissions:
|
|
23133
|
+
mode: all
|
|
23134
|
+
keys:
|
|
23135
|
+
- platform.workloads.stateful-sets.view
|
|
23136
|
+
x-soha-implementation-status: implemented
|
|
23137
|
+
description: Read a retained ControllerRevision only when its controlling owner UID matches the selected StatefulSet in the same namespace. Does not resolve Secret references. Inline template values may be sensitive, as in workload YAML.
|
|
23138
|
+
parameters:
|
|
23139
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23140
|
+
- $ref: "#/components/parameters/KubernetesStatefulSetName"
|
|
23141
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23142
|
+
- name: revisionName
|
|
23143
|
+
in: path
|
|
23144
|
+
required: true
|
|
23145
|
+
schema: { type: string, minLength: 1 }
|
|
23146
|
+
responses:
|
|
23147
|
+
"200":
|
|
23148
|
+
description: Authorized ControllerRevision YAML; it is a stored template patch, not a live StatefulSet object.
|
|
23149
|
+
content:
|
|
23150
|
+
application/json:
|
|
23151
|
+
schema:
|
|
23152
|
+
$ref: "#/components/schemas/KubernetesResourceYamlEnvelope"
|
|
23153
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23154
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23155
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23156
|
+
/clusters/{clusterID}/workloads/daemonsets/{daemonSetName}/rollouts:
|
|
23157
|
+
get:
|
|
23158
|
+
tags: [Platform]
|
|
23159
|
+
operationId: listKubernetesDaemonSetRollouts
|
|
23160
|
+
x-soha-permissions:
|
|
23161
|
+
mode: all
|
|
23162
|
+
keys:
|
|
23163
|
+
- platform.workloads.daemon-sets.view
|
|
23164
|
+
x-soha-implementation-status: implemented
|
|
23165
|
+
description: Retained ControllerRevisions controlled by the selected DaemonSet UID. Replica counts include only Pods controlled by that DaemonSet and referencing the ControllerRevision hash label, not replicas inferred from template names. podRevisionHash is the observed history label; matchesCurrentTemplate compares the native stored patch with the selected DaemonSet template and does not imply every Pod is updated.
|
|
23166
|
+
parameters:
|
|
23167
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23168
|
+
- $ref: "#/components/parameters/KubernetesDaemonSetName"
|
|
23169
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23170
|
+
responses:
|
|
23171
|
+
"200":
|
|
23172
|
+
description: Retained DaemonSet ControllerRevisions. Revision is the native ControllerRevision sequence, name is the ControllerRevision name, and zero replicas means no currently observed owned Pod references this revision. This is not a permanent change archive.
|
|
23173
|
+
content:
|
|
23174
|
+
application/json:
|
|
23175
|
+
schema:
|
|
23176
|
+
$ref: "#/components/schemas/KubernetesDeploymentRolloutListEnvelope"
|
|
23177
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23178
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23179
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23180
|
+
/clusters/{clusterID}/workloads/daemonsets/{daemonSetName}/rollouts/{revisionName}/yaml:
|
|
23181
|
+
get:
|
|
23182
|
+
tags: [Platform]
|
|
23183
|
+
operationId: getKubernetesDaemonSetRevisionYaml
|
|
23184
|
+
x-soha-permissions:
|
|
23185
|
+
mode: all
|
|
23186
|
+
keys:
|
|
23187
|
+
- platform.workloads.daemon-sets.view
|
|
23188
|
+
x-soha-implementation-status: implemented
|
|
23189
|
+
description: Read a retained ControllerRevision only when its controlling owner UID matches the selected DaemonSet in the same namespace. Does not resolve Secret references. Inline template values may be sensitive, as in workload YAML.
|
|
23190
|
+
parameters:
|
|
23191
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23192
|
+
- $ref: "#/components/parameters/KubernetesDaemonSetName"
|
|
23193
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23194
|
+
- name: revisionName
|
|
23195
|
+
in: path
|
|
23196
|
+
required: true
|
|
23197
|
+
schema: { type: string, minLength: 1 }
|
|
23198
|
+
responses:
|
|
23199
|
+
"200":
|
|
23200
|
+
description: Authorized ControllerRevision YAML; it is a stored template patch, not a live DaemonSet object.
|
|
23201
|
+
content:
|
|
23202
|
+
application/json:
|
|
23203
|
+
schema:
|
|
23204
|
+
$ref: "#/components/schemas/KubernetesResourceYamlEnvelope"
|
|
23205
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23206
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23207
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23208
|
+
/clusters/{clusterID}/workloads/jobs/{jobName}/metrics:
|
|
23209
|
+
get:
|
|
23210
|
+
tags: [Platform]
|
|
23211
|
+
operationId: getKubernetesJobMetrics
|
|
23212
|
+
x-soha-permissions:
|
|
23213
|
+
mode: all
|
|
23214
|
+
keys:
|
|
23215
|
+
- platform.workloads.jobs.view
|
|
23216
|
+
x-soha-implementation-status: implemented
|
|
23217
|
+
parameters:
|
|
23218
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23219
|
+
- $ref: "#/components/parameters/KubernetesJobName"
|
|
23220
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23221
|
+
- $ref: "#/components/parameters/KubernetesMetricsRangeMinutesQuery"
|
|
23222
|
+
- $ref: "#/components/parameters/KubernetesMetricsStepSecondsQuery"
|
|
23223
|
+
responses:
|
|
23224
|
+
"200":
|
|
23225
|
+
description: Prometheus metrics aggregated from Pods owned by the current Job UID in the selected namespace; retained Pods only, with explicit missing or unconfigured results.
|
|
23226
|
+
content:
|
|
23227
|
+
application/json:
|
|
23228
|
+
schema:
|
|
23229
|
+
$ref: "#/components/schemas/KubernetesResourceMetricsEnvelope"
|
|
23230
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23231
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23232
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23233
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23234
|
+
/clusters/{clusterID}/workloads/replicasets/{replicaSetName}/metrics:
|
|
23235
|
+
get:
|
|
23236
|
+
tags: [Platform]
|
|
23237
|
+
operationId: getKubernetesReplicaSetMetrics
|
|
23238
|
+
x-soha-permissions:
|
|
23239
|
+
mode: all
|
|
23240
|
+
keys:
|
|
23241
|
+
- platform.workloads.replica-sets.view
|
|
23242
|
+
x-soha-implementation-status: implemented
|
|
23243
|
+
parameters:
|
|
23244
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23245
|
+
- $ref: "#/components/parameters/KubernetesReplicaSetName"
|
|
23246
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23247
|
+
- $ref: "#/components/parameters/KubernetesMetricsRangeMinutesQuery"
|
|
23248
|
+
- $ref: "#/components/parameters/KubernetesMetricsStepSecondsQuery"
|
|
23249
|
+
responses:
|
|
23250
|
+
"200":
|
|
23251
|
+
description: Prometheus metrics aggregated from Pods owned by the current ReplicaSet UID in the selected namespace; retained Pods only, with explicit missing or unconfigured results.
|
|
23252
|
+
content:
|
|
23253
|
+
application/json:
|
|
23254
|
+
schema:
|
|
23255
|
+
$ref: "#/components/schemas/KubernetesResourceMetricsEnvelope"
|
|
23256
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23257
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23258
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23259
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23260
|
+
/clusters/{clusterID}/workloads/replicationcontrollers/{name}/metrics:
|
|
23261
|
+
get:
|
|
23262
|
+
tags: [Platform]
|
|
23263
|
+
operationId: getKubernetesReplicationControllerMetrics
|
|
23264
|
+
x-soha-permissions:
|
|
23265
|
+
mode: all
|
|
23266
|
+
keys:
|
|
23267
|
+
- platform.workloads.replication-controllers.view
|
|
23268
|
+
x-soha-implementation-status: implemented
|
|
23269
|
+
parameters:
|
|
23270
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23271
|
+
- $ref: "#/components/parameters/KubernetesResourceName"
|
|
23272
|
+
- $ref: "#/components/parameters/KubernetesNamespaceDefaultQuery"
|
|
23273
|
+
- $ref: "#/components/parameters/KubernetesMetricsRangeMinutesQuery"
|
|
23274
|
+
- $ref: "#/components/parameters/KubernetesMetricsStepSecondsQuery"
|
|
23275
|
+
responses:
|
|
23276
|
+
"200":
|
|
23277
|
+
description: Prometheus metrics aggregated from Pods owned by the current ReplicationController UID in the selected namespace; retained Pods only, with explicit missing or unconfigured results.
|
|
23278
|
+
content:
|
|
23279
|
+
application/json:
|
|
23280
|
+
schema:
|
|
23281
|
+
$ref: "#/components/schemas/KubernetesResourceMetricsEnvelope"
|
|
23282
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23283
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23284
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23285
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23286
|
+
/clusters/{clusterID}/helm/releases/{releaseName}/values:
|
|
23287
|
+
put:
|
|
23288
|
+
tags: [Platform]
|
|
23289
|
+
operationId: updateKubernetesHelmReleaseValues
|
|
23290
|
+
x-soha-permissions:
|
|
23291
|
+
mode: all
|
|
23292
|
+
keys:
|
|
23293
|
+
- platform.helm.releases.update
|
|
23294
|
+
x-soha-implementation-status: implemented
|
|
23295
|
+
parameters:
|
|
23296
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23297
|
+
- $ref: "#/components/parameters/KubernetesReleaseName"
|
|
23298
|
+
- name: namespace
|
|
23299
|
+
in: query
|
|
23300
|
+
required: true
|
|
23301
|
+
schema: { type: string, minLength: 1 }
|
|
23302
|
+
requestBody:
|
|
23303
|
+
required: true
|
|
23304
|
+
content: { application/json: { schema: { $ref: "#/components/schemas/KubernetesHelmReleaseValuesUpdateInput" } } }
|
|
23305
|
+
responses:
|
|
23306
|
+
"200": { description: Helm release values after upgrade., content: { application/json: { schema: { $ref: "#/components/schemas/KubernetesHelmReleaseValuesEnvelope" } } } }
|
|
23307
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23308
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23309
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23310
|
+
"409": { $ref: "#/components/responses/Error" }
|
|
23311
|
+
"501": { $ref: "#/components/responses/Error" }
|
|
23312
|
+
"502": { $ref: "#/components/responses/Error" }
|
|
23313
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23314
|
+
/clusters/{clusterID}/configuration/secrets/{name}/certificate:
|
|
23315
|
+
get:
|
|
23316
|
+
tags: [Platform]
|
|
23317
|
+
operationId: getKubernetesSecretCertificate
|
|
23318
|
+
description: Public metadata for the first tls.crt certificate of a TLS Secret. Requires resource-scoped Secret view; never returns certificate PEM, Secret data or private keys. Dates do not establish certificate trust, host matching or controller deployment.
|
|
23319
|
+
x-soha-permissions:
|
|
23320
|
+
mode: all
|
|
23321
|
+
keys: [platform.configuration.secrets.view]
|
|
23322
|
+
x-soha-implementation-status: implemented
|
|
23323
|
+
parameters:
|
|
23324
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23325
|
+
- $ref: "#/components/parameters/KubernetesResourceName"
|
|
23326
|
+
- name: namespace
|
|
23327
|
+
in: query
|
|
23328
|
+
required: true
|
|
23329
|
+
schema: { type: string, minLength: 1 }
|
|
23330
|
+
responses:
|
|
23331
|
+
"200":
|
|
23332
|
+
description: Public certificate metadata, including explicit missing or invalid certificate state.
|
|
23333
|
+
content:
|
|
23334
|
+
application/json:
|
|
23335
|
+
schema:
|
|
23336
|
+
$ref: "#/components/schemas/KubernetesSecretCertificateEnvelope"
|
|
23337
|
+
"400":
|
|
23338
|
+
$ref: "#/components/responses/Error"
|
|
23339
|
+
"403":
|
|
23340
|
+
$ref: "#/components/responses/Error"
|
|
23341
|
+
"404":
|
|
23342
|
+
$ref: "#/components/responses/Error"
|
|
23343
|
+
"503":
|
|
23344
|
+
$ref: "#/components/responses/Error"
|
|
23345
|
+
/clusters/{clusterID}/network/services/{serviceName}/yaml:
|
|
23346
|
+
put:
|
|
23347
|
+
tags: [Platform]
|
|
23348
|
+
operationId: applyKubernetesServiceYaml
|
|
23349
|
+
x-soha-permissions:
|
|
23350
|
+
mode: all
|
|
23351
|
+
keys:
|
|
23352
|
+
- platform.network.services.update
|
|
23353
|
+
x-soha-implementation-status: implemented
|
|
23354
|
+
parameters:
|
|
23355
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23356
|
+
- $ref: "#/components/parameters/KubernetesServiceName"
|
|
23357
|
+
- name: namespace
|
|
23358
|
+
in: query
|
|
23359
|
+
required: true
|
|
23360
|
+
schema: { type: string, minLength: 1 }
|
|
23361
|
+
requestBody:
|
|
23362
|
+
required: true
|
|
23363
|
+
content:
|
|
23364
|
+
application/json:
|
|
23365
|
+
schema:
|
|
23366
|
+
$ref: "#/components/schemas/KubernetesObservedResourceYamlInput"
|
|
23367
|
+
responses:
|
|
23368
|
+
"200":
|
|
23369
|
+
description: Updated Kubernetes resource YAML.
|
|
23370
|
+
content:
|
|
23371
|
+
application/json:
|
|
23372
|
+
schema:
|
|
23373
|
+
$ref: "#/components/schemas/KubernetesResourceYamlEnvelope"
|
|
23374
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23375
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23376
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23377
|
+
"409": { $ref: "#/components/responses/Error" }
|
|
23378
|
+
"501": { $ref: "#/components/responses/Error" }
|
|
23379
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23380
|
+
/clusters/{clusterID}/network/ingresses/{name}/yaml:
|
|
23381
|
+
put:
|
|
23382
|
+
tags: [Platform]
|
|
23383
|
+
operationId: applyKubernetesIngressYaml
|
|
23384
|
+
x-soha-permissions:
|
|
23385
|
+
mode: all
|
|
23386
|
+
keys:
|
|
23387
|
+
- platform.network.ingresses.update
|
|
23388
|
+
x-soha-implementation-status: implemented
|
|
23389
|
+
parameters:
|
|
23390
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23391
|
+
- $ref: "#/components/parameters/KubernetesResourceName"
|
|
23392
|
+
- name: namespace
|
|
23393
|
+
in: query
|
|
23394
|
+
required: true
|
|
23395
|
+
schema: { type: string, minLength: 1 }
|
|
23396
|
+
requestBody:
|
|
23397
|
+
required: true
|
|
23398
|
+
content:
|
|
23399
|
+
application/json:
|
|
23400
|
+
schema:
|
|
23401
|
+
$ref: "#/components/schemas/KubernetesObservedResourceYamlInput"
|
|
23402
|
+
responses:
|
|
23403
|
+
"200":
|
|
23404
|
+
description: Updated Kubernetes resource YAML.
|
|
23405
|
+
content:
|
|
23406
|
+
application/json:
|
|
23407
|
+
schema:
|
|
23408
|
+
$ref: "#/components/schemas/KubernetesResourceYamlEnvelope"
|
|
23409
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23410
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23411
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23412
|
+
"409": { $ref: "#/components/responses/Error" }
|
|
23413
|
+
"501": { $ref: "#/components/responses/Error" }
|
|
23414
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23415
|
+
/clusters/{clusterID}/configuration/secrets/{name}/yaml:
|
|
23416
|
+
put:
|
|
23417
|
+
tags: [Platform]
|
|
23418
|
+
operationId: applyKubernetesSecretYaml
|
|
23419
|
+
x-soha-permissions:
|
|
23420
|
+
mode: all
|
|
23421
|
+
keys:
|
|
23422
|
+
- platform.configuration.secret-data.view
|
|
23423
|
+
- platform.configuration.secrets.update
|
|
23424
|
+
x-soha-implementation-status: implemented
|
|
23425
|
+
parameters:
|
|
23426
|
+
- $ref: "#/components/parameters/ClusterID"
|
|
23427
|
+
- $ref: "#/components/parameters/KubernetesResourceName"
|
|
23428
|
+
- name: namespace
|
|
23429
|
+
in: query
|
|
23430
|
+
required: true
|
|
23431
|
+
schema: { type: string, minLength: 1 }
|
|
23432
|
+
requestBody:
|
|
23433
|
+
required: true
|
|
23434
|
+
content:
|
|
23435
|
+
application/json:
|
|
23436
|
+
schema:
|
|
23437
|
+
$ref: "#/components/schemas/KubernetesObservedResourceYamlInput"
|
|
23438
|
+
responses:
|
|
23439
|
+
"200":
|
|
23440
|
+
description: Updated Kubernetes resource YAML.
|
|
23441
|
+
content:
|
|
23442
|
+
application/json:
|
|
23443
|
+
schema:
|
|
23444
|
+
$ref: "#/components/schemas/KubernetesResourceYamlEnvelope"
|
|
23445
|
+
"400": { $ref: "#/components/responses/Error" }
|
|
23446
|
+
"403": { $ref: "#/components/responses/Error" }
|
|
23447
|
+
"404": { $ref: "#/components/responses/Error" }
|
|
23448
|
+
"409": { $ref: "#/components/responses/Error" }
|
|
23449
|
+
"501": { $ref: "#/components/responses/Error" }
|
|
23450
|
+
"503": { $ref: "#/components/responses/Error" }
|
|
23072
23451
|
components:
|
|
23073
23452
|
securitySchemes:
|
|
23074
23453
|
networkControlMTLS:
|
|
@@ -23989,6 +24368,12 @@ components:
|
|
|
23989
24368
|
enum: [ default, bypass, read-only, refresh ]
|
|
23990
24369
|
x-enum-varnames: [ CreateAIGatewayOpenAICompatibleProviderResponseParamsXSohaCacheModeDefault, CreateAIGatewayOpenAICompatibleProviderResponseParamsXSohaCacheModeBypass, CreateAIGatewayOpenAICompatibleProviderResponseParamsXSohaCacheModeReadOnly, CreateAIGatewayOpenAICompatibleProviderResponseParamsXSohaCacheModeRefresh ]
|
|
23991
24370
|
description: Optional relay cache behavior hint.
|
|
24371
|
+
KubernetesExpectedWorkloadUID:
|
|
24372
|
+
name: expectedUid
|
|
24373
|
+
in: query
|
|
24374
|
+
required: false
|
|
24375
|
+
description: Kubernetes UID observed in the workload list or detail. When supplied, deletion requires this identity and rejects a same-name replacement.
|
|
24376
|
+
schema: { type: string, minLength: 1, maxLength: 128, pattern: '^[A-Za-z0-9._-]+$' }
|
|
23992
24377
|
headers:
|
|
23993
24378
|
SohaRouteIDHeader:
|
|
23994
24379
|
schema:
|
|
@@ -40237,6 +40622,10 @@ components:
|
|
|
40237
40622
|
prometheusBaseUrl: { type: string }
|
|
40238
40623
|
prometheusBearerToken: { type: string, writeOnly: true }
|
|
40239
40624
|
prometheusClusterLabel: { type: string }
|
|
40625
|
+
prometheusClusterLabelValue:
|
|
40626
|
+
type: string
|
|
40627
|
+
maxLength: 1024
|
|
40628
|
+
description: Exact value of prometheusClusterLabel for this cluster. Omitted updates preserve the saved value; an explicit empty string restores the legacy Soha cluster ID default. A non-empty value requires a valid label name.
|
|
40240
40629
|
grafanaBaseUrl: { type: string }
|
|
40241
40630
|
prometheusTransport: { $ref: "#/components/schemas/KubernetesPrometheusTransport" }
|
|
40242
40631
|
agentActionProfile: { $ref: "#/components/schemas/KubernetesAgentActionProfile" }
|
|
@@ -40295,12 +40684,16 @@ components:
|
|
|
40295
40684
|
additionalProperties: false
|
|
40296
40685
|
KubernetesPrometheusDetail:
|
|
40297
40686
|
type: object
|
|
40298
|
-
required: [
|
|
40687
|
+
required: [hasBearerToken]
|
|
40299
40688
|
properties:
|
|
40300
40689
|
baseUrl:
|
|
40301
40690
|
type: string
|
|
40302
40691
|
clusterLabel:
|
|
40303
40692
|
type: string
|
|
40693
|
+
clusterLabelValue:
|
|
40694
|
+
type: string
|
|
40695
|
+
maxLength: 1024
|
|
40696
|
+
description: Configured metric cluster label value. Omitted or empty uses the Soha cluster ID for legacy compatibility.
|
|
40304
40697
|
grafanaBaseUrl:
|
|
40305
40698
|
type: string
|
|
40306
40699
|
hasBearerToken:
|
|
@@ -40419,7 +40812,7 @@ components:
|
|
|
40419
40812
|
additionalProperties: false
|
|
40420
40813
|
KubernetesNode:
|
|
40421
40814
|
type: object
|
|
40422
|
-
required: [
|
|
40815
|
+
required: [name, status, unschedulable, podCount, ageSeconds]
|
|
40423
40816
|
properties:
|
|
40424
40817
|
name:
|
|
40425
40818
|
type: string
|
|
@@ -40427,6 +40820,11 @@ components:
|
|
|
40427
40820
|
type: string
|
|
40428
40821
|
unschedulable:
|
|
40429
40822
|
type: boolean
|
|
40823
|
+
labels:
|
|
40824
|
+
type: object
|
|
40825
|
+
description: Kubernetes Node labels available to the current reader.
|
|
40826
|
+
additionalProperties:
|
|
40827
|
+
type: string
|
|
40430
40828
|
taints:
|
|
40431
40829
|
type: array
|
|
40432
40830
|
nullable: true
|
|
@@ -40684,12 +41082,20 @@ components:
|
|
|
40684
41082
|
additionalProperties: false
|
|
40685
41083
|
KubernetesPod:
|
|
40686
41084
|
type: object
|
|
40687
|
-
required:
|
|
41085
|
+
required:
|
|
41086
|
+
- name
|
|
41087
|
+
- namespace
|
|
41088
|
+
- phase
|
|
41089
|
+
- readyContainers
|
|
41090
|
+
- restarts
|
|
41091
|
+
- ageSeconds
|
|
40688
41092
|
properties:
|
|
40689
41093
|
uid:
|
|
40690
41094
|
type: string
|
|
40691
41095
|
minLength: 1
|
|
40692
|
-
description: Immutable Pod identity
|
|
41096
|
+
description: Immutable Pod identity for restoring saved live sessions and identity-checked deletion. Older providers may omit it.
|
|
41097
|
+
maxLength: 128
|
|
41098
|
+
pattern: ^[A-Za-z0-9._-]+$
|
|
40693
41099
|
name:
|
|
40694
41100
|
type: string
|
|
40695
41101
|
namespace:
|
|
@@ -40730,6 +41136,14 @@ components:
|
|
|
40730
41136
|
type: array
|
|
40731
41137
|
items:
|
|
40732
41138
|
type: string
|
|
41139
|
+
qosClass:
|
|
41140
|
+
type: string
|
|
41141
|
+
description: Kubernetes status.qosClass, omitted when not reported.
|
|
41142
|
+
containerStatuses:
|
|
41143
|
+
type: array
|
|
41144
|
+
description: Init containers followed by ordinary containers in spec order, including unknown entries before status is reported. Restartable init containers have kind sidecar. Does not include ephemeral containers.
|
|
41145
|
+
items:
|
|
41146
|
+
$ref: "#/components/schemas/KubernetesPodContainerStatus"
|
|
40733
41147
|
additionalProperties: false
|
|
40734
41148
|
KubernetesPodListEnvelope:
|
|
40735
41149
|
type: object
|
|
@@ -40847,12 +41261,17 @@ components:
|
|
|
40847
41261
|
additionalProperties: false
|
|
40848
41262
|
KubernetesPodDetail:
|
|
40849
41263
|
type: object
|
|
40850
|
-
required:
|
|
41264
|
+
required:
|
|
41265
|
+
- name
|
|
41266
|
+
- namespace
|
|
41267
|
+
- phase
|
|
40851
41268
|
properties:
|
|
40852
41269
|
uid:
|
|
40853
41270
|
type: string
|
|
40854
41271
|
minLength: 1
|
|
40855
|
-
description: Immutable Pod identity
|
|
41272
|
+
description: Immutable Pod identity for restoring saved live sessions and identity-checked deletion. Older providers may omit it.
|
|
41273
|
+
maxLength: 128
|
|
41274
|
+
pattern: ^[A-Za-z0-9._-]+$
|
|
40856
41275
|
name:
|
|
40857
41276
|
type: string
|
|
40858
41277
|
namespace:
|
|
@@ -40911,12 +41330,18 @@ components:
|
|
|
40911
41330
|
additionalProperties: false
|
|
40912
41331
|
KubernetesDeployment:
|
|
40913
41332
|
type: object
|
|
40914
|
-
required: [
|
|
41333
|
+
required: [name, namespace, desiredReplicas, readyReplicas, updatedReplicas, available, ageSeconds]
|
|
40915
41334
|
properties:
|
|
40916
41335
|
name:
|
|
40917
41336
|
type: string
|
|
40918
41337
|
namespace:
|
|
40919
41338
|
type: string
|
|
41339
|
+
uid:
|
|
41340
|
+
type: string
|
|
41341
|
+
minLength: 1
|
|
41342
|
+
maxLength: 128
|
|
41343
|
+
pattern: '^[A-Za-z0-9._-]+$'
|
|
41344
|
+
description: Kubernetes object UID for identity-checked deletion. Omitted if unavailable.
|
|
40920
41345
|
labels:
|
|
40921
41346
|
$ref: "#/components/schemas/KubernetesStringMap"
|
|
40922
41347
|
desiredReplicas:
|
|
@@ -40955,12 +41380,18 @@ components:
|
|
|
40955
41380
|
additionalProperties: false
|
|
40956
41381
|
KubernetesDeploymentDetail:
|
|
40957
41382
|
type: object
|
|
40958
|
-
required: [
|
|
41383
|
+
required: [name, namespace, desiredReplicas, readyReplicas, updatedReplicas, availableReplicas, observedGeneration, strategy]
|
|
40959
41384
|
properties:
|
|
40960
41385
|
name:
|
|
40961
41386
|
type: string
|
|
40962
41387
|
namespace:
|
|
40963
41388
|
type: string
|
|
41389
|
+
uid:
|
|
41390
|
+
type: string
|
|
41391
|
+
minLength: 1
|
|
41392
|
+
maxLength: 128
|
|
41393
|
+
pattern: '^[A-Za-z0-9._-]+$'
|
|
41394
|
+
description: Kubernetes object UID for identity-checked deletion. Omitted if unavailable.
|
|
40964
41395
|
desiredReplicas:
|
|
40965
41396
|
type: integer
|
|
40966
41397
|
format: int32
|
|
@@ -41057,12 +41488,15 @@ components:
|
|
|
41057
41488
|
additionalProperties: false
|
|
41058
41489
|
KubernetesResourceUpdatePlanRequest:
|
|
41059
41490
|
type: object
|
|
41060
|
-
required: [
|
|
41491
|
+
required: [kind, name, content]
|
|
41061
41492
|
properties:
|
|
41062
41493
|
namespace: { type: string }
|
|
41063
41494
|
kind: { type: string, minLength: 1 }
|
|
41064
41495
|
name: { type: string, minLength: 1 }
|
|
41065
41496
|
content: { type: string, minLength: 1 }
|
|
41497
|
+
requireObservedIdentity:
|
|
41498
|
+
type: boolean
|
|
41499
|
+
description: Require the YAML to identify the observed Kubernetes object by metadata.uid and metadata.resourceVersion.
|
|
41066
41500
|
additionalProperties: false
|
|
41067
41501
|
KubernetesManagedFieldOwner:
|
|
41068
41502
|
type: object
|
|
@@ -41213,7 +41647,7 @@ components:
|
|
|
41213
41647
|
additionalProperties: false
|
|
41214
41648
|
KubernetesDeploymentRollout:
|
|
41215
41649
|
type: object
|
|
41216
|
-
required: [
|
|
41650
|
+
required: [name, namespace, revision, replicas, readyReplicas]
|
|
41217
41651
|
properties:
|
|
41218
41652
|
name: { type: string }
|
|
41219
41653
|
namespace: { type: string }
|
|
@@ -41224,6 +41658,13 @@ components:
|
|
|
41224
41658
|
replicas: { type: integer, format: int32, minimum: 0 }
|
|
41225
41659
|
readyReplicas: { type: integer, format: int32, minimum: 0 }
|
|
41226
41660
|
createdAt: { type: string }
|
|
41661
|
+
podRevisionHash:
|
|
41662
|
+
type: string
|
|
41663
|
+
description: Observed controller-revision-hash used by owned Pods; omitted when unavailable. Do not infer it from resource names.
|
|
41664
|
+
matchesCurrentTemplate:
|
|
41665
|
+
type: boolean
|
|
41666
|
+
x-go-pointer: true
|
|
41667
|
+
description: When supplied, whether the retained ControllerRevision patch exactly matches the current DaemonSet Pod template. False is a confirmed mismatch; omission means this endpoint did not evaluate it.
|
|
41227
41668
|
additionalProperties: false
|
|
41228
41669
|
KubernetesDeploymentRolloutListEnvelope:
|
|
41229
41670
|
type: object
|
|
@@ -41349,7 +41790,7 @@ components:
|
|
|
41349
41790
|
additionalProperties: false
|
|
41350
41791
|
KubernetesJob:
|
|
41351
41792
|
type: object
|
|
41352
|
-
required: [
|
|
41793
|
+
required: [name, namespace, completions, succeeded, failed, active, ageSeconds]
|
|
41353
41794
|
properties:
|
|
41354
41795
|
name: { type: string }
|
|
41355
41796
|
namespace: { type: string }
|
|
@@ -41359,6 +41800,18 @@ components:
|
|
|
41359
41800
|
active: { type: integer, format: int32, minimum: 0 }
|
|
41360
41801
|
completionMode: { type: string }
|
|
41361
41802
|
ageSeconds: { type: integer, format: int64, minimum: 0 }
|
|
41803
|
+
completionTarget:
|
|
41804
|
+
type: integer
|
|
41805
|
+
x-go-pointer: true
|
|
41806
|
+
format: int32
|
|
41807
|
+
minimum: 0
|
|
41808
|
+
description: Native spec.completions when specified; absence is not a zero completion target.
|
|
41809
|
+
suspend: { type: boolean, x-go-pointer: true }
|
|
41810
|
+
conditions:
|
|
41811
|
+
type: array
|
|
41812
|
+
items: { $ref: "#/components/schemas/KubernetesWorkloadCondition" }
|
|
41813
|
+
startTime: { type: string }
|
|
41814
|
+
completionTime: { type: string }
|
|
41362
41815
|
allowedActions:
|
|
41363
41816
|
type: array
|
|
41364
41817
|
items: { type: string }
|
|
@@ -41373,7 +41826,7 @@ components:
|
|
|
41373
41826
|
additionalProperties: false
|
|
41374
41827
|
KubernetesJobDetail:
|
|
41375
41828
|
type: object
|
|
41376
|
-
required: [
|
|
41829
|
+
required: [name, namespace, completions, parallelism, succeeded, failed, active]
|
|
41377
41830
|
properties:
|
|
41378
41831
|
name: { type: string }
|
|
41379
41832
|
namespace: { type: string }
|
|
@@ -41394,6 +41847,19 @@ components:
|
|
|
41394
41847
|
relatedResources:
|
|
41395
41848
|
type: array
|
|
41396
41849
|
items: { $ref: "#/components/schemas/KubernetesWorkloadRelation" }
|
|
41850
|
+
completionTarget:
|
|
41851
|
+
type: integer
|
|
41852
|
+
x-go-pointer: true
|
|
41853
|
+
format: int32
|
|
41854
|
+
minimum: 0
|
|
41855
|
+
description: Native spec.completions when specified; absence is not a zero completion target.
|
|
41856
|
+
suspend: { type: boolean, x-go-pointer: true }
|
|
41857
|
+
conditions:
|
|
41858
|
+
type: array
|
|
41859
|
+
items: { $ref: "#/components/schemas/KubernetesWorkloadCondition" }
|
|
41860
|
+
backoffLimit: { type: integer, format: int32, minimum: 0, x-go-pointer: true }
|
|
41861
|
+
activeDeadlineSeconds: { type: integer, format: int64, minimum: 0, x-go-pointer: true }
|
|
41862
|
+
ttlSecondsAfterFinished: { type: integer, format: int32, minimum: 0, x-go-pointer: true }
|
|
41397
41863
|
allowedActions:
|
|
41398
41864
|
type: array
|
|
41399
41865
|
items: { type: string }
|
|
@@ -42965,18 +43431,20 @@ components:
|
|
|
42965
43431
|
additionalProperties: false
|
|
42966
43432
|
KubernetesTopologyGraphEdge:
|
|
42967
43433
|
type: object
|
|
42968
|
-
required: [
|
|
43434
|
+
required: [id, source, target, relation, resolutionState]
|
|
42969
43435
|
properties:
|
|
42970
43436
|
id: { type: string, minLength: 1, maxLength: 2048 }
|
|
42971
43437
|
source: { type: string, minLength: 1, maxLength: 2048 }
|
|
42972
43438
|
target: { type: string, minLength: 1, maxLength: 2048 }
|
|
42973
43439
|
relation:
|
|
42974
43440
|
type: string
|
|
42975
|
-
enum: [
|
|
42976
|
-
x-enum-varnames: [
|
|
43441
|
+
enum: [matches, processes, forwards, weights, mirrors, resolves, selects, uses-class, uses-secret, uses-config, parameters, targets, authorizes-reference, policy-peer]
|
|
43442
|
+
x-enum-varnames: [KubernetesTopologyGraphEdgeRelationMatches, KubernetesTopologyGraphEdgeRelationProcesses, KubernetesTopologyGraphEdgeRelationForwards, KubernetesTopologyGraphEdgeRelationWeights, KubernetesTopologyGraphEdgeRelationMirrors, KubernetesTopologyGraphEdgeRelationResolves, KubernetesTopologyGraphEdgeRelationSelects, KubernetesTopologyGraphEdgeRelationUsesClass, KubernetesTopologyGraphEdgeRelationUsesSecret, KubernetesTopologyGraphEdgeRelationUsesConfig, KubernetesTopologyGraphEdgeRelationParameters, KubernetesTopologyGraphEdgeRelationTargets, KubernetesTopologyGraphEdgeRelationAuthorizesReference, KubernetesTopologyGraphEdgeRelationPolicyPeer]
|
|
42977
43443
|
resolutionState: { $ref: "#/components/schemas/KubernetesTopologyResolution" }
|
|
42978
43444
|
protocol: { type: string, maxLength: 16 }
|
|
42979
43445
|
port: { type: string, maxLength: 64 }
|
|
43446
|
+
sectionName: { type: string, maxLength: 253 }
|
|
43447
|
+
fieldPath: { type: string, maxLength: 1024 }
|
|
42980
43448
|
weight: { type: integer, format: int64, minimum: 0 }
|
|
42981
43449
|
totalWeight: { type: integer, format: int64, minimum: 0 }
|
|
42982
43450
|
mirrorPercent: { type: number, minimum: 0, maximum: 100 }
|
|
@@ -42986,15 +43454,16 @@ components:
|
|
|
42986
43454
|
additionalProperties: false
|
|
42987
43455
|
KubernetesTopologyCoverage:
|
|
42988
43456
|
type: object
|
|
42989
|
-
required: [
|
|
43457
|
+
required: [provider, sourceId, state]
|
|
42990
43458
|
properties:
|
|
42991
43459
|
provider: { $ref: "#/components/schemas/KubernetesTopologyProvider" }
|
|
42992
43460
|
sourceId: { type: string, maxLength: 128 }
|
|
42993
43461
|
state:
|
|
42994
43462
|
type: string
|
|
42995
|
-
enum: [
|
|
42996
|
-
x-enum-varnames: [
|
|
43463
|
+
enum: [available, not_installed, unsupported, denied, error, partial]
|
|
43464
|
+
x-enum-varnames: [KubernetesTopologyCoverageStateAvailable, KubernetesTopologyCoverageStateNotInstalled, KubernetesTopologyCoverageStateUnsupported, KubernetesTopologyCoverageStateDenied, KubernetesTopologyCoverageStateError, KubernetesTopologyCoverageStatePartial]
|
|
42997
43465
|
namespace: { type: string, maxLength: 63 }
|
|
43466
|
+
name: { type: string, maxLength: 253 }
|
|
42998
43467
|
supportedKinds:
|
|
42999
43468
|
type: array
|
|
43000
43469
|
maxItems: 32
|
|
@@ -43006,18 +43475,19 @@ components:
|
|
|
43006
43475
|
additionalProperties: false
|
|
43007
43476
|
KubernetesTopologySourceQuery:
|
|
43008
43477
|
type: object
|
|
43009
|
-
required: [
|
|
43478
|
+
required: [sourceId]
|
|
43010
43479
|
properties:
|
|
43011
43480
|
sourceId:
|
|
43012
43481
|
type: string
|
|
43013
|
-
enum: [ kubernetes.services, kubernetes.pods, kubernetes.endpointslices, kubernetes.ingresses, kubernetes.ingressclasses, gateway.gateways, gateway.gatewayclasses, gateway.httproutes, gateway.grpcroutes, gateway.tcproutes, gateway.tlsroutes, gateway.udproutes, gateway.referencegrants, traefik.ingressroutes, traefik.ingressroutetcps, traefik.ingressrouteudps, traefik.traefikservices, traefik.middlewares, traefik.middlewaretcps, apisix.apisixroutes, apisix.apisixupstreams, apisix.apisixtls
|
|
43014
|
-
x-enum-varnames: [ KubernetesTopologySourceKubernetesServices, KubernetesTopologySourceKubernetesPods, KubernetesTopologySourceKubernetesEndpointslices, KubernetesTopologySourceKubernetesIngresses, KubernetesTopologySourceKubernetesIngressclasses, KubernetesTopologySourceGatewayGateways, KubernetesTopologySourceGatewayGatewayclasses, KubernetesTopologySourceGatewayHttproutes, KubernetesTopologySourceGatewayGrpcroutes, KubernetesTopologySourceGatewayTcproutes, KubernetesTopologySourceGatewayTlsroutes, KubernetesTopologySourceGatewayUdproutes, KubernetesTopologySourceGatewayReferencegrants, KubernetesTopologySourceTraefikIngressroutes, KubernetesTopologySourceTraefikIngressroutetcps, KubernetesTopologySourceTraefikIngressrouteudps, KubernetesTopologySourceTraefikTraefikservices, KubernetesTopologySourceTraefikMiddlewares, KubernetesTopologySourceTraefikMiddlewaretcps, KubernetesTopologySourceApisixApisixroutes, KubernetesTopologySourceApisixApisixupstreams, KubernetesTopologySourceApisixApisixtls
|
|
43482
|
+
enum: [kubernetes.networkpolicies, kubernetes.namespaces, kubernetes.configmaps, gateway.backendtlspolicies, kubernetes.services, kubernetes.pods, kubernetes.endpointslices, kubernetes.ingresses, kubernetes.ingressclasses, gateway.gateways, gateway.gatewayclasses, gateway.httproutes, gateway.grpcroutes, gateway.tcproutes, gateway.tlsroutes, gateway.udproutes, gateway.referencegrants, traefik.ingressroutes, traefik.ingressroutetcps, traefik.ingressrouteudps, traefik.traefikservices, traefik.middlewares, traefik.middlewaretcps, apisix.apisixroutes, apisix.apisixupstreams, apisix.apisixtls]
|
|
43483
|
+
x-enum-varnames: [KubernetesTopologySourceKubernetesNetworkpolicies, KubernetesTopologySourceKubernetesNamespaces, KubernetesTopologySourceKubernetesConfigmaps, KubernetesTopologySourceGatewayBackendtlspolicies, KubernetesTopologySourceKubernetesServices, KubernetesTopologySourceKubernetesPods, KubernetesTopologySourceKubernetesEndpointslices, KubernetesTopologySourceKubernetesIngresses, KubernetesTopologySourceKubernetesIngressclasses, KubernetesTopologySourceGatewayGateways, KubernetesTopologySourceGatewayGatewayclasses, KubernetesTopologySourceGatewayHttproutes, KubernetesTopologySourceGatewayGrpcroutes, KubernetesTopologySourceGatewayTcproutes, KubernetesTopologySourceGatewayTlsroutes, KubernetesTopologySourceGatewayUdproutes, KubernetesTopologySourceGatewayReferencegrants, KubernetesTopologySourceTraefikIngressroutes, KubernetesTopologySourceTraefikIngressroutetcps, KubernetesTopologySourceTraefikIngressrouteudps, KubernetesTopologySourceTraefikTraefikservices, KubernetesTopologySourceTraefikMiddlewares, KubernetesTopologySourceTraefikMiddlewaretcps, KubernetesTopologySourceApisixApisixroutes, KubernetesTopologySourceApisixApisixupstreams, KubernetesTopologySourceApisixApisixtls]
|
|
43015
43484
|
namespace: { type: string, maxLength: 63, pattern: '^$|^[a-z0-9]([a-z0-9-]*[a-z0-9])?$' }
|
|
43485
|
+
name: { type: string, maxLength: 253 }
|
|
43016
43486
|
allOf:
|
|
43017
43487
|
- if:
|
|
43018
43488
|
properties:
|
|
43019
|
-
sourceId: { enum: [
|
|
43020
|
-
required: [
|
|
43489
|
+
sourceId: { enum: [kubernetes.ingressclasses, gateway.gatewayclasses, kubernetes.namespaces] }
|
|
43490
|
+
required: [sourceId]
|
|
43021
43491
|
then:
|
|
43022
43492
|
properties:
|
|
43023
43493
|
namespace: { type: string, maxLength: 0 }
|
|
@@ -43056,9 +43526,9 @@ components:
|
|
|
43056
43526
|
additionalProperties: false
|
|
43057
43527
|
KubernetesTopologySnapshot:
|
|
43058
43528
|
type: object
|
|
43059
|
-
required: [
|
|
43529
|
+
required: [version, sources]
|
|
43060
43530
|
properties:
|
|
43061
|
-
version: { type: string, pattern: '^v1$' }
|
|
43531
|
+
version: { type: string, pattern: '^v1$|^network\.topology\.(snapshot|named-root)\.v1$' }
|
|
43062
43532
|
sources:
|
|
43063
43533
|
type: array
|
|
43064
43534
|
maxItems: 64
|
|
@@ -46635,12 +47105,19 @@ components:
|
|
|
46635
47105
|
additionalProperties: false
|
|
46636
47106
|
KubernetesResourceGraphEdge:
|
|
46637
47107
|
type: object
|
|
46638
|
-
required: [
|
|
47108
|
+
required: [id, sourceId, targetId, relation]
|
|
46639
47109
|
properties:
|
|
46640
47110
|
id: { type: string, minLength: 1 }
|
|
46641
47111
|
sourceId: { type: string, minLength: 1 }
|
|
46642
47112
|
targetId: { type: string, minLength: 1 }
|
|
46643
47113
|
relation: { type: string, minLength: 1 }
|
|
47114
|
+
resolutionState: { type: string }
|
|
47115
|
+
protocol: { type: string }
|
|
47116
|
+
port: { type: string }
|
|
47117
|
+
sectionName: { type: string }
|
|
47118
|
+
fieldPath: { type: string }
|
|
47119
|
+
note: { type: string }
|
|
47120
|
+
sourceRef: { $ref: "#/components/schemas/KubernetesResourceRef" }
|
|
46644
47121
|
additionalProperties: false
|
|
46645
47122
|
KubernetesResourceEvidence:
|
|
46646
47123
|
type: object
|
|
@@ -56460,3 +56937,86 @@ components:
|
|
|
56460
56937
|
}
|
|
56461
56938
|
}
|
|
56462
56939
|
}
|
|
56940
|
+
KubernetesPodContainerStatus:
|
|
56941
|
+
type: object
|
|
56942
|
+
required: [name, kind, ready, state]
|
|
56943
|
+
properties:
|
|
56944
|
+
name:
|
|
56945
|
+
type: string
|
|
56946
|
+
kind:
|
|
56947
|
+
type: string
|
|
56948
|
+
enum: [init, sidecar, container]
|
|
56949
|
+
ready:
|
|
56950
|
+
type: boolean
|
|
56951
|
+
state:
|
|
56952
|
+
type: string
|
|
56953
|
+
enum: [running, waiting, terminated, unknown]
|
|
56954
|
+
reason:
|
|
56955
|
+
type: string
|
|
56956
|
+
exitCode:
|
|
56957
|
+
type: integer
|
|
56958
|
+
format: int32
|
|
56959
|
+
x-go-type-skip-optional-pointer: false
|
|
56960
|
+
description: Present only when the current container state is terminated, including a successful zero exit code.
|
|
56961
|
+
additionalProperties: false
|
|
56962
|
+
KubernetesObservedResourceYamlInput:
|
|
56963
|
+
type: object
|
|
56964
|
+
required: [content]
|
|
56965
|
+
properties:
|
|
56966
|
+
content: { type: string, minLength: 1 }
|
|
56967
|
+
requireObservedIdentity:
|
|
56968
|
+
type: boolean
|
|
56969
|
+
description: Require the YAML to include the UID and resource version of the object read before editing. A changed or replaced object returns conflict.
|
|
56970
|
+
additionalProperties: false
|
|
56971
|
+
KubernetesSecretCertificate:
|
|
56972
|
+
type: object
|
|
56973
|
+
required: [name, namespace, status]
|
|
56974
|
+
properties:
|
|
56975
|
+
name: { type: string }
|
|
56976
|
+
namespace: { type: string }
|
|
56977
|
+
status:
|
|
56978
|
+
type: string
|
|
56979
|
+
enum: [available, missing, invalid, unsupported_type]
|
|
56980
|
+
notBefore: { type: string, format: date-time }
|
|
56981
|
+
notAfter: { type: string, format: date-time }
|
|
56982
|
+
selfSigned:
|
|
56983
|
+
type: boolean
|
|
56984
|
+
x-go-pointer: true
|
|
56985
|
+
description: The first certificate is signed by its own key; this is not a trust validation result.
|
|
56986
|
+
additionalProperties: false
|
|
56987
|
+
KubernetesSecretCertificateEnvelope:
|
|
56988
|
+
type: object
|
|
56989
|
+
required: [data]
|
|
56990
|
+
properties:
|
|
56991
|
+
data: { $ref: "#/components/schemas/KubernetesSecretCertificate" }
|
|
56992
|
+
additionalProperties: false
|
|
56993
|
+
KubernetesHelmReleaseValuesUpdateInput:
|
|
56994
|
+
type: object
|
|
56995
|
+
required: [content]
|
|
56996
|
+
properties:
|
|
56997
|
+
content: { type: string, description: Complete Helm values YAML. }
|
|
56998
|
+
expectedRevision:
|
|
56999
|
+
type: integer
|
|
57000
|
+
minimum: 1
|
|
57001
|
+
maximum: 2147483646
|
|
57002
|
+
description: Latest Helm revision observed by the editor. When supplied, a changed revision returns 409 and an Agent without conditional updates returns 501.
|
|
57003
|
+
additionalProperties: false
|
|
57004
|
+
KubernetesHelmReleaseValues:
|
|
57005
|
+
type: object
|
|
57006
|
+
required: [name, namespace, content, editable, diffEnabled]
|
|
57007
|
+
properties:
|
|
57008
|
+
name: { type: string }
|
|
57009
|
+
namespace: { type: string }
|
|
57010
|
+
revision: { type: string }
|
|
57011
|
+
content: { type: string }
|
|
57012
|
+
original: { type: string }
|
|
57013
|
+
editable: { type: boolean }
|
|
57014
|
+
diffEnabled: { type: boolean }
|
|
57015
|
+
allowedActions: { type: array, items: { type: string } }
|
|
57016
|
+
additionalProperties: false
|
|
57017
|
+
KubernetesHelmReleaseValuesEnvelope:
|
|
57018
|
+
type: object
|
|
57019
|
+
required: [data]
|
|
57020
|
+
properties:
|
|
57021
|
+
data: { $ref: "#/components/schemas/KubernetesHelmReleaseValues" }
|
|
57022
|
+
additionalProperties: false
|