@opensoha/contracts 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/auth/catalog_generated.go +2 -2
  2. package/auth/permission-catalog.json +81 -1
  3. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  4. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  5. package/fixtures/json-schema/network-ingest-event/invalid/proxy-runtime-negative-total.json +19 -0
  6. package/fixtures/json-schema/network-ingest-event/valid/proxy-runtime-sample.json +20 -0
  7. package/fixtures/json-schema/proxy-runtime/invalid/v2ray-connection-snapshot.json +10 -0
  8. package/fixtures/json-schema/proxy-runtime/valid/mihomo-observation.json +16 -0
  9. package/fixtures/openapi/KubernetesCustomResourceDefinition/invalid/empty-uid.json +1 -0
  10. package/fixtures/openapi/KubernetesCustomResourceDefinition/valid/deleting-definition.json +1 -0
  11. package/fixtures/openapi/KubernetesResourceUpdatePlanRequest/valid/range-kind.json +5 -0
  12. package/fixtures/openapi/KubernetesResourceYaml/valid/range-kind.json +5 -0
  13. package/fixtures/openapi/NetworkProxyConfigurationInput/invalid/empty-content.json +1 -0
  14. package/fixtures/openapi/NetworkProxyConfigurationInput/valid/enabled.json +1 -0
  15. package/fixtures/openapi/NetworkProxyInstanceInput/invalid/unknown-engine.json +1 -0
  16. package/fixtures/openapi/NetworkProxyInstanceInput/valid/mihomo.json +1 -0
  17. package/gen/go/sohaapi/client.go +1 -1
  18. package/gen/go/sohaapi/client_test.go +25 -0
  19. package/gen/go/sohaapi/types.go +40 -11
  20. package/gen/ts/sohaapi/index.ts +264 -156
  21. package/go.mod +4 -4
  22. package/go.sum +4 -4
  23. package/network/README.md +12 -0
  24. package/network/network-ingest-event.schema.json +21 -3
  25. package/network/network-runtime-protocol.schema.json +2 -2
  26. package/network/proxy-runtime.schema.json +113 -0
  27. package/network/schema.go +7 -0
  28. package/openapi/soha-api.json +412 -4
  29. package/openapi/soha-api.yaml +381 -251
  30. package/openapi/spec_generated.go +3 -3
  31. package/package.json +2 -1
  32. package/resource/models.go +2 -0
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: Soha API
4
- version: 0.1.20
4
+ version: 0.1.21
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.20"
9
- YAMLSHA256 = "cbf0b3c1f47da982289c43ccdc76c5eb9e2c8d064aebfe92aa23e4b179ea136b"
10
- JSONSHA256 = "6862030a09d680756adc6bff8cc1e6bf81318704bf957027f22e1b7655bb471e"
8
+ Version = "0.1.21"
9
+ YAMLSHA256 = "4f6a18c89a70f8ce91f27eb8d52eb49a7f5e4db38dc7de27eaa0efceac1c33fe"
10
+ JSONSHA256 = "5e3ba8e83879359042b4df47658cb2df7e67a7bcc941ab2507155a1555c93d25"
11
11
  )
12
12
 
13
13
  //go:embed soha-api.yaml