@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.
Files changed (49) hide show
  1. package/COMPATIBILITY.md +33 -6
  2. package/README.md +1 -0
  3. package/compat/consumer-revisions.json +5 -1
  4. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  5. package/compat/openapi-loose-boundaries-0.1.0.json +1 -1
  6. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/basic.json +5 -0
  7. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/missing-range-fields.json +5 -0
  8. package/fixtures/openapi/AgentPrometheusQueryRequest/invalid/zero-start.json +8 -0
  9. package/fixtures/openapi/AgentPrometheusQueryRequest/valid/basic.json +8 -0
  10. package/fixtures/openapi/AgentPrometheusQueryRequest/valid/instant.json +5 -0
  11. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/image.json +1 -0
  12. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/missing.json +1 -0
  13. package/fixtures/openapi/ClusterAgentUpgradeInput/invalid/mutable-tag.json +1 -0
  14. package/fixtures/openapi/ClusterAgentUpgradeInput/valid/stable.json +1 -0
  15. package/fixtures/openapi/ClusterAgentUpgradeInput/valid/unprefixed.json +1 -0
  16. package/fixtures/openapi/ConnectionCheckResult/invalid/missing-health.json +1 -0
  17. package/fixtures/openapi/ConnectionCheckResult/invalid/task-id.json +1 -0
  18. package/fixtures/openapi/ConnectionCheckResult/valid/failure.json +1 -0
  19. package/fixtures/openapi/ConnectionCheckResult/valid/healthy.json +1 -0
  20. package/fixtures/openapi/KubernetesAgentCustomResourceRule/invalid/basic.json +9 -0
  21. package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/basic.json +14 -0
  22. package/fixtures/openapi/KubernetesAgentCustomResourceRule/valid/dns-names.json +1 -0
  23. package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/basic.json +4 -0
  24. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/basic.json +6 -0
  25. package/fixtures/openapi/KubernetesConfigMapDataInput/invalid/basic.json +5 -0
  26. package/fixtures/openapi/KubernetesConfigMapDataInput/valid/basic.json +8 -0
  27. package/fixtures/openapi/KubernetesCronJobSuspendInput/invalid/basic.json +3 -0
  28. package/fixtures/openapi/KubernetesCronJobSuspendInput/valid/basic.json +3 -0
  29. package/fixtures/openapi/KubernetesCustomResourceAccess/invalid/basic.json +5 -0
  30. package/fixtures/openapi/KubernetesCustomResourceAccess/valid/basic.json +6 -0
  31. package/fixtures/openapi/KubernetesNamespaceCreateInput/invalid/basic.json +1 -0
  32. package/fixtures/openapi/KubernetesNamespaceCreateInput/valid/basic.json +1 -0
  33. package/fixtures/openapi/KubernetesNodeDrainInput/invalid/basic.json +3 -0
  34. package/fixtures/openapi/KubernetesNodeDrainInput/valid/basic.json +3 -0
  35. package/fixtures/openapi/KubernetesNodeSchedulabilityInput/invalid/basic.json +1 -0
  36. package/fixtures/openapi/KubernetesNodeSchedulabilityInput/valid/basic.json +3 -0
  37. package/fixtures/openapi/KubernetesSecretDataInput/invalid/basic.json +5 -0
  38. package/fixtures/openapi/KubernetesSecretDataInput/valid/basic.json +5 -0
  39. package/fixtures/openapi/UpdateBrandingSettingsRequest/invalid/dark-logo-type.json +9 -0
  40. package/fixtures/openapi/UpdateBrandingSettingsRequest/valid/dark-logos.json +10 -0
  41. package/gen/go/sohaapi/client.go +11 -3
  42. package/gen/go/sohaapi/client_test.go +26 -3
  43. package/gen/go/sohaapi/types.go +121 -23
  44. package/gen/ts/sohaapi/index.ts +208 -2
  45. package/openapi/soha-api.json +623 -4
  46. package/openapi/soha-api.yaml +317 -3
  47. package/openapi/spec_generated.go +3 -3
  48. package/package.json +1 -1
  49. package/resource/agent_access.go +23 -0
@@ -1085,6 +1085,7 @@ export interface paths {
1085
1085
  get: operations["getApplication"];
1086
1086
  put: operations["updateApplication"];
1087
1087
  post?: never;
1088
+ /** @description Deletes the application and its owned configuration and history. Does not uninstall cluster workloads. Unfinished delivery tasks or external references prevent deletion. */
1088
1089
  delete: operations["deleteApplication"];
1089
1090
  options?: never;
1090
1091
  head?: never;
@@ -6223,6 +6224,7 @@ export interface paths {
6223
6224
  };
6224
6225
  get?: never;
6225
6226
  put?: never;
6227
+ /** @description Requires docker.services.logs. Reads bounded logs directly from the runtime without submitting an operation. */
6226
6228
  post: operations["queryDockerProjectLogs"];
6227
6229
  delete?: never;
6228
6230
  options?: never;
@@ -6239,6 +6241,7 @@ export interface paths {
6239
6241
  };
6240
6242
  get?: never;
6241
6243
  put?: never;
6244
+ /** @description Requires docker.services.logs. The same permission is rechecked when opening the stream. */
6242
6245
  post: operations["issueDockerProjectLogStreamTicket"];
6243
6246
  delete?: never;
6244
6247
  options?: never;
@@ -7877,6 +7880,7 @@ export interface paths {
7877
7880
  };
7878
7881
  get?: never;
7879
7882
  put?: never;
7883
+ /** @description Enqueue a supported resource mutation. Container service actions are start, stop and restart. Log reads use the direct project log query API; action logs is rejected without creating a task. */
7880
7884
  post: operations["executeComputeResourceAction"];
7881
7885
  delete?: never;
7882
7886
  options?: never;
@@ -7974,6 +7978,7 @@ export interface paths {
7974
7978
  };
7975
7979
  get?: never;
7976
7980
  put?: never;
7981
+ /** @description Retry an asynchronous operation when its returned state permits it. Historical connection_test, port_reserve and service_action logs records remain readable but cannot be requeued; use their direct check, metadata or log query APIs instead. */
7977
7982
  post: operations["retryComputeTask"];
7978
7983
  delete?: never;
7979
7984
  options?: never;
@@ -12925,6 +12930,20 @@ export interface components {
12925
12930
  summary?: string;
12926
12931
  resources?: components["schemas"]["ComputeResourceRef"][];
12927
12932
  };
12933
+ /** @description Current connection health from a synchronous probe. This result is not a task and has no task identifier or lifecycle actions. */
12934
+ ConnectionCheckResult: {
12935
+ healthy: boolean;
12936
+ status: string;
12937
+ message?: string;
12938
+ reason?: string;
12939
+ nextAction?: string;
12940
+ httpStatus?: number;
12941
+ /** Format: date-time */
12942
+ checkedAt: string;
12943
+ };
12944
+ ConnectionCheckResultEnvelope: {
12945
+ data: components["schemas"]["ConnectionCheckResult"];
12946
+ };
12928
12947
  ComputeTaskView: {
12929
12948
  id: string;
12930
12949
  domain: components["schemas"]["ComputeTaskDomain"];
@@ -14173,6 +14192,10 @@ export interface components {
14173
14192
  loginLogoUrl: string;
14174
14193
  expandedLogoUrl: string;
14175
14194
  collapsedLogoUrl: string;
14195
+ /** @description Optional dark-theme expanded logo. Empty or absent uses expandedLogoUrl. */
14196
+ darkExpandedLogoUrl?: string;
14197
+ /** @description Optional dark-theme compact logo. Empty or absent uses collapsedLogoUrl. */
14198
+ darkCollapsedLogoUrl?: string;
14176
14199
  faviconUrl: string;
14177
14200
  };
14178
14201
  BrandingSettingsEnvelope: {
@@ -14185,6 +14208,10 @@ export interface components {
14185
14208
  loginLogoUrl: string;
14186
14209
  expandedLogoUrl: string;
14187
14210
  collapsedLogoUrl: string;
14211
+ /** @description Optional dark-theme expanded logo. Empty or absent clears the override. */
14212
+ darkExpandedLogoUrl?: string;
14213
+ /** @description Optional dark-theme compact logo. Empty or absent clears the override. */
14214
+ darkCollapsedLogoUrl?: string;
14188
14215
  faviconUrl: string;
14189
14216
  };
14190
14217
  BrandingAssetUpload: {
@@ -19540,12 +19567,14 @@ export interface components {
19540
19567
  hasInlineKubeconfig: boolean;
19541
19568
  hasToken: boolean;
19542
19569
  usesInformerCache: boolean;
19570
+ customResourceRules?: components["schemas"]["KubernetesAgentCustomResourceRule"][];
19543
19571
  };
19544
19572
  KubernetesPrometheusDetail: {
19545
19573
  baseUrl?: string;
19546
19574
  clusterLabel?: string;
19547
19575
  grafanaBaseUrl?: string;
19548
19576
  hasBearerToken: boolean;
19577
+ transport?: components["schemas"]["KubernetesPrometheusTransport"];
19549
19578
  };
19550
19579
  KubernetesMonitoringDetail: {
19551
19580
  prometheus: components["schemas"]["KubernetesPrometheusDetail"];
@@ -25848,6 +25877,138 @@ export interface components {
25848
25877
  NetworkPolicyPreviewEnvelope: {
25849
25878
  data: components["schemas"]["NetworkPolicyPreviewResult"];
25850
25879
  };
25880
+ KubernetesCustomResourceAccess: {
25881
+ allowedActions: ("list" | "view" | "create" | "update" | "delete")[];
25882
+ };
25883
+ KubernetesCustomResourceAccessEnvelope: {
25884
+ data: components["schemas"]["KubernetesCustomResourceAccess"];
25885
+ };
25886
+ KubernetesClusterRegistrationRequest: {
25887
+ id?: string;
25888
+ name?: string;
25889
+ region?: string;
25890
+ environment?: string;
25891
+ labels?: {
25892
+ [key: string]: string;
25893
+ };
25894
+ connectionMode?: components["schemas"]["KubernetesConnectionMode"];
25895
+ kubeconfig?: string;
25896
+ context?: string;
25897
+ agentEndpoint?: string;
25898
+ agentToken?: string;
25899
+ prometheusBaseUrl?: string;
25900
+ prometheusBearerToken?: string;
25901
+ prometheusClusterLabel?: string;
25902
+ grafanaBaseUrl?: string;
25903
+ prometheusTransport?: components["schemas"]["KubernetesPrometheusTransport"];
25904
+ agentCustomResourceRules?: components["schemas"]["KubernetesAgentCustomResourceRule"][];
25905
+ };
25906
+ KubernetesAgentCustomResourceRule: {
25907
+ apiGroup: string;
25908
+ resources: string[];
25909
+ verbs: ("get" | "list" | "watch" | "create" | "update" | "patch" | "delete")[];
25910
+ /** @description Explicit namespaces; omitted or empty grants cluster-wide access to the named resources only. */
25911
+ namespaces?: string[];
25912
+ };
25913
+ /**
25914
+ * @default direct
25915
+ * @enum {string}
25916
+ */
25917
+ KubernetesPrometheusTransport: "direct" | "agent";
25918
+ /** @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. */
25919
+ AgentPrometheusQueryRequest: {
25920
+ endpoint: string;
25921
+ query: string;
25922
+ /** @enum {string} */
25923
+ kind: "instant" | "range";
25924
+ /** Format: int64 */
25925
+ start?: number;
25926
+ /** Format: int64 */
25927
+ end?: number;
25928
+ step?: number;
25929
+ };
25930
+ KubernetesNamespaceInput: {
25931
+ name?: string;
25932
+ labels?: components["schemas"]["KubernetesStringMap"];
25933
+ annotations?: components["schemas"]["KubernetesStringMap"];
25934
+ };
25935
+ KubernetesNamespaceCreateInput: {
25936
+ name: string;
25937
+ labels?: components["schemas"]["KubernetesStringMap"];
25938
+ annotations?: components["schemas"]["KubernetesStringMap"];
25939
+ };
25940
+ KubernetesNamespaceEnvelope: {
25941
+ data: components["schemas"]["KubernetesNamespace"];
25942
+ };
25943
+ KubernetesNodeUpdateInput: {
25944
+ labels?: components["schemas"]["KubernetesStringMap"];
25945
+ taints?: components["schemas"]["KubernetesNodeTaint"][];
25946
+ };
25947
+ KubernetesNodeSchedulabilityInput: {
25948
+ unschedulable: boolean;
25949
+ };
25950
+ KubernetesNodeDrainInput: {
25951
+ force?: boolean;
25952
+ deleteEmptyDirData?: boolean;
25953
+ /** @default 300 */
25954
+ timeoutSeconds?: number;
25955
+ };
25956
+ KubernetesResourceYamlInput: {
25957
+ content: string;
25958
+ };
25959
+ KubernetesConfigMapDataInput: {
25960
+ data?: components["schemas"]["KubernetesStringMap"];
25961
+ binaryData?: components["schemas"]["KubernetesStringMap"];
25962
+ };
25963
+ /** @description Data values are plain text. The response detail returns Kubernetes Base64-encoded values. */
25964
+ KubernetesSecretDataInput: {
25965
+ data?: components["schemas"]["KubernetesStringMap"];
25966
+ };
25967
+ KubernetesCronJobSuspendInput: {
25968
+ suspend: boolean;
25969
+ };
25970
+ KubernetesSecretDetail: {
25971
+ name: string;
25972
+ namespace: string;
25973
+ labels?: components["schemas"]["KubernetesStringMap"];
25974
+ annotations?: components["schemas"]["KubernetesStringMap"];
25975
+ /** @description Secret data values encoded with standard Base64. Requires secret-data.view. */
25976
+ data?: components["schemas"]["KubernetesStringMap"];
25977
+ immutable: boolean;
25978
+ createdAt?: string;
25979
+ /** Format: int64 */
25980
+ ageSeconds: number;
25981
+ type: string;
25982
+ };
25983
+ KubernetesSecretDetailEnvelope: {
25984
+ data: components["schemas"]["KubernetesSecretDetail"];
25985
+ };
25986
+ ClusterAgentUpgradeInput: {
25987
+ /** @description Explicit stable official Agent version, such as v0.1.7. Registry and container identity cannot be overridden. */
25988
+ version: string;
25989
+ };
25990
+ ClusterAgentUpgradeStatus: {
25991
+ /** @description Version reported by the currently connected Agent process. */
25992
+ version: string;
25993
+ /** @description Desired image of the standard Agent Deployment. */
25994
+ image: string;
25995
+ /** @description Agent version bundled with this Core release. */
25996
+ recommendedVersion: string;
25997
+ rolloutStatus: string;
25998
+ message: string;
25999
+ canUpgrade: boolean;
26000
+ upgradeDisabledReason?: string;
26001
+ };
26002
+ ClusterAgentUpgradeStatusEnvelope: {
26003
+ data: components["schemas"]["ClusterAgentUpgradeStatus"];
26004
+ };
26005
+ ClusterAgentUpgradeResult: {
26006
+ previousImage: string;
26007
+ targetImage: string;
26008
+ };
26009
+ ClusterAgentUpgradeResultEnvelope: {
26010
+ data: components["schemas"]["ClusterAgentUpgradeResult"];
26011
+ };
25851
26012
  };
25852
26013
  responses: {
25853
26014
  /** @description Stable redacted Identity protocol or management error. */
@@ -26364,6 +26525,8 @@ export type ComputeTaskResultStatus = components['schemas']['ComputeTaskResultSt
26364
26525
  export type ComputeTaskResult = components['schemas']['ComputeTaskResult'];
26365
26526
  export type ComputeTaskVerificationStatus = components['schemas']['ComputeTaskVerificationStatus'];
26366
26527
  export type ComputeTaskVerification = components['schemas']['ComputeTaskVerification'];
26528
+ export type ConnectionCheckResult = components['schemas']['ConnectionCheckResult'];
26529
+ export type ConnectionCheckResultEnvelope = components['schemas']['ConnectionCheckResultEnvelope'];
26367
26530
  export type ComputeTaskView = components['schemas']['ComputeTaskView'];
26368
26531
  export type ComputeTaskListEnvelope = components['schemas']['ComputeTaskListEnvelope'];
26369
26532
  export type ComputeTaskEnvelope = components['schemas']['ComputeTaskEnvelope'];
@@ -27868,6 +28031,29 @@ export type NetworkSessionCommandEnvelope = components['schemas']['NetworkSessio
27868
28031
  export type NetworkPolicyPreviewRequest = components['schemas']['NetworkPolicyPreviewRequest'];
27869
28032
  export type NetworkPolicyPreviewResult = components['schemas']['NetworkPolicyPreviewResult'];
27870
28033
  export type NetworkPolicyPreviewEnvelope = components['schemas']['NetworkPolicyPreviewEnvelope'];
28034
+ export type KubernetesCustomResourceAccess = components['schemas']['KubernetesCustomResourceAccess'];
28035
+ export type KubernetesCustomResourceAccessEnvelope = components['schemas']['KubernetesCustomResourceAccessEnvelope'];
28036
+ export type KubernetesClusterRegistrationRequest = components['schemas']['KubernetesClusterRegistrationRequest'];
28037
+ export type KubernetesAgentCustomResourceRule = components['schemas']['KubernetesAgentCustomResourceRule'];
28038
+ export type KubernetesPrometheusTransport = components['schemas']['KubernetesPrometheusTransport'];
28039
+ export type AgentPrometheusQueryRequest = components['schemas']['AgentPrometheusQueryRequest'];
28040
+ export type KubernetesNamespaceInput = components['schemas']['KubernetesNamespaceInput'];
28041
+ export type KubernetesNamespaceCreateInput = components['schemas']['KubernetesNamespaceCreateInput'];
28042
+ export type KubernetesNamespaceEnvelope = components['schemas']['KubernetesNamespaceEnvelope'];
28043
+ export type KubernetesNodeUpdateInput = components['schemas']['KubernetesNodeUpdateInput'];
28044
+ export type KubernetesNodeSchedulabilityInput = components['schemas']['KubernetesNodeSchedulabilityInput'];
28045
+ export type KubernetesNodeDrainInput = components['schemas']['KubernetesNodeDrainInput'];
28046
+ export type KubernetesResourceYamlInput = components['schemas']['KubernetesResourceYamlInput'];
28047
+ export type KubernetesConfigMapDataInput = components['schemas']['KubernetesConfigMapDataInput'];
28048
+ export type KubernetesSecretDataInput = components['schemas']['KubernetesSecretDataInput'];
28049
+ export type KubernetesCronJobSuspendInput = components['schemas']['KubernetesCronJobSuspendInput'];
28050
+ export type KubernetesSecretDetail = components['schemas']['KubernetesSecretDetail'];
28051
+ export type KubernetesSecretDetailEnvelope = components['schemas']['KubernetesSecretDetailEnvelope'];
28052
+ export type ClusterAgentUpgradeInput = components['schemas']['ClusterAgentUpgradeInput'];
28053
+ export type ClusterAgentUpgradeStatus = components['schemas']['ClusterAgentUpgradeStatus'];
28054
+ export type ClusterAgentUpgradeStatusEnvelope = components['schemas']['ClusterAgentUpgradeStatusEnvelope'];
28055
+ export type ClusterAgentUpgradeResult = components['schemas']['ClusterAgentUpgradeResult'];
28056
+ export type ClusterAgentUpgradeResultEnvelope = components['schemas']['ClusterAgentUpgradeResultEnvelope'];
27871
28057
  export type ResponseIdentityError = components['responses']['IdentityError'];
27872
28058
  export type ResponseError = components['responses']['Error'];
27873
28059
  export type ResponseComputeError = components['responses']['ComputeError'];
@@ -30247,6 +30433,7 @@ export interface operations {
30247
30433
  };
30248
30434
  403: components["responses"]["Error"];
30249
30435
  404: components["responses"]["Error"];
30436
+ 409: components["responses"]["Error"];
30250
30437
  };
30251
30438
  };
30252
30439
  getApplicationDeliveryDetail: {
@@ -34265,7 +34452,16 @@ export interface operations {
34265
34452
  };
34266
34453
  requestBody?: never;
34267
34454
  responses: {
34268
- /** @description Completed connection-test operation. */
34455
+ /** @description Completed synchronous connection check. Each request probes the connection and returns its current health; no task or task log is created. */
34456
+ 200: {
34457
+ headers: {
34458
+ [name: string]: unknown;
34459
+ };
34460
+ content: {
34461
+ "application/json": components["schemas"]["ConnectionCheckResultEnvelope"];
34462
+ };
34463
+ };
34464
+ /** @description Legacy response for a completed connection check, retained for older servers. Read the operation result directly. */
34269
34465
  202: {
34270
34466
  headers: {
34271
34467
  [name: string]: unknown;
@@ -43865,7 +44061,16 @@ export interface operations {
43865
44061
  };
43866
44062
  };
43867
44063
  responses: {
43868
- /** @description Health check accepted as a source-domain task. The request never returns the Provider raw response. */
44064
+ /** @description Completed synchronous health check. Each request probes the connection and returns its current health; no task or task log is created. Idempotency-Key is accepted for request compatibility but does not replay an earlier check. */
44065
+ 200: {
44066
+ headers: {
44067
+ [name: string]: unknown;
44068
+ };
44069
+ content: {
44070
+ "application/json": components["schemas"]["ConnectionCheckResultEnvelope"];
44071
+ };
44072
+ };
44073
+ /** @description Legacy health-check response retained for older servers. The task contains the completed result, never the Provider raw response. */
43869
44074
  202: {
43870
44075
  headers: {
43871
44076
  [name: string]: unknown;
@@ -44177,6 +44382,7 @@ export interface operations {
44177
44382
  "application/json": components["schemas"]["ComputeTaskEnvelope"];
44178
44383
  };
44179
44384
  };
44385
+ 400: components["responses"]["ComputeError"];
44180
44386
  403: components["responses"]["ComputeError"];
44181
44387
  404: components["responses"]["ComputeError"];
44182
44388
  409: components["responses"]["ComputeError"];