@opensoha/contracts 0.1.18 → 0.1.20
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 +33 -6
- package/README.md +1 -0
- package/compat/consumer-revisions.json +5 -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/AgentPrometheusQueryRequest/invalid/basic.json +5 -0
- package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/missing-range-fields.json +5 -0
- package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/zero-start.json +8 -0
- package/fixtures/openapi/AgentPrometheusQueryRequest/valid/basic.json +8 -0
- package/fixtures/openapi/AgentPrometheusQueryRequest/valid/instant.json +5 -0
- package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/image.json +1 -0
- package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/missing.json +1 -0
- package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/mutable-tag.json +1 -0
- package/fixtures/openapi/ClusterAgentUpgradeInput/valid/stable.json +1 -0
- package/fixtures/openapi/ClusterAgentUpgradeInput/valid/unprefixed.json +1 -0
- package/fixtures/openapi/ConnectionCheckResult/invalid/missing-health.json +1 -0
- package/fixtures/openapi/ConnectionCheckResult/invalid/task-id.json +1 -0
- package/fixtures/openapi/ConnectionCheckResult/valid/failure.json +1 -0
- package/fixtures/openapi/ConnectionCheckResult/valid/healthy.json +1 -0
- package/fixtures/openapi/KubernetesAgentCustomResourceRule/invalid/basic.json +9 -0
- package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/basic.json +14 -0
- package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/dns-names.json +1 -0
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/basic.json +4 -0
- package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/basic.json +6 -0
- package/fixtures/openapi/KubernetesConfigMapDataInput/invalid/basic.json +5 -0
- package/fixtures/openapi/KubernetesConfigMapDataInput/valid/basic.json +8 -0
- package/fixtures/openapi/KubernetesCronJobSuspendInput/invalid/basic.json +3 -0
- package/fixtures/openapi/KubernetesCronJobSuspendInput/valid/basic.json +3 -0
- package/fixtures/openapi/KubernetesCustomResourceAccess/invalid/basic.json +5 -0
- package/fixtures/openapi/KubernetesCustomResourceAccess/valid/basic.json +6 -0
- package/fixtures/openapi/KubernetesNamespaceCreateInput/invalid/basic.json +1 -0
- package/fixtures/openapi/KubernetesNamespaceCreateInput/valid/basic.json +1 -0
- package/fixtures/openapi/KubernetesNodeDrainInput/invalid/basic.json +3 -0
- package/fixtures/openapi/KubernetesNodeDrainInput/valid/basic.json +3 -0
- package/fixtures/openapi/KubernetesNodeSchedulabilityInput/invalid/basic.json +1 -0
- package/fixtures/openapi/KubernetesNodeSchedulabilityInput/valid/basic.json +3 -0
- package/fixtures/openapi/KubernetesSecretDataInput/invalid/basic.json +5 -0
- package/fixtures/openapi/KubernetesSecretDataInput/valid/basic.json +5 -0
- package/fixtures/openapi/UpdateBrandingSettingsRequest/invalid/dark-logo-type.json +9 -0
- package/fixtures/openapi/UpdateBrandingSettingsRequest/valid/dark-logos.json +10 -0
- package/gen/go/sohaapi/client.go +11 -3
- package/gen/go/sohaapi/client_test.go +26 -3
- package/gen/go/sohaapi/types.go +121 -23
- package/gen/ts/sohaapi/index.ts +208 -2
- package/openapi/soha-api.json +623 -4
- package/openapi/soha-api.yaml +317 -3
- package/openapi/spec_generated.go +3 -3
- package/package.json +1 -1
- package/resource/agent_access.go +23 -0
package/COMPATIBILITY.md
CHANGED
|
@@ -364,6 +364,31 @@ role migration and consumer conformance prove no active dependency.
|
|
|
364
364
|
|
|
365
365
|
## Consumer Adoption
|
|
366
366
|
|
|
367
|
+
Connection tests and Compute provider health checks return HTTP 200 with
|
|
368
|
+
`ConnectionCheckResultEnvelope` after each fresh probe. Consumers read `healthy`
|
|
369
|
+
and the diagnostic fields directly; no task or task log is created. The Compute
|
|
370
|
+
endpoint still accepts `Idempotency-Key` for request compatibility, but it no
|
|
371
|
+
longer replays stored checks. Operation/audit logs and existing task history are
|
|
372
|
+
preserved. HTTP 202 task envelopes remain documented for older servers. Core,
|
|
373
|
+
Web and CLI must adopt the new HTTP 200 result together. Discovery and asset
|
|
374
|
+
synchronization remain asynchronous. The Go SDK
|
|
375
|
+
`CheckComputeProviderInstanceHealth` method now returns `ConnectionCheckResult`
|
|
376
|
+
instead of `ComputeTaskView`; callers consuming its fields must update with Core
|
|
377
|
+
to preserve the immediate health result and diagnostic details. Upgrade Core
|
|
378
|
+
before these clients. The SDK rejects legacy task responses with a server-upgrade
|
|
379
|
+
error instead of reporting an empty health result; the 202 schema documents older
|
|
380
|
+
server wire behavior and does not promise task polling in the new check method.
|
|
381
|
+
|
|
382
|
+
Docker port mapping creation reserves control-plane metadata synchronously; it
|
|
383
|
+
does not enqueue `port_reserve` or bind a host port. Existing operation kinds and
|
|
384
|
+
historical records remain compatible. Service log readers use the existing
|
|
385
|
+
project runtime logs API. The service-action API accepts start, stop and restart;
|
|
386
|
+
`logs` returns an invalid-argument error directing callers to the direct project
|
|
387
|
+
log query instead of creating a task. Compute resource actions expose only these
|
|
388
|
+
mutations. Historical `connection_test`, `port_reserve`, and `service_action`
|
|
389
|
+
with action `logs` remain readable, but their operation state is not retryable
|
|
390
|
+
and retry requests are rejected without requeueing or appending task logs.
|
|
391
|
+
|
|
367
392
|
Recommended adoption flow:
|
|
368
393
|
|
|
369
394
|
1. Change contracts and fixtures here first.
|
|
@@ -402,9 +427,11 @@ behavior.
|
|
|
402
427
|
|
|
403
428
|
## Contracts-first consumer revisions
|
|
404
429
|
|
|
405
|
-
`compat/consumer-revisions.json` pins a reviewed
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
430
|
+
`compat/consumer-revisions.json` pins a reviewed full commit SHA for every consumer
|
|
431
|
+
in the executable matrix. CI and release use `scripts/select-consumer-revision.mjs`;
|
|
432
|
+
missing or invalid revisions fail instead of falling back to `main`. Update a pin
|
|
433
|
+
only with an explicit compatibility reason and successful matrix evidence.
|
|
434
|
+
|
|
435
|
+
Manual CI may select `consumer_mode=latest` for separate integration evidence.
|
|
436
|
+
This does not rewrite the fixed manifest or replace fixed-combination acceptance.
|
|
437
|
+
Record the actual contracts and consumer commits, not only the selected mode.
|
package/README.md
CHANGED
|
@@ -169,6 +169,7 @@ npm run check:consumers -- --consumer soha --require-all
|
|
|
169
169
|
npm run check:consumers -- --consumer soha-web --require-all
|
|
170
170
|
npm run check:consumers -- --consumer soha-cli --require-all
|
|
171
171
|
npm run check:consumers -- --consumer soha-agent --require-all
|
|
172
|
+
npm run check:consumers -- --consumer soha-skills --require-all
|
|
172
173
|
```
|
|
173
174
|
|
|
174
175
|
Go consumers run in a temporary `go.work` that replaces the contracts module
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"soha": "d675a708806072a2fee42e3c2c00309091a8cfb9"
|
|
2
|
+
"soha": "d675a708806072a2fee42e3c2c00309091a8cfb9",
|
|
3
|
+
"soha-web": "816ec0fb82e6e804f0f66d47d3446a7b5baeabc1",
|
|
4
|
+
"soha-cli": "1c9b760c986a9c1a5148db55b72ab99d23edd7a3",
|
|
5
|
+
"soha-agent": "af1efc0b0cd6bb544153429fa28244dd6cc81ac7",
|
|
6
|
+
"soha-skills": "0345171ee1c9f23ab5d4350767395d0919dfb21c"
|
|
3
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"other.example/agent:latest"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"latest"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"v0.1.7"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.7"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"status":"healthy","checkedAt":"2026-09-22T00:00:00Z"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"healthy":true,"status":"healthy","checkedAt":"2026-09-22T00:00:00Z","id":"task-1"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"healthy":false,"status":"unavailable","message":"Connection refused","reason":"network","checkedAt":"2026-09-22T00:00:00Z"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"healthy":true,"status":"healthy","checkedAt":"2026-09-22T00:00:00Z"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"apiGroup":"apps--demo.example.io","resources":["widget-sets"],"verbs":["get","list"],"namespaces":["apps"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":" "}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"team-a","labels":{"environment":"test"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"appTitle": "Soha",
|
|
3
|
+
"sidebarTitle": "Soha",
|
|
4
|
+
"loginLogoUrl": "/logo.svg",
|
|
5
|
+
"expandedLogoUrl": "/logo.svg",
|
|
6
|
+
"collapsedLogoUrl": "/logo.svg",
|
|
7
|
+
"faviconUrl": "/logo.svg",
|
|
8
|
+
"darkExpandedLogoUrl": "/brand-dark.svg",
|
|
9
|
+
"darkCollapsedLogoUrl": "/mark-dark.svg"
|
|
10
|
+
}
|
package/gen/go/sohaapi/client.go
CHANGED
|
@@ -16,7 +16,7 @@ import (
|
|
|
16
16
|
"time"
|
|
17
17
|
)
|
|
18
18
|
|
|
19
|
-
const defaultUserAgent = "opensoha-contracts/0.1.
|
|
19
|
+
const defaultUserAgent = "opensoha-contracts/0.1.20"
|
|
20
20
|
|
|
21
21
|
type Client struct {
|
|
22
22
|
BaseURL string
|
|
@@ -594,8 +594,16 @@ func (c *Client) GetComputeProviderInstance(ctx context.Context, domain ComputeP
|
|
|
594
594
|
return out.Data, nil
|
|
595
595
|
}
|
|
596
596
|
|
|
597
|
-
func (c *Client) CheckComputeProviderInstanceHealth(ctx context.Context, domain ComputeProviderDomain, providerKey, instanceRef, idempotencyKey string, req ComputeProviderReadRequest) (
|
|
598
|
-
|
|
597
|
+
func (c *Client) CheckComputeProviderInstanceHealth(ctx context.Context, domain ComputeProviderDomain, providerKey, instanceRef, idempotencyKey string, req ComputeProviderReadRequest) (ConnectionCheckResult, error) {
|
|
598
|
+
var out ConnectionCheckResultEnvelope
|
|
599
|
+
path := computeProviderInstancePath(domain, providerKey, instanceRef) + "/health-checks"
|
|
600
|
+
if err := c.doJSONWithHeaders(ctx, http.MethodPost, path, true, req, &out, idempotencyHeader(idempotencyKey)); err != nil {
|
|
601
|
+
return ConnectionCheckResult{}, err
|
|
602
|
+
}
|
|
603
|
+
if out.Data.CheckedAt.IsZero() || strings.TrimSpace(out.Data.Status) == "" {
|
|
604
|
+
return ConnectionCheckResult{}, fmt.Errorf("connection health check returned no synchronous result; upgrade the server before using this client")
|
|
605
|
+
}
|
|
606
|
+
return out.Data, nil
|
|
599
607
|
}
|
|
600
608
|
|
|
601
609
|
func (c *Client) DiscoverComputeProviderInstance(ctx context.Context, domain ComputeProviderDomain, providerKey, instanceRef, idempotencyKey string, req ComputeProviderDiscoverRequest) (ComputeTaskView, error) {
|
|
@@ -414,7 +414,7 @@ func TestComputeInventoryClientSurface(t *testing.T) {
|
|
|
414
414
|
if key := r.Header.Get("Idempotency-Key"); key != "health-key-1" {
|
|
415
415
|
t.Fatalf("health Idempotency-Key = %q", key)
|
|
416
416
|
}
|
|
417
|
-
writeJSON(t, w,
|
|
417
|
+
writeJSON(t, w, map[string]any{"data": map[string]any{"healthy": true, "status": "healthy", "checkedAt": "2026-09-22T00:00:00Z"}})
|
|
418
418
|
case 8:
|
|
419
419
|
assertCommonRequest(t, r, http.MethodPost, "/api/v1/compute/provider-instances/virtualization/pve/connection%2Fone/discoveries")
|
|
420
420
|
if key := r.Header.Get("Idempotency-Key"); key != "discover-key-1" {
|
|
@@ -458,8 +458,8 @@ func TestComputeInventoryClientSurface(t *testing.T) {
|
|
|
458
458
|
if _, err := client.GetComputeProviderInstance(ctx, ComputeProviderDomainVirtualization, "pve", "connection/one"); err != nil {
|
|
459
459
|
t.Fatal(err)
|
|
460
460
|
}
|
|
461
|
-
if
|
|
462
|
-
t.
|
|
461
|
+
if result, err := client.CheckComputeProviderInstanceHealth(ctx, ComputeProviderDomainVirtualization, "pve", "connection/one", "health-key-1", ComputeProviderReadRequest{ExpectedGeneration: 1}); err != nil || !result.Healthy || result.Status != "healthy" || result.CheckedAt.IsZero() {
|
|
462
|
+
t.Fatalf("CheckComputeProviderInstanceHealth = %#v, %v", result, err)
|
|
463
463
|
}
|
|
464
464
|
if _, err := client.DiscoverComputeProviderInstance(ctx, ComputeProviderDomainVirtualization, "pve", "connection/one", "discover-key-1", ComputeProviderDiscoverRequest{ExpectedGeneration: 1}); err != nil {
|
|
465
465
|
t.Fatal(err)
|
|
@@ -475,6 +475,29 @@ func TestComputeInventoryClientSurface(t *testing.T) {
|
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
+
func TestComputeProviderHealthPreservesDiagnostics(t *testing.T) {
|
|
479
|
+
client := newTestClient(t, func(w http.ResponseWriter, r *http.Request) {
|
|
480
|
+
writeJSON(t, w, map[string]any{"data": map[string]any{
|
|
481
|
+
"healthy": false, "status": "degraded", "checkedAt": "2026-09-22T00:00:00Z",
|
|
482
|
+
"httpStatus": 401, "reason": "authentication_failed", "message": "Credentials rejected", "nextAction": "Update credentials",
|
|
483
|
+
}})
|
|
484
|
+
})
|
|
485
|
+
result, err := client.CheckComputeProviderInstanceHealth(context.Background(), ComputeProviderDomainVirtualization, "pve", "connection-1", "", ComputeProviderReadRequest{})
|
|
486
|
+
if err != nil || result.Healthy || result.Status != "degraded" || result.HTTPStatus != 401 || result.Reason != "authentication_failed" || result.Message != "Credentials rejected" || result.NextAction != "Update credentials" || result.CheckedAt.IsZero() {
|
|
487
|
+
t.Fatalf("CheckComputeProviderInstanceHealth = %#v, %v", result, err)
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
func TestComputeProviderHealthRejectsLegacyTask(t *testing.T) {
|
|
492
|
+
client := newTestClient(t, func(w http.ResponseWriter, r *http.Request) {
|
|
493
|
+
w.WriteHeader(http.StatusAccepted)
|
|
494
|
+
writeJSON(t, w, computeTaskEnvelopeFixture("health-task"))
|
|
495
|
+
})
|
|
496
|
+
if _, err := client.CheckComputeProviderInstanceHealth(context.Background(), ComputeProviderDomainVirtualization, "pve", "connection-1", "", ComputeProviderReadRequest{}); err == nil || !strings.Contains(err.Error(), "upgrade the server") {
|
|
497
|
+
t.Fatalf("legacy task response should require a server upgrade, got %v", err)
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
478
501
|
func TestStreamComputeTask(t *testing.T) {
|
|
479
502
|
client := newTestClient(t, func(w http.ResponseWriter, r *http.Request) {
|
|
480
503
|
if r.Method != http.MethodGet || r.URL.EscapedPath() != "/api/v1/compute/tasks/virtualization/task%2Fone/stream" {
|
package/gen/go/sohaapi/types.go
CHANGED
|
@@ -4340,6 +4340,39 @@ func (e KubernetesAccessReviewSubjectKind) Valid() bool {
|
|
|
4340
4340
|
}
|
|
4341
4341
|
}
|
|
4342
4342
|
|
|
4343
|
+
// Defines values for KubernetesAgentCustomResourceRuleVerbs.
|
|
4344
|
+
const (
|
|
4345
|
+
KubernetesAgentCustomResourceRuleVerbsCreate KubernetesAgentCustomResourceRuleVerbs = "create"
|
|
4346
|
+
KubernetesAgentCustomResourceRuleVerbsDelete KubernetesAgentCustomResourceRuleVerbs = "delete"
|
|
4347
|
+
KubernetesAgentCustomResourceRuleVerbsGet KubernetesAgentCustomResourceRuleVerbs = "get"
|
|
4348
|
+
KubernetesAgentCustomResourceRuleVerbsList KubernetesAgentCustomResourceRuleVerbs = "list"
|
|
4349
|
+
KubernetesAgentCustomResourceRuleVerbsPatch KubernetesAgentCustomResourceRuleVerbs = "patch"
|
|
4350
|
+
KubernetesAgentCustomResourceRuleVerbsUpdate KubernetesAgentCustomResourceRuleVerbs = "update"
|
|
4351
|
+
KubernetesAgentCustomResourceRuleVerbsWatch KubernetesAgentCustomResourceRuleVerbs = "watch"
|
|
4352
|
+
)
|
|
4353
|
+
|
|
4354
|
+
// Valid indicates whether the value is a known member of the KubernetesAgentCustomResourceRuleVerbs enum.
|
|
4355
|
+
func (e KubernetesAgentCustomResourceRuleVerbs) Valid() bool {
|
|
4356
|
+
switch e {
|
|
4357
|
+
case KubernetesAgentCustomResourceRuleVerbsCreate:
|
|
4358
|
+
return true
|
|
4359
|
+
case KubernetesAgentCustomResourceRuleVerbsDelete:
|
|
4360
|
+
return true
|
|
4361
|
+
case KubernetesAgentCustomResourceRuleVerbsGet:
|
|
4362
|
+
return true
|
|
4363
|
+
case KubernetesAgentCustomResourceRuleVerbsList:
|
|
4364
|
+
return true
|
|
4365
|
+
case KubernetesAgentCustomResourceRuleVerbsPatch:
|
|
4366
|
+
return true
|
|
4367
|
+
case KubernetesAgentCustomResourceRuleVerbsUpdate:
|
|
4368
|
+
return true
|
|
4369
|
+
case KubernetesAgentCustomResourceRuleVerbsWatch:
|
|
4370
|
+
return true
|
|
4371
|
+
default:
|
|
4372
|
+
return false
|
|
4373
|
+
}
|
|
4374
|
+
}
|
|
4375
|
+
|
|
4343
4376
|
// Defines values for KubernetesConnectionMode.
|
|
4344
4377
|
const (
|
|
4345
4378
|
KubernetesConnectionModeAgent KubernetesConnectionMode = "agent"
|
|
@@ -4421,6 +4454,24 @@ func (e KubernetesImportedTargetWorkloadKind) Valid() bool {
|
|
|
4421
4454
|
}
|
|
4422
4455
|
}
|
|
4423
4456
|
|
|
4457
|
+
// Defines values for KubernetesPrometheusTransport.
|
|
4458
|
+
const (
|
|
4459
|
+
Agent KubernetesPrometheusTransport = "agent"
|
|
4460
|
+
Direct KubernetesPrometheusTransport = "direct"
|
|
4461
|
+
)
|
|
4462
|
+
|
|
4463
|
+
// Valid indicates whether the value is a known member of the KubernetesPrometheusTransport enum.
|
|
4464
|
+
func (e KubernetesPrometheusTransport) Valid() bool {
|
|
4465
|
+
switch e {
|
|
4466
|
+
case Agent:
|
|
4467
|
+
return true
|
|
4468
|
+
case Direct:
|
|
4469
|
+
return true
|
|
4470
|
+
default:
|
|
4471
|
+
return false
|
|
4472
|
+
}
|
|
4473
|
+
}
|
|
4474
|
+
|
|
4424
4475
|
// Defines values for KubernetesRelatedResourceKind.
|
|
4425
4476
|
const (
|
|
4426
4477
|
KubernetesRelatedResourceKindHorizontalPodAutoscaler KubernetesRelatedResourceKind = "HorizontalPodAutoscaler"
|
|
@@ -12775,11 +12826,17 @@ type BrandingAssetUploadEnvelope struct {
|
|
|
12775
12826
|
type BrandingSettings struct {
|
|
12776
12827
|
AppTitle string `json:"appTitle"`
|
|
12777
12828
|
CollapsedLogoURL string `json:"collapsedLogoUrl"`
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12829
|
+
|
|
12830
|
+
// DarkCollapsedLogoURL Optional dark-theme compact logo. Empty or absent uses collapsedLogoUrl.
|
|
12831
|
+
DarkCollapsedLogoURL string `json:"darkCollapsedLogoUrl,omitempty"`
|
|
12832
|
+
|
|
12833
|
+
// DarkExpandedLogoURL Optional dark-theme expanded logo. Empty or absent uses expandedLogoUrl.
|
|
12834
|
+
DarkExpandedLogoURL string `json:"darkExpandedLogoUrl,omitempty"`
|
|
12835
|
+
ExpandedLogoURL string `json:"expandedLogoUrl"`
|
|
12836
|
+
FaviconURL string `json:"faviconUrl"`
|
|
12837
|
+
LoginLogoURL string `json:"loginLogoUrl"`
|
|
12838
|
+
SidebarTitle string `json:"sidebarTitle"`
|
|
12839
|
+
Slogan string `json:"slogan,omitempty"`
|
|
12783
12840
|
}
|
|
12784
12841
|
|
|
12785
12842
|
// BrandingSettingsEnvelope defines model for BrandingSettingsEnvelope.
|
|
@@ -14026,6 +14083,23 @@ type ComputeWarning struct {
|
|
|
14026
14083
|
Message string `json:"message,omitempty"`
|
|
14027
14084
|
}
|
|
14028
14085
|
|
|
14086
|
+
// ConnectionCheckResult Current connection health from a synchronous probe. This result is not a task and has no task identifier or lifecycle actions.
|
|
14087
|
+
type ConnectionCheckResult struct {
|
|
14088
|
+
CheckedAt time.Time `json:"checkedAt"`
|
|
14089
|
+
Healthy bool `json:"healthy"`
|
|
14090
|
+
HTTPStatus int `json:"httpStatus,omitempty"`
|
|
14091
|
+
Message string `json:"message,omitempty"`
|
|
14092
|
+
NextAction string `json:"nextAction,omitempty"`
|
|
14093
|
+
Reason string `json:"reason,omitempty"`
|
|
14094
|
+
Status string `json:"status"`
|
|
14095
|
+
}
|
|
14096
|
+
|
|
14097
|
+
// ConnectionCheckResultEnvelope defines model for ConnectionCheckResultEnvelope.
|
|
14098
|
+
type ConnectionCheckResultEnvelope struct {
|
|
14099
|
+
// Data Current connection health from a synchronous probe. This result is not a task and has no task identifier or lifecycle actions.
|
|
14100
|
+
Data ConnectionCheckResult `json:"data"`
|
|
14101
|
+
}
|
|
14102
|
+
|
|
14029
14103
|
// CreatedPersonalAccessToken defines model for CreatedPersonalAccessToken.
|
|
14030
14104
|
type CreatedPersonalAccessToken struct {
|
|
14031
14105
|
Token PersonalAccessToken `json:"token"`
|
|
@@ -17922,6 +17996,19 @@ type KubernetesAdmissionWebhookRule struct {
|
|
|
17922
17996
|
Scope string `json:"scope,omitempty"`
|
|
17923
17997
|
}
|
|
17924
17998
|
|
|
17999
|
+
// KubernetesAgentCustomResourceRule defines model for KubernetesAgentCustomResourceRule.
|
|
18000
|
+
type KubernetesAgentCustomResourceRule struct {
|
|
18001
|
+
APIGroup string `json:"apiGroup"`
|
|
18002
|
+
|
|
18003
|
+
// Namespaces Explicit namespaces; omitted or empty grants cluster-wide access to the named resources only.
|
|
18004
|
+
Namespaces []string `json:"namespaces,omitempty"`
|
|
18005
|
+
Resources []string `json:"resources"`
|
|
18006
|
+
Verbs []KubernetesAgentCustomResourceRuleVerbs `json:"verbs"`
|
|
18007
|
+
}
|
|
18008
|
+
|
|
18009
|
+
// KubernetesAgentCustomResourceRuleVerbs defines model for KubernetesAgentCustomResourceRule.Verbs.
|
|
18010
|
+
type KubernetesAgentCustomResourceRuleVerbs string
|
|
18011
|
+
|
|
17925
18012
|
// KubernetesBackendTLSPolicy defines model for KubernetesBackendTLSPolicy.
|
|
17926
18013
|
type KubernetesBackendTLSPolicy struct {
|
|
17927
18014
|
AgeSeconds int64 `json:"ageSeconds"`
|
|
@@ -17970,15 +18057,16 @@ type KubernetesCacheResourceDiagnostic struct {
|
|
|
17970
18057
|
|
|
17971
18058
|
// KubernetesClusterConnectionDetail defines model for KubernetesClusterConnectionDetail.
|
|
17972
18059
|
type KubernetesClusterConnectionDetail struct {
|
|
17973
|
-
Context string
|
|
17974
|
-
CredentialType string
|
|
17975
|
-
|
|
17976
|
-
|
|
17977
|
-
|
|
17978
|
-
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
|
|
18060
|
+
Context string `json:"context,omitempty"`
|
|
18061
|
+
CredentialType string `json:"credentialType"`
|
|
18062
|
+
CustomResourceRules []KubernetesAgentCustomResourceRule `json:"customResourceRules,omitempty"`
|
|
18063
|
+
Endpoint string `json:"endpoint,omitempty"`
|
|
18064
|
+
HasInlineKubeconfig bool `json:"hasInlineKubeconfig"`
|
|
18065
|
+
HasToken bool `json:"hasToken"`
|
|
18066
|
+
Mode KubernetesConnectionMode `json:"mode"`
|
|
18067
|
+
SourceRef string `json:"sourceRef,omitempty"`
|
|
18068
|
+
SourceType string `json:"sourceType"`
|
|
18069
|
+
UsesInformerCache bool `json:"usesInformerCache"`
|
|
17982
18070
|
}
|
|
17983
18071
|
|
|
17984
18072
|
// KubernetesClusterDetail defines model for KubernetesClusterDetail.
|
|
@@ -19619,12 +19707,16 @@ type KubernetesPriorityClassListEnvelope struct {
|
|
|
19619
19707
|
|
|
19620
19708
|
// KubernetesPrometheusDetail defines model for KubernetesPrometheusDetail.
|
|
19621
19709
|
type KubernetesPrometheusDetail struct {
|
|
19622
|
-
BaseURL string
|
|
19623
|
-
ClusterLabel string
|
|
19624
|
-
GrafanaBaseURL string
|
|
19625
|
-
HasBearerToken bool
|
|
19710
|
+
BaseURL string `json:"baseUrl,omitempty"`
|
|
19711
|
+
ClusterLabel string `json:"clusterLabel,omitempty"`
|
|
19712
|
+
GrafanaBaseURL string `json:"grafanaBaseUrl,omitempty"`
|
|
19713
|
+
HasBearerToken bool `json:"hasBearerToken"`
|
|
19714
|
+
Transport KubernetesPrometheusTransport `json:"transport,omitempty"`
|
|
19626
19715
|
}
|
|
19627
19716
|
|
|
19717
|
+
// KubernetesPrometheusTransport defines model for KubernetesPrometheusTransport.
|
|
19718
|
+
type KubernetesPrometheusTransport string
|
|
19719
|
+
|
|
19628
19720
|
// KubernetesReferenceGrant defines model for KubernetesReferenceGrant.
|
|
19629
19721
|
type KubernetesReferenceGrant struct {
|
|
19630
19722
|
AgeSeconds int64 `json:"ageSeconds"`
|
|
@@ -26761,11 +26853,17 @@ type UpdateAIWorkbenchModelRequest struct {
|
|
|
26761
26853
|
type UpdateBrandingSettingsRequest struct {
|
|
26762
26854
|
AppTitle string `json:"appTitle"`
|
|
26763
26855
|
CollapsedLogoURL string `json:"collapsedLogoUrl"`
|
|
26764
|
-
|
|
26765
|
-
|
|
26766
|
-
|
|
26767
|
-
|
|
26768
|
-
|
|
26856
|
+
|
|
26857
|
+
// DarkCollapsedLogoURL Optional dark-theme compact logo. Empty or absent clears the override.
|
|
26858
|
+
DarkCollapsedLogoURL string `json:"darkCollapsedLogoUrl,omitempty"`
|
|
26859
|
+
|
|
26860
|
+
// DarkExpandedLogoURL Optional dark-theme expanded logo. Empty or absent clears the override.
|
|
26861
|
+
DarkExpandedLogoURL string `json:"darkExpandedLogoUrl,omitempty"`
|
|
26862
|
+
ExpandedLogoURL string `json:"expandedLogoUrl"`
|
|
26863
|
+
FaviconURL string `json:"faviconUrl"`
|
|
26864
|
+
LoginLogoURL string `json:"loginLogoUrl"`
|
|
26865
|
+
SidebarTitle string `json:"sidebarTitle"`
|
|
26866
|
+
Slogan string `json:"slogan,omitempty"`
|
|
26769
26867
|
}
|
|
26770
26868
|
|
|
26771
26869
|
// UpdateLoginProvidersSettingsRequest defines model for UpdateLoginProvidersSettingsRequest.
|