@opensoha/contracts 0.1.20 → 0.1.22
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/auth/catalog_generated.go +2 -2
- package/auth/permission-catalog.json +81 -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/json-schema/network-ingest-event/invalid/proxy-runtime-negative-total.json +19 -0
- package/fixtures/json-schema/network-ingest-event/valid/proxy-runtime-sample.json +20 -0
- package/fixtures/json-schema/proxy-runtime/invalid/v2ray-connection-snapshot.json +10 -0
- package/fixtures/json-schema/proxy-runtime/valid/mihomo-observation.json +16 -0
- package/fixtures/openapi/KubernetesCustomResourceDefinition/invalid/empty-uid.json +1 -0
- package/fixtures/openapi/KubernetesCustomResourceDefinition/valid/deleting-definition.json +1 -0
- package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/valid/range-kind.json +5 -0
- package/fixtures/openapi/KubernetesResourceYaml/valid/range-kind.json +5 -0
- package/fixtures/openapi/NetworkProxyConfigurationInput/invalid/empty-content.json +1 -0
- package/fixtures/openapi/NetworkProxyConfigurationInput/valid/enabled.json +1 -0
- package/fixtures/openapi/NetworkProxyInstanceInput/invalid/unknown-engine.json +1 -0
- package/fixtures/openapi/NetworkProxyInstanceInput/valid/mihomo.json +1 -0
- package/gen/go/sohaapi/client.go +1 -1
- package/gen/go/sohaapi/client_test.go +25 -0
- package/gen/go/sohaapi/types.go +79 -11
- package/gen/go/sohaapi/types_test.go +30 -0
- package/gen/ts/sohaapi/index.ts +264 -156
- package/go.mod +4 -4
- package/go.sum +4 -4
- package/network/README.md +12 -0
- package/network/network-ingest-event.schema.json +21 -3
- package/network/network-runtime-protocol.schema.json +2 -2
- package/network/proxy-runtime.schema.json +113 -0
- package/network/schema.go +7 -0
- package/openapi/soha-api.json +412 -4
- package/openapi/soha-api.yaml +381 -251
- package/openapi/spec_generated.go +3 -3
- package/package.json +2 -1
- package/resource/models.go +2 -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.22
|
|
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
|
|
@@ -34600,6 +34600,94 @@ components:
|
|
|
34600
34600
|
items:
|
|
34601
34601
|
$ref: "#/components/schemas/KubernetesAgentCustomResourceRule"
|
|
34602
34602
|
additionalProperties: false
|
|
34603
|
+
KubernetesCustomResourceAccess:
|
|
34604
|
+
type: object
|
|
34605
|
+
required: [allowedActions]
|
|
34606
|
+
properties:
|
|
34607
|
+
allowedActions:
|
|
34608
|
+
type: array
|
|
34609
|
+
items:
|
|
34610
|
+
type: string
|
|
34611
|
+
enum: [list, view, create, update, delete]
|
|
34612
|
+
x-enum-varnames: [CustomResourceAccessList, CustomResourceAccessView, CustomResourceAccessCreate, CustomResourceAccessUpdate, CustomResourceAccessDelete]
|
|
34613
|
+
additionalProperties: false
|
|
34614
|
+
KubernetesCustomResourceAccessEnvelope:
|
|
34615
|
+
type: object
|
|
34616
|
+
required: [data]
|
|
34617
|
+
properties:
|
|
34618
|
+
data: { $ref: "#/components/schemas/KubernetesCustomResourceAccess" }
|
|
34619
|
+
additionalProperties: false
|
|
34620
|
+
KubernetesClusterRegistrationRequest:
|
|
34621
|
+
type: object
|
|
34622
|
+
properties:
|
|
34623
|
+
id: { type: string }
|
|
34624
|
+
name: { type: string }
|
|
34625
|
+
region: { type: string }
|
|
34626
|
+
environment: { type: string }
|
|
34627
|
+
labels: { type: object, additionalProperties: { type: string } }
|
|
34628
|
+
connectionMode: { $ref: "#/components/schemas/KubernetesConnectionMode" }
|
|
34629
|
+
kubeconfig: { type: string }
|
|
34630
|
+
context: { type: string }
|
|
34631
|
+
agentEndpoint: { type: string }
|
|
34632
|
+
agentToken: { type: string, writeOnly: true }
|
|
34633
|
+
prometheusBaseUrl: { type: string }
|
|
34634
|
+
prometheusBearerToken: { type: string, writeOnly: true }
|
|
34635
|
+
prometheusClusterLabel: { type: string }
|
|
34636
|
+
grafanaBaseUrl: { type: string }
|
|
34637
|
+
prometheusTransport: { $ref: "#/components/schemas/KubernetesPrometheusTransport" }
|
|
34638
|
+
agentCustomResourceRules:
|
|
34639
|
+
type: array
|
|
34640
|
+
maxItems: 50
|
|
34641
|
+
items: { $ref: "#/components/schemas/KubernetesAgentCustomResourceRule" }
|
|
34642
|
+
additionalProperties: false
|
|
34643
|
+
KubernetesAgentCustomResourceRule:
|
|
34644
|
+
type: object
|
|
34645
|
+
required: [apiGroup, resources, verbs]
|
|
34646
|
+
properties:
|
|
34647
|
+
apiGroup: { type: string, pattern: '^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', maxLength: 253 }
|
|
34648
|
+
resources:
|
|
34649
|
+
type: array
|
|
34650
|
+
minItems: 1
|
|
34651
|
+
maxItems: 50
|
|
34652
|
+
uniqueItems: true
|
|
34653
|
+
items: { type: string, pattern: '^[a-z]([a-z0-9-]*[a-z0-9])?$', maxLength: 63 }
|
|
34654
|
+
verbs:
|
|
34655
|
+
type: array
|
|
34656
|
+
minItems: 1
|
|
34657
|
+
uniqueItems: true
|
|
34658
|
+
items:
|
|
34659
|
+
type: string
|
|
34660
|
+
enum: [get, list, watch, create, update, patch, delete]
|
|
34661
|
+
x-enum-varnames: [KubernetesAgentCustomResourceRuleVerbsGet, KubernetesAgentCustomResourceRuleVerbsList, KubernetesAgentCustomResourceRuleVerbsWatch, KubernetesAgentCustomResourceRuleVerbsCreate, KubernetesAgentCustomResourceRuleVerbsUpdate, KubernetesAgentCustomResourceRuleVerbsPatch, KubernetesAgentCustomResourceRuleVerbsDelete]
|
|
34662
|
+
namespaces:
|
|
34663
|
+
description: Explicit namespaces; omitted or empty grants cluster-wide access to the named resources only.
|
|
34664
|
+
type: array
|
|
34665
|
+
maxItems: 50
|
|
34666
|
+
uniqueItems: true
|
|
34667
|
+
items: { type: string, pattern: '^[a-z0-9]([a-z0-9-]*[a-z0-9])?$', maxLength: 63 }
|
|
34668
|
+
additionalProperties: false
|
|
34669
|
+
KubernetesPrometheusTransport:
|
|
34670
|
+
type: string
|
|
34671
|
+
enum: [direct, agent]
|
|
34672
|
+
default: direct
|
|
34673
|
+
AgentPrometheusQueryRequest:
|
|
34674
|
+
type: object
|
|
34675
|
+
required: [endpoint, query, kind]
|
|
34676
|
+
properties:
|
|
34677
|
+
endpoint: { type: string, maxLength: 2048 }
|
|
34678
|
+
query: { type: string, minLength: 1, maxLength: 16384 }
|
|
34679
|
+
kind: { type: string, enum: [instant, range] }
|
|
34680
|
+
start: { type: integer, format: int64, minimum: 1 }
|
|
34681
|
+
end: { type: integer, format: int64, minimum: 1 }
|
|
34682
|
+
step: { type: integer, minimum: 1 }
|
|
34683
|
+
if:
|
|
34684
|
+
properties:
|
|
34685
|
+
kind: { const: range }
|
|
34686
|
+
required: [kind]
|
|
34687
|
+
then:
|
|
34688
|
+
required: [start, end, step]
|
|
34689
|
+
description: Range queries require start, end and step. The runtime also enforces end greater than start, a maximum 24-hour range and at most 11000 intervals.
|
|
34690
|
+
additionalProperties: false
|
|
34603
34691
|
KubernetesPrometheusDetail:
|
|
34604
34692
|
type: object
|
|
34605
34693
|
required: [hasBearerToken]
|
|
@@ -35879,6 +35967,128 @@ components:
|
|
|
35879
35967
|
items:
|
|
35880
35968
|
$ref: "#/components/schemas/KubernetesConfigMap"
|
|
35881
35969
|
additionalProperties: false
|
|
35970
|
+
KubernetesNamespaceInput:
|
|
35971
|
+
type: object
|
|
35972
|
+
properties:
|
|
35973
|
+
name: &a2
|
|
35974
|
+
type: string
|
|
35975
|
+
labels: &a1
|
|
35976
|
+
$ref: "#/components/schemas/KubernetesStringMap"
|
|
35977
|
+
annotations: *a1
|
|
35978
|
+
additionalProperties: false
|
|
35979
|
+
KubernetesNamespaceCreateInput:
|
|
35980
|
+
type: object
|
|
35981
|
+
required: [name]
|
|
35982
|
+
properties:
|
|
35983
|
+
name:
|
|
35984
|
+
type: string
|
|
35985
|
+
minLength: 1
|
|
35986
|
+
pattern: "\\S"
|
|
35987
|
+
labels: *a1
|
|
35988
|
+
annotations: *a1
|
|
35989
|
+
additionalProperties: false
|
|
35990
|
+
KubernetesNamespaceEnvelope:
|
|
35991
|
+
type: object
|
|
35992
|
+
required:
|
|
35993
|
+
- data
|
|
35994
|
+
properties:
|
|
35995
|
+
data:
|
|
35996
|
+
$ref: "#/components/schemas/KubernetesNamespace"
|
|
35997
|
+
additionalProperties: false
|
|
35998
|
+
KubernetesNodeUpdateInput:
|
|
35999
|
+
type: object
|
|
36000
|
+
properties:
|
|
36001
|
+
labels: *a1
|
|
36002
|
+
taints:
|
|
36003
|
+
type: array
|
|
36004
|
+
items:
|
|
36005
|
+
$ref: "#/components/schemas/KubernetesNodeTaint"
|
|
36006
|
+
additionalProperties: false
|
|
36007
|
+
KubernetesNodeSchedulabilityInput:
|
|
36008
|
+
type: object
|
|
36009
|
+
required:
|
|
36010
|
+
- unschedulable
|
|
36011
|
+
properties:
|
|
36012
|
+
unschedulable:
|
|
36013
|
+
type: boolean
|
|
36014
|
+
additionalProperties: false
|
|
36015
|
+
KubernetesNodeDrainInput:
|
|
36016
|
+
type: object
|
|
36017
|
+
properties:
|
|
36018
|
+
force:
|
|
36019
|
+
type: boolean
|
|
36020
|
+
deleteEmptyDirData:
|
|
36021
|
+
type: boolean
|
|
36022
|
+
timeoutSeconds:
|
|
36023
|
+
type: integer
|
|
36024
|
+
minimum: 30
|
|
36025
|
+
maximum: 1800
|
|
36026
|
+
default: 300
|
|
36027
|
+
additionalProperties: false
|
|
36028
|
+
KubernetesResourceYamlInput:
|
|
36029
|
+
type: object
|
|
36030
|
+
required: [content]
|
|
36031
|
+
properties:
|
|
36032
|
+
content: {type: string, minLength: 1}
|
|
36033
|
+
additionalProperties: false
|
|
36034
|
+
KubernetesConfigMapDataInput:
|
|
36035
|
+
type: object
|
|
36036
|
+
properties:
|
|
36037
|
+
data: *a1
|
|
36038
|
+
binaryData: *a1
|
|
36039
|
+
additionalProperties: false
|
|
36040
|
+
KubernetesSecretDataInput:
|
|
36041
|
+
description: Data values are plain text. The response detail returns Kubernetes Base64-encoded values.
|
|
36042
|
+
type: object
|
|
36043
|
+
properties:
|
|
36044
|
+
data: *a1
|
|
36045
|
+
additionalProperties: false
|
|
36046
|
+
KubernetesCronJobSuspendInput:
|
|
36047
|
+
type: object
|
|
36048
|
+
required:
|
|
36049
|
+
- suspend
|
|
36050
|
+
properties:
|
|
36051
|
+
suspend:
|
|
36052
|
+
type: boolean
|
|
36053
|
+
additionalProperties: false
|
|
36054
|
+
KubernetesSecretDetail:
|
|
36055
|
+
type: object
|
|
36056
|
+
required:
|
|
36057
|
+
- name
|
|
36058
|
+
- namespace
|
|
36059
|
+
- immutable
|
|
36060
|
+
- ageSeconds
|
|
36061
|
+
- type
|
|
36062
|
+
properties:
|
|
36063
|
+
name:
|
|
36064
|
+
type: string
|
|
36065
|
+
namespace:
|
|
36066
|
+
type: string
|
|
36067
|
+
labels:
|
|
36068
|
+
$ref: "#/components/schemas/KubernetesStringMap"
|
|
36069
|
+
annotations:
|
|
36070
|
+
$ref: "#/components/schemas/KubernetesStringMap"
|
|
36071
|
+
data:
|
|
36072
|
+
$ref: "#/components/schemas/KubernetesStringMap"
|
|
36073
|
+
description: Secret data values encoded with standard Base64. Requires secret-data.view.
|
|
36074
|
+
immutable:
|
|
36075
|
+
type: boolean
|
|
36076
|
+
createdAt:
|
|
36077
|
+
type: string
|
|
36078
|
+
ageSeconds:
|
|
36079
|
+
type: integer
|
|
36080
|
+
format: int64
|
|
36081
|
+
minimum: 0
|
|
36082
|
+
type: *a2
|
|
36083
|
+
additionalProperties: false
|
|
36084
|
+
KubernetesSecretDetailEnvelope:
|
|
36085
|
+
type: object
|
|
36086
|
+
required:
|
|
36087
|
+
- data
|
|
36088
|
+
properties:
|
|
36089
|
+
data:
|
|
36090
|
+
$ref: "#/components/schemas/KubernetesSecretDetail"
|
|
36091
|
+
additionalProperties: false
|
|
35882
36092
|
KubernetesConfigMapDetail:
|
|
35883
36093
|
type: object
|
|
35884
36094
|
required: [name, namespace, immutable, ageSeconds]
|
|
@@ -37599,6 +37809,8 @@ components:
|
|
|
37599
37809
|
type: object
|
|
37600
37810
|
required: [name, group, scope, kind, plural, ageSeconds]
|
|
37601
37811
|
properties:
|
|
37812
|
+
uid: { type: string, minLength: 1, maxLength: 128 }
|
|
37813
|
+
deletingAt: { type: string, format: date-time }
|
|
37602
37814
|
name: { type: string }
|
|
37603
37815
|
group: { type: string }
|
|
37604
37816
|
scope: { type: string }
|
|
@@ -38210,6 +38422,47 @@ components:
|
|
|
38210
38422
|
data:
|
|
38211
38423
|
$ref: "#/components/schemas/PlatformOperationSummary"
|
|
38212
38424
|
additionalProperties: false
|
|
38425
|
+
ClusterAgentUpgradeInput:
|
|
38426
|
+
type: object
|
|
38427
|
+
additionalProperties: false
|
|
38428
|
+
required: [version]
|
|
38429
|
+
properties:
|
|
38430
|
+
version:
|
|
38431
|
+
type: string
|
|
38432
|
+
maxLength: 64
|
|
38433
|
+
pattern: '^v?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$'
|
|
38434
|
+
description: Explicit stable official Agent version, such as v0.1.7. Registry and container identity cannot be overridden.
|
|
38435
|
+
ClusterAgentUpgradeStatus:
|
|
38436
|
+
type: object
|
|
38437
|
+
additionalProperties: false
|
|
38438
|
+
required: [version, image, recommendedVersion, rolloutStatus, message, canUpgrade]
|
|
38439
|
+
properties:
|
|
38440
|
+
version: {type: string, description: Version reported by the currently connected Agent process.}
|
|
38441
|
+
image: {type: string, description: Desired image of the standard Agent Deployment.}
|
|
38442
|
+
recommendedVersion: {type: string, description: Agent version bundled with this Core release.}
|
|
38443
|
+
rolloutStatus: {type: string}
|
|
38444
|
+
message: {type: string}
|
|
38445
|
+
canUpgrade: {type: boolean}
|
|
38446
|
+
upgradeDisabledReason: {type: string}
|
|
38447
|
+
ClusterAgentUpgradeStatusEnvelope:
|
|
38448
|
+
type: object
|
|
38449
|
+
required: [data]
|
|
38450
|
+
properties:
|
|
38451
|
+
data:
|
|
38452
|
+
$ref: "#/components/schemas/ClusterAgentUpgradeStatus"
|
|
38453
|
+
ClusterAgentUpgradeResult:
|
|
38454
|
+
type: object
|
|
38455
|
+
additionalProperties: false
|
|
38456
|
+
required: [previousImage, targetImage]
|
|
38457
|
+
properties:
|
|
38458
|
+
previousImage: {type: string}
|
|
38459
|
+
targetImage: {type: string}
|
|
38460
|
+
ClusterAgentUpgradeResultEnvelope:
|
|
38461
|
+
type: object
|
|
38462
|
+
required: [data]
|
|
38463
|
+
properties:
|
|
38464
|
+
data:
|
|
38465
|
+
$ref: "#/components/schemas/ClusterAgentUpgradeResult"
|
|
38213
38466
|
AgentInstallation:
|
|
38214
38467
|
type: object
|
|
38215
38468
|
required: [clusterId, manifestUrl, command, expiresAt]
|
|
@@ -46373,16 +46626,141 @@ components:
|
|
|
46373
46626
|
maxItems: 200
|
|
46374
46627
|
items: { $ref: "#/components/schemas/NetworkSiteProfileBinding" }
|
|
46375
46628
|
additionalProperties: false
|
|
46629
|
+
NetworkProxyEngine:
|
|
46630
|
+
type: string
|
|
46631
|
+
enum: [mihomo, sing-box, v2ray]
|
|
46632
|
+
x-enum-varnames: [NetworkProxyEngineMihomo, NetworkProxyEngineSingBox, NetworkProxyEngineV2Ray]
|
|
46633
|
+
NetworkProxyInstanceInput:
|
|
46634
|
+
type: object
|
|
46635
|
+
required: [id, name, engine]
|
|
46636
|
+
properties:
|
|
46637
|
+
id: { type: string, minLength: 1, maxLength: 128, pattern: '^[A-Za-z0-9][A-Za-z0-9._:-]*$' }
|
|
46638
|
+
name: { type: string, minLength: 1, maxLength: 128 }
|
|
46639
|
+
engine: { $ref: "#/components/schemas/NetworkProxyEngine" }
|
|
46640
|
+
host: { type: string, maxLength: 128 }
|
|
46641
|
+
additionalProperties: false
|
|
46642
|
+
NetworkProxyInstanceStatus:
|
|
46643
|
+
type: string
|
|
46644
|
+
enum: [unregistered, online, degraded, offline, disabled]
|
|
46645
|
+
x-enum-varnames: [NetworkProxyInstanceStatusUnregistered, NetworkProxyInstanceStatusOnline, NetworkProxyInstanceStatusDegraded, NetworkProxyInstanceStatusOffline, NetworkProxyInstanceStatusDisabled]
|
|
46646
|
+
NetworkProxyCapability:
|
|
46647
|
+
type: string
|
|
46648
|
+
enum: [traffic, connections, close_connection]
|
|
46649
|
+
x-enum-varnames: [NetworkProxyCapabilityTraffic, NetworkProxyCapabilityConnections, NetworkProxyCapabilityCloseConnection]
|
|
46650
|
+
NetworkProxyInstance:
|
|
46651
|
+
type: object
|
|
46652
|
+
required: [id, name, engine, enabled, status, capabilities, desiredRevision, observedRevision, createdAt, updatedAt]
|
|
46653
|
+
properties:
|
|
46654
|
+
id: { type: string, minLength: 1, maxLength: 128 }
|
|
46655
|
+
name: { type: string, minLength: 1, maxLength: 128 }
|
|
46656
|
+
engine: { $ref: "#/components/schemas/NetworkProxyEngine" }
|
|
46657
|
+
enabled: { type: boolean }
|
|
46658
|
+
host: { type: string, maxLength: 128 }
|
|
46659
|
+
engineVersion: { type: string, maxLength: 64 }
|
|
46660
|
+
status: { $ref: "#/components/schemas/NetworkProxyInstanceStatus" }
|
|
46661
|
+
capabilities:
|
|
46662
|
+
type: array
|
|
46663
|
+
maxItems: 3
|
|
46664
|
+
uniqueItems: true
|
|
46665
|
+
items: { $ref: "#/components/schemas/NetworkProxyCapability" }
|
|
46666
|
+
desiredRevision: { type: integer, format: int64, minimum: 0 }
|
|
46667
|
+
observedRevision: { type: integer, format: int64, minimum: 0 }
|
|
46668
|
+
lastSeenAt: { type: string, format: date-time }
|
|
46669
|
+
lastSampleAt: { type: string, format: date-time }
|
|
46670
|
+
reasonCode: { type: string, maxLength: 128 }
|
|
46671
|
+
createdAt: { type: string, format: date-time }
|
|
46672
|
+
updatedAt: { type: string, format: date-time }
|
|
46673
|
+
additionalProperties: false
|
|
46674
|
+
NetworkProxyInstanceEnvelope:
|
|
46675
|
+
type: object
|
|
46676
|
+
required: [data]
|
|
46677
|
+
properties:
|
|
46678
|
+
data: { $ref: "#/components/schemas/NetworkProxyInstance" }
|
|
46679
|
+
additionalProperties: false
|
|
46680
|
+
NetworkProxyInstanceListEnvelope:
|
|
46681
|
+
type: object
|
|
46682
|
+
required: [items]
|
|
46683
|
+
properties:
|
|
46684
|
+
items:
|
|
46685
|
+
type: array
|
|
46686
|
+
maxItems: 200
|
|
46687
|
+
items: { $ref: "#/components/schemas/NetworkProxyInstance" }
|
|
46688
|
+
additionalProperties: false
|
|
46689
|
+
NetworkProxyConfigurationInput:
|
|
46690
|
+
type: object
|
|
46691
|
+
required: [expectedRevision, enabled, content]
|
|
46692
|
+
properties:
|
|
46693
|
+
expectedRevision: { type: integer, format: int64, minimum: 0 }
|
|
46694
|
+
enabled: { type: boolean }
|
|
46695
|
+
content: { type: string, minLength: 1, maxLength: 1048576, format: password, writeOnly: true }
|
|
46696
|
+
additionalProperties: false
|
|
46697
|
+
NetworkProxyTrafficSample:
|
|
46698
|
+
type: object
|
|
46699
|
+
required: [observedAt, uploadTotal, downloadTotal, uploadBytesPerSecond, downloadBytesPerSecond]
|
|
46700
|
+
properties:
|
|
46701
|
+
observedAt: { type: string, format: date-time }
|
|
46702
|
+
uploadTotal: { type: integer, format: int64, minimum: 0 }
|
|
46703
|
+
downloadTotal: { type: integer, format: int64, minimum: 0 }
|
|
46704
|
+
uploadBytesPerSecond: { type: number, minimum: 0 }
|
|
46705
|
+
downloadBytesPerSecond: { type: number, minimum: 0 }
|
|
46706
|
+
activeConnections: { type: integer, minimum: 0 }
|
|
46707
|
+
additionalProperties: false
|
|
46708
|
+
NetworkProxyTrafficEnvelope:
|
|
46709
|
+
type: object
|
|
46710
|
+
required: [instanceId, supported, samples]
|
|
46711
|
+
properties:
|
|
46712
|
+
instanceId: { type: string, minLength: 1, maxLength: 128 }
|
|
46713
|
+
supported: { type: boolean }
|
|
46714
|
+
samples:
|
|
46715
|
+
type: array
|
|
46716
|
+
maxItems: 1440
|
|
46717
|
+
items: { $ref: "#/components/schemas/NetworkProxyTrafficSample" }
|
|
46718
|
+
additionalProperties: false
|
|
46719
|
+
NetworkProxyConnection:
|
|
46720
|
+
type: object
|
|
46721
|
+
required: [id, destination, network, uploadBytes, downloadBytes]
|
|
46722
|
+
properties:
|
|
46723
|
+
id: { type: string, minLength: 1, maxLength: 128 }
|
|
46724
|
+
destination: { type: string, minLength: 1, maxLength: 253 }
|
|
46725
|
+
network:
|
|
46726
|
+
type: string
|
|
46727
|
+
enum: [tcp, udp, other]
|
|
46728
|
+
x-enum-varnames: [NetworkProxyConnectionNetworkTCP, NetworkProxyConnectionNetworkUDP, NetworkProxyConnectionNetworkOther]
|
|
46729
|
+
uploadBytes: { type: integer, format: int64, minimum: 0 }
|
|
46730
|
+
downloadBytes: { type: integer, format: int64, minimum: 0 }
|
|
46731
|
+
startedAt: { type: string, format: date-time }
|
|
46732
|
+
additionalProperties: false
|
|
46733
|
+
NetworkProxyConnectionsEnvelope:
|
|
46734
|
+
type: object
|
|
46735
|
+
required: [instanceId, state, connections]
|
|
46736
|
+
properties:
|
|
46737
|
+
instanceId: { type: string, minLength: 1, maxLength: 128 }
|
|
46738
|
+
state: { type: string, enum: [available, unsupported, unavailable] }
|
|
46739
|
+
observedAt: { type: string, format: date-time }
|
|
46740
|
+
connections:
|
|
46741
|
+
type: array
|
|
46742
|
+
maxItems: 200
|
|
46743
|
+
items: { $ref: "#/components/schemas/NetworkProxyConnection" }
|
|
46744
|
+
additionalProperties: false
|
|
46745
|
+
NetworkProxyCloseCommandEnvelope:
|
|
46746
|
+
type: object
|
|
46747
|
+
required: [commandId, status, expiresAt]
|
|
46748
|
+
properties:
|
|
46749
|
+
commandId: { type: string, minLength: 1, maxLength: 128 }
|
|
46750
|
+
status: { type: string, enum: [pending, closed, not-found, failed, expired] }
|
|
46751
|
+
expiresAt: { type: string, format: date-time }
|
|
46752
|
+
additionalProperties: false
|
|
46376
46753
|
NetworkRuntimeKind:
|
|
46377
46754
|
type: string
|
|
46378
|
-
enum: [endpoint, gateway, nas]
|
|
46379
|
-
x-enum-varnames: [NetworkRuntimeKindEndpoint, NetworkRuntimeKindGateway, NetworkRuntimeKindNAS]
|
|
46755
|
+
enum: [endpoint, gateway, nas, proxy]
|
|
46756
|
+
x-enum-varnames: [NetworkRuntimeKindEndpoint, NetworkRuntimeKindGateway, NetworkRuntimeKindNAS, NetworkRuntimeKindProxy]
|
|
46380
46757
|
NetworkRuntimeEnrollmentStatus:
|
|
46381
46758
|
type: string
|
|
46382
46759
|
enum: [pending, consumed, revoked]
|
|
46383
46760
|
x-enum-varnames: [NetworkRuntimeEnrollmentStatusPending, NetworkRuntimeEnrollmentStatusConsumed, NetworkRuntimeEnrollmentStatusRevoked]
|
|
46384
46761
|
NetworkRuntimeEnrollmentInput:
|
|
46385
46762
|
type: object
|
|
46763
|
+
description: For proxy runtimes, runtimeId identifies an existing proxy instance and deviceId and subjectId must equal runtimeId.
|
|
46386
46764
|
required: [runtimeId, runtimeKind, deviceId, subjectId]
|
|
46387
46765
|
properties:
|
|
46388
46766
|
runtimeId: { type: string, minLength: 1, maxLength: 128 }
|
|
@@ -46930,251 +47308,3 @@ components:
|
|
|
46930
47308
|
properties:
|
|
46931
47309
|
data: { $ref: "#/components/schemas/NetworkPolicyPreviewResult" }
|
|
46932
47310
|
additionalProperties: false
|
|
46933
|
-
KubernetesCustomResourceAccess:
|
|
46934
|
-
type: object
|
|
46935
|
-
required: [allowedActions]
|
|
46936
|
-
properties:
|
|
46937
|
-
allowedActions:
|
|
46938
|
-
type: array
|
|
46939
|
-
items: { type: string, enum: [list, view, create, update, delete] }
|
|
46940
|
-
additionalProperties: false
|
|
46941
|
-
KubernetesCustomResourceAccessEnvelope:
|
|
46942
|
-
type: object
|
|
46943
|
-
required: [data]
|
|
46944
|
-
properties:
|
|
46945
|
-
data: { $ref: "#/components/schemas/KubernetesCustomResourceAccess" }
|
|
46946
|
-
additionalProperties: false
|
|
46947
|
-
KubernetesClusterRegistrationRequest:
|
|
46948
|
-
type: object
|
|
46949
|
-
properties:
|
|
46950
|
-
id: { type: string }
|
|
46951
|
-
name: { type: string }
|
|
46952
|
-
region: { type: string }
|
|
46953
|
-
environment: { type: string }
|
|
46954
|
-
labels: { type: object, additionalProperties: { type: string } }
|
|
46955
|
-
connectionMode: { $ref: "#/components/schemas/KubernetesConnectionMode" }
|
|
46956
|
-
kubeconfig: { type: string }
|
|
46957
|
-
context: { type: string }
|
|
46958
|
-
agentEndpoint: { type: string }
|
|
46959
|
-
agentToken: { type: string, writeOnly: true }
|
|
46960
|
-
prometheusBaseUrl: { type: string }
|
|
46961
|
-
prometheusBearerToken: { type: string, writeOnly: true }
|
|
46962
|
-
prometheusClusterLabel: { type: string }
|
|
46963
|
-
grafanaBaseUrl: { type: string }
|
|
46964
|
-
prometheusTransport: { $ref: "#/components/schemas/KubernetesPrometheusTransport" }
|
|
46965
|
-
agentCustomResourceRules:
|
|
46966
|
-
type: array
|
|
46967
|
-
maxItems: 50
|
|
46968
|
-
items: { $ref: "#/components/schemas/KubernetesAgentCustomResourceRule" }
|
|
46969
|
-
additionalProperties: false
|
|
46970
|
-
KubernetesAgentCustomResourceRule:
|
|
46971
|
-
type: object
|
|
46972
|
-
required: [apiGroup, resources, verbs]
|
|
46973
|
-
properties:
|
|
46974
|
-
apiGroup: { type: string, pattern: '^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', maxLength: 253 }
|
|
46975
|
-
resources:
|
|
46976
|
-
type: array
|
|
46977
|
-
minItems: 1
|
|
46978
|
-
maxItems: 50
|
|
46979
|
-
uniqueItems: true
|
|
46980
|
-
items: { type: string, pattern: '^[a-z]([a-z0-9-]*[a-z0-9])?$', maxLength: 63 }
|
|
46981
|
-
verbs:
|
|
46982
|
-
type: array
|
|
46983
|
-
minItems: 1
|
|
46984
|
-
uniqueItems: true
|
|
46985
|
-
items:
|
|
46986
|
-
type: string
|
|
46987
|
-
enum: [get, list, watch, create, update, patch, delete]
|
|
46988
|
-
x-enum-varnames: [KubernetesAgentCustomResourceRuleVerbsGet, KubernetesAgentCustomResourceRuleVerbsList, KubernetesAgentCustomResourceRuleVerbsWatch, KubernetesAgentCustomResourceRuleVerbsCreate, KubernetesAgentCustomResourceRuleVerbsUpdate, KubernetesAgentCustomResourceRuleVerbsPatch, KubernetesAgentCustomResourceRuleVerbsDelete]
|
|
46989
|
-
namespaces:
|
|
46990
|
-
description: Explicit namespaces; omitted or empty grants cluster-wide access to the named resources only.
|
|
46991
|
-
type: array
|
|
46992
|
-
maxItems: 50
|
|
46993
|
-
uniqueItems: true
|
|
46994
|
-
items: { type: string, pattern: '^[a-z0-9]([a-z0-9-]*[a-z0-9])?$', maxLength: 63 }
|
|
46995
|
-
additionalProperties: false
|
|
46996
|
-
KubernetesPrometheusTransport:
|
|
46997
|
-
type: string
|
|
46998
|
-
enum: [direct, agent]
|
|
46999
|
-
default: direct
|
|
47000
|
-
AgentPrometheusQueryRequest:
|
|
47001
|
-
type: object
|
|
47002
|
-
required: [endpoint, query, kind]
|
|
47003
|
-
properties:
|
|
47004
|
-
endpoint: { type: string, maxLength: 2048 }
|
|
47005
|
-
query: { type: string, minLength: 1, maxLength: 16384 }
|
|
47006
|
-
kind: { type: string, enum: [instant, range] }
|
|
47007
|
-
start: { type: integer, format: int64, minimum: 1 }
|
|
47008
|
-
end: { type: integer, format: int64, minimum: 1 }
|
|
47009
|
-
step: { type: integer, minimum: 1 }
|
|
47010
|
-
if:
|
|
47011
|
-
properties:
|
|
47012
|
-
kind: { const: range }
|
|
47013
|
-
required: [kind]
|
|
47014
|
-
then:
|
|
47015
|
-
required: [start, end, step]
|
|
47016
|
-
description: Range queries require start, end and step. The runtime also enforces end greater than start, a maximum 24-hour range and at most 11000 intervals.
|
|
47017
|
-
additionalProperties: false
|
|
47018
|
-
KubernetesNamespaceInput:
|
|
47019
|
-
type: object
|
|
47020
|
-
properties:
|
|
47021
|
-
name: &a2
|
|
47022
|
-
type: string
|
|
47023
|
-
labels: &a1
|
|
47024
|
-
$ref: "#/components/schemas/KubernetesStringMap"
|
|
47025
|
-
annotations: *a1
|
|
47026
|
-
additionalProperties: false
|
|
47027
|
-
KubernetesNamespaceCreateInput:
|
|
47028
|
-
type: object
|
|
47029
|
-
required: [name]
|
|
47030
|
-
properties:
|
|
47031
|
-
name:
|
|
47032
|
-
type: string
|
|
47033
|
-
minLength: 1
|
|
47034
|
-
pattern: "\\S"
|
|
47035
|
-
labels: *a1
|
|
47036
|
-
annotations: *a1
|
|
47037
|
-
additionalProperties: false
|
|
47038
|
-
KubernetesNamespaceEnvelope:
|
|
47039
|
-
type: object
|
|
47040
|
-
required:
|
|
47041
|
-
- data
|
|
47042
|
-
properties:
|
|
47043
|
-
data:
|
|
47044
|
-
$ref: "#/components/schemas/KubernetesNamespace"
|
|
47045
|
-
additionalProperties: false
|
|
47046
|
-
KubernetesNodeUpdateInput:
|
|
47047
|
-
type: object
|
|
47048
|
-
properties:
|
|
47049
|
-
labels: *a1
|
|
47050
|
-
taints:
|
|
47051
|
-
type: array
|
|
47052
|
-
items:
|
|
47053
|
-
$ref: "#/components/schemas/KubernetesNodeTaint"
|
|
47054
|
-
additionalProperties: false
|
|
47055
|
-
KubernetesNodeSchedulabilityInput:
|
|
47056
|
-
type: object
|
|
47057
|
-
required:
|
|
47058
|
-
- unschedulable
|
|
47059
|
-
properties:
|
|
47060
|
-
unschedulable:
|
|
47061
|
-
type: boolean
|
|
47062
|
-
additionalProperties: false
|
|
47063
|
-
KubernetesNodeDrainInput:
|
|
47064
|
-
type: object
|
|
47065
|
-
properties:
|
|
47066
|
-
force:
|
|
47067
|
-
type: boolean
|
|
47068
|
-
deleteEmptyDirData:
|
|
47069
|
-
type: boolean
|
|
47070
|
-
timeoutSeconds:
|
|
47071
|
-
type: integer
|
|
47072
|
-
minimum: 30
|
|
47073
|
-
maximum: 1800
|
|
47074
|
-
default: 300
|
|
47075
|
-
additionalProperties: false
|
|
47076
|
-
KubernetesResourceYamlInput:
|
|
47077
|
-
type: object
|
|
47078
|
-
required: [content]
|
|
47079
|
-
properties:
|
|
47080
|
-
content: {type: string, minLength: 1}
|
|
47081
|
-
additionalProperties: false
|
|
47082
|
-
KubernetesConfigMapDataInput:
|
|
47083
|
-
type: object
|
|
47084
|
-
properties:
|
|
47085
|
-
data: *a1
|
|
47086
|
-
binaryData: *a1
|
|
47087
|
-
additionalProperties: false
|
|
47088
|
-
KubernetesSecretDataInput:
|
|
47089
|
-
description: Data values are plain text. The response detail returns Kubernetes Base64-encoded values.
|
|
47090
|
-
type: object
|
|
47091
|
-
properties:
|
|
47092
|
-
data: *a1
|
|
47093
|
-
additionalProperties: false
|
|
47094
|
-
KubernetesCronJobSuspendInput:
|
|
47095
|
-
type: object
|
|
47096
|
-
required:
|
|
47097
|
-
- suspend
|
|
47098
|
-
properties:
|
|
47099
|
-
suspend:
|
|
47100
|
-
type: boolean
|
|
47101
|
-
additionalProperties: false
|
|
47102
|
-
KubernetesSecretDetail:
|
|
47103
|
-
type: object
|
|
47104
|
-
required:
|
|
47105
|
-
- name
|
|
47106
|
-
- namespace
|
|
47107
|
-
- immutable
|
|
47108
|
-
- ageSeconds
|
|
47109
|
-
- type
|
|
47110
|
-
properties:
|
|
47111
|
-
name:
|
|
47112
|
-
type: string
|
|
47113
|
-
namespace:
|
|
47114
|
-
type: string
|
|
47115
|
-
labels:
|
|
47116
|
-
$ref: "#/components/schemas/KubernetesStringMap"
|
|
47117
|
-
annotations:
|
|
47118
|
-
$ref: "#/components/schemas/KubernetesStringMap"
|
|
47119
|
-
data:
|
|
47120
|
-
$ref: "#/components/schemas/KubernetesStringMap"
|
|
47121
|
-
description: Secret data values encoded with standard Base64. Requires secret-data.view.
|
|
47122
|
-
immutable:
|
|
47123
|
-
type: boolean
|
|
47124
|
-
createdAt:
|
|
47125
|
-
type: string
|
|
47126
|
-
ageSeconds:
|
|
47127
|
-
type: integer
|
|
47128
|
-
format: int64
|
|
47129
|
-
minimum: 0
|
|
47130
|
-
type: *a2
|
|
47131
|
-
additionalProperties: false
|
|
47132
|
-
KubernetesSecretDetailEnvelope:
|
|
47133
|
-
type: object
|
|
47134
|
-
required:
|
|
47135
|
-
- data
|
|
47136
|
-
properties:
|
|
47137
|
-
data:
|
|
47138
|
-
$ref: "#/components/schemas/KubernetesSecretDetail"
|
|
47139
|
-
additionalProperties: false
|
|
47140
|
-
ClusterAgentUpgradeInput:
|
|
47141
|
-
type: object
|
|
47142
|
-
additionalProperties: false
|
|
47143
|
-
required: [version]
|
|
47144
|
-
properties:
|
|
47145
|
-
version:
|
|
47146
|
-
type: string
|
|
47147
|
-
maxLength: 64
|
|
47148
|
-
pattern: '^v?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$'
|
|
47149
|
-
description: Explicit stable official Agent version, such as v0.1.7. Registry and container identity cannot be overridden.
|
|
47150
|
-
ClusterAgentUpgradeStatus:
|
|
47151
|
-
type: object
|
|
47152
|
-
additionalProperties: false
|
|
47153
|
-
required: [version, image, recommendedVersion, rolloutStatus, message, canUpgrade]
|
|
47154
|
-
properties:
|
|
47155
|
-
version: {type: string, description: Version reported by the currently connected Agent process.}
|
|
47156
|
-
image: {type: string, description: Desired image of the standard Agent Deployment.}
|
|
47157
|
-
recommendedVersion: {type: string, description: Agent version bundled with this Core release.}
|
|
47158
|
-
rolloutStatus: {type: string}
|
|
47159
|
-
message: {type: string}
|
|
47160
|
-
canUpgrade: {type: boolean}
|
|
47161
|
-
upgradeDisabledReason: {type: string}
|
|
47162
|
-
ClusterAgentUpgradeStatusEnvelope:
|
|
47163
|
-
type: object
|
|
47164
|
-
required: [data]
|
|
47165
|
-
properties:
|
|
47166
|
-
data:
|
|
47167
|
-
$ref: "#/components/schemas/ClusterAgentUpgradeStatus"
|
|
47168
|
-
ClusterAgentUpgradeResult:
|
|
47169
|
-
type: object
|
|
47170
|
-
additionalProperties: false
|
|
47171
|
-
required: [previousImage, targetImage]
|
|
47172
|
-
properties:
|
|
47173
|
-
previousImage: {type: string}
|
|
47174
|
-
targetImage: {type: string}
|
|
47175
|
-
ClusterAgentUpgradeResultEnvelope:
|
|
47176
|
-
type: object
|
|
47177
|
-
required: [data]
|
|
47178
|
-
properties:
|
|
47179
|
-
data:
|
|
47180
|
-
$ref: "#/components/schemas/ClusterAgentUpgradeResult"
|
|
@@ -5,9 +5,9 @@ package openapi
|
|
|
5
5
|
import _ "embed"
|
|
6
6
|
|
|
7
7
|
const (
|
|
8
|
-
Version = "0.1.
|
|
9
|
-
YAMLSHA256 = "
|
|
10
|
-
JSONSHA256 = "
|
|
8
|
+
Version = "0.1.22"
|
|
9
|
+
YAMLSHA256 = "5b0140f7820051bcbce9d2b2c0cd875b087a308f71dfdf1701d9052942c464ff"
|
|
10
|
+
JSONSHA256 = "e120a0bb9308d25baac4778d8535b11ea29bb5558ce2eebe35bde87c1c2f2724"
|
|
11
11
|
)
|
|
12
12
|
|
|
13
13
|
//go:embed soha-api.yaml
|