@opensoha/contracts 0.1.27 → 0.2.0

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 (871) hide show
  1. package/COMPATIBILITY.md +141 -16
  2. package/README.md +153 -50
  3. package/agent/agent-protocol.schema.json +2 -2
  4. package/agent/dsh-runtime.README.md +207 -0
  5. package/agent/dsh-runtime.schema.json +1165 -0
  6. package/agent/environment/mcp_stdio.go +30 -0
  7. package/agent/guest/runtime.go +1 -1
  8. package/agent/guest/runtime_test.go +1 -1
  9. package/auth/catalog_generated.go +2 -2
  10. package/auth/docker_permissions_test.go +44 -0
  11. package/auth/permission-catalog.json +65 -1
  12. package/auth/radius_permissions_test.go +44 -0
  13. package/compat/consumer-revisions.json +6 -6
  14. package/compat/json-schema-ecosystem-0.1.0.json +1 -1
  15. package/compat/openapi-loose-boundaries-0.1.0.json +5 -1
  16. package/docker/runtime/compose.go +128 -0
  17. package/docker/runtime/compose_replicas_test.go +20 -0
  18. package/docker/runtime/container_set.go +50 -0
  19. package/docker/runtime/container_set_test.go +31 -0
  20. package/docker/runtime/identity.go +130 -0
  21. package/docker/runtime/identity_test.go +91 -0
  22. package/docker/runtime/read.go +141 -0
  23. package/docker/runtime/read_result.go +93 -0
  24. package/docker/runtime/read_result_test.go +111 -0
  25. package/docker/runtime/read_test.go +63 -0
  26. package/docker/runtime/terminal.go +86 -0
  27. package/docker/runtime/terminal_test.go +50 -0
  28. package/examples/relations_compat_test.go +1 -1
  29. package/fixtures/json-schema/agent-protocol/valid/dsh-agent-status.json +17 -0
  30. package/fixtures/json-schema/docker-container-identity/invalid/name-instead-of-id.json +8 -0
  31. package/fixtures/json-schema/docker-container-identity/invalid/short-id.json +8 -0
  32. package/fixtures/json-schema/docker-container-identity/invalid/unknown-field.json +9 -0
  33. package/fixtures/json-schema/docker-container-identity/invalid/unsafe-service.json +8 -0
  34. package/fixtures/json-schema/docker-container-identity/valid/bound-container.json +8 -0
  35. package/fixtures/json-schema/docker-project-identity/invalid/injected-field.json +7 -0
  36. package/fixtures/json-schema/docker-project-identity/invalid/invalid-uid.json +6 -0
  37. package/fixtures/json-schema/docker-project-identity/invalid/legacy-protocol.json +6 -0
  38. package/fixtures/json-schema/docker-project-identity/invalid/nil-uid.json +6 -0
  39. package/fixtures/json-schema/docker-project-identity/invalid/slug-namespace.json +6 -0
  40. package/fixtures/json-schema/docker-project-identity/valid/bound-project.json +6 -0
  41. package/fixtures/json-schema/docker-runtime-read/invalid/1.json +14 -0
  42. package/fixtures/json-schema/docker-runtime-read/invalid/2.json +14 -0
  43. package/fixtures/json-schema/docker-runtime-read/invalid/3.json +14 -0
  44. package/fixtures/json-schema/docker-runtime-read/invalid/4.json +16 -0
  45. package/fixtures/json-schema/docker-runtime-read/invalid/5.json +14 -0
  46. package/fixtures/json-schema/docker-runtime-read/invalid/6.json +15 -0
  47. package/fixtures/json-schema/docker-runtime-read/invalid/7.json +15 -0
  48. package/fixtures/json-schema/docker-runtime-read/valid/1.json +14 -0
  49. package/fixtures/json-schema/docker-runtime-read/valid/2.json +14 -0
  50. package/fixtures/json-schema/docker-runtime-read/valid/3.json +17 -0
  51. package/fixtures/json-schema/docker-runtime-read/valid/4.json +17 -0
  52. package/fixtures/json-schema/docker-runtime-read-result/invalid/contradictory-completeness.json +21 -0
  53. package/fixtures/json-schema/docker-runtime-read-result/invalid/host-source-leak.json +28 -0
  54. package/fixtures/json-schema/docker-runtime-read-result/invalid/missing-files.json +20 -0
  55. package/fixtures/json-schema/docker-runtime-read-result/invalid/unsupported-browse.json +27 -0
  56. package/fixtures/json-schema/docker-runtime-read-result/valid/logs.json +21 -0
  57. package/fixtures/json-schema/docker-runtime-read-result/valid/volumes.json +27 -0
  58. package/fixtures/json-schema/dsh-runtime/invalid/assembly-report-credential.json +21 -0
  59. package/fixtures/json-schema/dsh-runtime/invalid/attempt-zero.json +18 -0
  60. package/fixtures/json-schema/dsh-runtime/invalid/bad-deadline.json +18 -0
  61. package/fixtures/json-schema/dsh-runtime/invalid/bad-hash.json +18 -0
  62. package/fixtures/json-schema/dsh-runtime/invalid/event-delta-missing.json +10 -0
  63. package/fixtures/json-schema/dsh-runtime/invalid/event-grant.json +12 -0
  64. package/fixtures/json-schema/dsh-runtime/invalid/event-sequence-zero.json +12 -0
  65. package/fixtures/json-schema/dsh-runtime/invalid/fence-zero.json +18 -0
  66. package/fixtures/json-schema/dsh-runtime/invalid/health-unknown-field.json +12 -0
  67. package/fixtures/json-schema/dsh-runtime/invalid/output-budget-zero.json +18 -0
  68. package/fixtures/json-schema/dsh-runtime/invalid/receipt-grant.json +12 -0
  69. package/fixtures/json-schema/dsh-runtime/invalid/start-assembly-url.json +32 -0
  70. package/fixtures/json-schema/dsh-runtime/invalid/start-chat-write-tool.json +38 -0
  71. package/fixtures/json-schema/dsh-runtime/invalid/start-client-base-url.json +19 -0
  72. package/fixtures/json-schema/dsh-runtime/invalid/start-client-callback.json +19 -0
  73. package/fixtures/json-schema/dsh-runtime/invalid/start-missing-readonly.json +37 -0
  74. package/fixtures/json-schema/dsh-runtime/invalid/status-grant.json +19 -0
  75. package/fixtures/json-schema/dsh-runtime/invalid/status-usage-missing.json +13 -0
  76. package/fixtures/json-schema/dsh-runtime/invalid/status-usage-unknown.json +18 -0
  77. package/fixtures/json-schema/dsh-runtime/invalid/tool-call-missing-call-id.json +13 -0
  78. package/fixtures/json-schema/dsh-runtime/invalid/tool-result-missing-hash.json +13 -0
  79. package/fixtures/json-schema/dsh-runtime/invalid/union-extra-field.json +12 -0
  80. package/fixtures/json-schema/dsh-runtime/invalid/unsupported-version.json +18 -0
  81. package/fixtures/json-schema/dsh-runtime/valid/assembly-decision.json +21 -0
  82. package/fixtures/json-schema/dsh-runtime/valid/assembly-report-mcp.json +34 -0
  83. package/fixtures/json-schema/dsh-runtime/valid/assembly-report.json +20 -0
  84. package/fixtures/json-schema/dsh-runtime/valid/cancel.json +8 -0
  85. package/fixtures/json-schema/dsh-runtime/valid/event-delta.json +12 -0
  86. package/fixtures/json-schema/dsh-runtime/valid/event-hook-observed.json +14 -0
  87. package/fixtures/json-schema/dsh-runtime/valid/event-terminal.json +13 -0
  88. package/fixtures/json-schema/dsh-runtime/valid/health.json +11 -0
  89. package/fixtures/json-schema/dsh-runtime/valid/receipt.json +11 -0
  90. package/fixtures/json-schema/dsh-runtime/valid/start-assembly.json +31 -0
  91. package/fixtures/json-schema/dsh-runtime/valid/start-chat.json +18 -0
  92. package/fixtures/json-schema/dsh-runtime/valid/start-heya.json +38 -0
  93. package/fixtures/json-schema/dsh-runtime/valid/status-completed.json +18 -0
  94. package/fixtures/json-schema/dsh-runtime/valid/status-unknown.json +13 -0
  95. package/fixtures/json-schema/dsh-runtime/valid/tool-call.json +1 -0
  96. package/fixtures/json-schema/dsh-runtime/valid/tool-result-denied.json +15 -0
  97. package/fixtures/json-schema/dsh-runtime/valid/tool-result.json +14 -0
  98. package/fixtures/json-schema/memory-policy/invalid/invalid-mode.json +17 -0
  99. package/fixtures/json-schema/memory-policy/valid/scoped.json +17 -0
  100. package/fixtures/json-schema/memory-record/invalid/invalid-source-hash.json +21 -0
  101. package/fixtures/json-schema/memory-record/invalid/invalid-sync-status.json +21 -0
  102. package/fixtures/json-schema/memory-record/invalid/quarantine-reason-too-long.json +23 -0
  103. package/fixtures/json-schema/memory-record/valid/quarantined.json +23 -0
  104. package/fixtures/json-schema/memory-record/valid/synced.json +21 -0
  105. package/fixtures/json-schema/network-ingest-event/invalid/proxy-runtime-epoch-without-sequence.json +23 -0
  106. package/fixtures/json-schema/network-ingest-event/invalid/proxy-runtime-unsafe-sequence.json +24 -0
  107. package/fixtures/json-schema/network-ingest-event/valid/proxy-runtime-epoch.json +24 -0
  108. package/fixtures/json-schema/network-runtime-protocol/invalid/eap-activate-partial-profile.json +16 -0
  109. package/fixtures/json-schema/network-runtime-protocol/invalid/eap-revoke-other-kind.json +16 -0
  110. package/fixtures/json-schema/network-runtime-protocol/invalid/enrollment-duplicate-capability.json +30 -0
  111. package/fixtures/json-schema/network-runtime-protocol/invalid/enrollment-unknown-capability.json +30 -0
  112. package/fixtures/json-schema/network-runtime-protocol/invalid/legacy-with-proof.json +19 -0
  113. package/fixtures/json-schema/network-runtime-protocol/invalid/ttls-certificate.json +42 -0
  114. package/fixtures/json-schema/network-runtime-protocol/invalid/ttls-device-override.json +19 -0
  115. package/fixtures/json-schema/network-runtime-protocol/invalid/ttls-no-proof.json +17 -0
  116. package/fixtures/json-schema/network-runtime-protocol/invalid/ttls-nonstation-identity.json +18 -0
  117. package/fixtures/json-schema/network-runtime-protocol/invalid/ttls-profile-without-pap.json +40 -0
  118. package/fixtures/json-schema/network-runtime-protocol/valid/app-default-enrollment.json +29 -0
  119. package/fixtures/json-schema/network-runtime-protocol/valid/app-mihomo-enrollment.json +32 -0
  120. package/fixtures/json-schema/network-runtime-protocol/valid/eap-activate-profile.json +17 -0
  121. package/fixtures/json-schema/network-runtime-protocol/valid/eap-revoke-result.json +16 -0
  122. package/fixtures/json-schema/network-runtime-protocol/valid/eap-revoke.json +16 -0
  123. package/fixtures/json-schema/network-runtime-protocol/valid/proxy-default-enrollment.json +23 -0
  124. package/fixtures/json-schema/network-runtime-protocol/valid/ttls-authorization.json +18 -0
  125. package/fixtures/json-schema/network-runtime-protocol/valid/ttls-profile-enrollment.json +23 -0
  126. package/fixtures/json-schema/network-runtime-protocol/valid/ttls-profile.json +41 -0
  127. package/fixtures/json-schema/proxy-adapter/invalid/apply-incomplete-result.json +11 -0
  128. package/fixtures/json-schema/proxy-adapter/invalid/close-incomplete-result.json +9 -0
  129. package/fixtures/json-schema/proxy-adapter/invalid/handshake-incomplete-result.json +11 -0
  130. package/fixtures/json-schema/proxy-adapter/invalid/invalid-method.json +11 -0
  131. package/fixtures/json-schema/proxy-adapter/invalid/major.json +11 -0
  132. package/fixtures/json-schema/proxy-adapter/invalid/missing-challenge.json +9 -0
  133. package/fixtures/json-schema/proxy-adapter/invalid/multiple-outcomes.json +12 -0
  134. package/fixtures/json-schema/proxy-adapter/invalid/observe-incomplete-result.json +9 -0
  135. package/fixtures/json-schema/proxy-adapter/invalid/unknown-field.json +12 -0
  136. package/fixtures/json-schema/proxy-adapter/valid/apply-result.json +12 -0
  137. package/fixtures/json-schema/proxy-adapter/valid/close-result.json +11 -0
  138. package/fixtures/json-schema/proxy-adapter/valid/handshake-result.json +19 -0
  139. package/fixtures/json-schema/proxy-adapter/valid/handshake.json +11 -0
  140. package/fixtures/json-schema/proxy-adapter/valid/observe-result.json +20 -0
  141. package/fixtures/json-schema/proxy-runtime/invalid/deployment-stop-accepting.json +19 -0
  142. package/fixtures/json-schema/proxy-runtime/invalid/deployment-stopped-unknown.json +21 -0
  143. package/fixtures/json-schema/proxy-runtime/invalid/duplicate-capability.json +20 -0
  144. package/fixtures/json-schema/proxy-runtime/invalid/guarded-udp-unknown.json +19 -0
  145. package/fixtures/json-schema/proxy-runtime/invalid/ingress-check-cross-payload.json +9 -0
  146. package/fixtures/json-schema/proxy-runtime/invalid/ingress-check-result-cross-payload.json +9 -0
  147. package/fixtures/json-schema/proxy-runtime/invalid/publication-ready-cross-payload.json +9 -0
  148. package/fixtures/json-schema/proxy-runtime/invalid/unknown-field.json +18 -0
  149. package/fixtures/json-schema/proxy-runtime/valid/deployment-process-stopped.json +21 -0
  150. package/fixtures/json-schema/proxy-runtime/valid/deployment-stop-required.json +19 -0
  151. package/fixtures/json-schema/proxy-runtime/valid/guarded-udp.json +20 -0
  152. package/fixtures/json-schema/proxy-runtime/valid/ingress-check-result.json +15 -0
  153. package/fixtures/json-schema/proxy-runtime/valid/ingress-check.json +18 -0
  154. package/fixtures/json-schema/proxy-runtime/valid/management-capabilities.json +26 -0
  155. package/fixtures/json-schema/proxy-runtime/valid/observation.json +17 -0
  156. package/fixtures/json-schema/proxy-runtime/valid/publication-ready.json +16 -0
  157. package/fixtures/json-schema/radius-password-verifier/invalid/bare-pap.json +9 -0
  158. package/fixtures/json-schema/radius-password-verifier/invalid/empty-password.json +9 -0
  159. package/fixtures/json-schema/radius-password-verifier/invalid/enumeration.json +4 -0
  160. package/fixtures/json-schema/radius-password-verifier/invalid/failure-with-subject.json +5 -0
  161. package/fixtures/json-schema/radius-password-verifier/invalid/invalid-station.json +9 -0
  162. package/fixtures/json-schema/radius-password-verifier/invalid/radius-xlat.json +16 -0
  163. package/fixtures/json-schema/radius-password-verifier/invalid/raw-password.json +10 -0
  164. package/fixtures/json-schema/radius-password-verifier/invalid/success-without-receipt.json +5 -0
  165. package/fixtures/json-schema/radius-password-verifier/invalid/too-long.json +9 -0
  166. package/fixtures/json-schema/radius-password-verifier/invalid/url-base64.json +9 -0
  167. package/fixtures/json-schema/radius-password-verifier/invalid/wrong-method.json +9 -0
  168. package/fixtures/json-schema/radius-password-verifier/valid/failure.json +4 -0
  169. package/fixtures/json-schema/radius-password-verifier/valid/radius-success.json +16 -0
  170. package/fixtures/json-schema/radius-password-verifier/valid/request.json +9 -0
  171. package/fixtures/json-schema/radius-password-verifier/valid/success.json +6 -0
  172. package/fixtures/json-schema/radius-runtime/invalid/control-with-secret.json +30 -0
  173. package/fixtures/json-schema/radius-runtime/invalid/known-null.json +21 -0
  174. package/fixtures/json-schema/radius-runtime/invalid/known-without-count.json +20 -0
  175. package/fixtures/json-schema/radius-runtime/invalid/stopped-still-accepting.json +21 -0
  176. package/fixtures/json-schema/radius-runtime/invalid/stopped-with-live-state.json +21 -0
  177. package/fixtures/json-schema/radius-runtime/invalid/unknown-with-zero.json +21 -0
  178. package/fixtures/json-schema/radius-runtime/valid/bootstrap-control.json +29 -0
  179. package/fixtures/json-schema/radius-runtime/valid/known-zero.json +21 -0
  180. package/fixtures/json-schema/radius-runtime/valid/owned-child-stopped.json +21 -0
  181. package/fixtures/json-schema/radius-runtime/valid/unknown-state.json +20 -0
  182. package/fixtures/openapi/AIMemoryPolicy/invalid/invalid-mode.json +16 -0
  183. package/fixtures/openapi/AIMemoryPolicy/valid/legacy-global.json +12 -0
  184. package/fixtures/openapi/AIMemoryPolicy/valid/scoped.json +16 -0
  185. package/fixtures/openapi/AIMemoryPolicyInput/invalid/invalid-mode.json +9 -0
  186. package/fixtures/openapi/AIMemoryPolicyInput/invalid/owner-spoof.json +10 -0
  187. package/fixtures/openapi/AIMemoryPolicyInput/valid/heya-automatic.json +9 -0
  188. package/fixtures/openapi/AIMemoryPolicyInput/valid/scoped.json +9 -0
  189. package/fixtures/openapi/AIMemoryRecord/invalid/invalid-source-hash.json +20 -0
  190. package/fixtures/openapi/AIMemoryRecord/invalid/invalid-sync-status.json +20 -0
  191. package/fixtures/openapi/AIMemoryRecord/invalid/quarantine-reason-too-long.json +22 -0
  192. package/fixtures/openapi/AIMemoryRecord/valid/delete-pending.json +21 -0
  193. package/fixtures/openapi/AIMemoryRecord/valid/quarantined.json +22 -0
  194. package/fixtures/openapi/AIMemoryRecord/valid/synced.json +20 -0
  195. package/fixtures/openapi/AgentConditionalResourceMutationRequest/invalid/preconditions-v1.json +8 -0
  196. package/fixtures/openapi/AgentConditionalResourceMutationRequest/valid/preconditions-v1.json +9 -0
  197. package/fixtures/openapi/AgentConditionalResourceYamlRequest/invalid/preconditions-v1.json +6 -0
  198. package/fixtures/openapi/AgentConditionalResourceYamlRequest/valid/preconditions-v1.json +10 -0
  199. package/fixtures/openapi/AgentPodArgvResult/invalid/native-pod-execution-v1.json +17 -0
  200. package/fixtures/openapi/AgentPodArgvResult/valid/native-pod-execution-v1.json +24 -0
  201. package/fixtures/openapi/AgentPodExecutionCapabilities/invalid/native-pod-execution-v1.json +7 -0
  202. package/fixtures/openapi/AgentPodExecutionCapabilities/valid/native-pod-execution-v1.json +7 -0
  203. package/fixtures/openapi/AgentRunCallbackRequest/valid/dsh-agent-status.json +17 -0
  204. package/fixtures/openapi/AlertOwnershipInput/invalid/workbench.json +3 -0
  205. package/fixtures/openapi/AlertOwnershipInput/valid/workbench.json +4 -0
  206. package/fixtures/openapi/ApplicationEnvironmentListEnvelope/invalid/legacy-list-alias.json +4 -0
  207. package/fixtures/openapi/ApplicationEnvironmentListEnvelope/valid/legacy-list-alias.json +4 -0
  208. package/fixtures/openapi/ApplicationListEnvelope/invalid/legacy-list-alias.json +4 -0
  209. package/fixtures/openapi/ApplicationListEnvelope/valid/legacy-list-alias.json +4 -0
  210. package/fixtures/openapi/ApplicationServiceListEnvelope/invalid/legacy-list-alias.json +4 -0
  211. package/fixtures/openapi/ApplicationServiceListEnvelope/valid/legacy-list-alias.json +4 -0
  212. package/fixtures/openapi/CLIAuthContext/invalid/cli-boundary.json +13 -0
  213. package/fixtures/openapi/CLIAuthContext/valid/cli-boundary.json +12 -0
  214. package/fixtures/openapi/CLIAuthOptions/invalid/cli-boundary.json +14 -0
  215. package/fixtures/openapi/CLIAuthOptions/valid/cli-boundary.json +13 -0
  216. package/fixtures/openapi/CLIAuthOptions/valid/governed-ai.json +14 -0
  217. package/fixtures/openapi/CLIDeviceAuthorization/invalid/cli-boundary.json +10 -0
  218. package/fixtures/openapi/CLIDeviceAuthorization/invalid/numeric-code.json +9 -0
  219. package/fixtures/openapi/CLIDeviceAuthorization/valid/cli-boundary.json +9 -0
  220. package/fixtures/openapi/CLIDeviceAuthorizationCreateRequest/invalid/basic.json +5 -0
  221. package/fixtures/openapi/CLIDeviceAuthorizationCreateRequest/valid/basic.json +5 -0
  222. package/fixtures/openapi/CLIDeviceCancelRequest/invalid/cli-boundary.json +5 -0
  223. package/fixtures/openapi/CLIDeviceCancelRequest/valid/cli-boundary.json +4 -0
  224. package/fixtures/openapi/CLIDeviceDecisionRequest/invalid/basic.json +6 -0
  225. package/fixtures/openapi/CLIDeviceDecisionRequest/valid/basic.json +6 -0
  226. package/fixtures/openapi/CLIDeviceInspectRequest/invalid/basic.json +4 -0
  227. package/fixtures/openapi/CLIDeviceInspectRequest/valid/basic.json +4 -0
  228. package/fixtures/openapi/CLIDeviceTokenRequest/invalid/basic.json +5 -0
  229. package/fixtures/openapi/CLIDeviceTokenRequest/valid/basic.json +5 -0
  230. package/fixtures/openapi/CLILogoutRequest/invalid/cli-boundary.json +4 -0
  231. package/fixtures/openapi/CLILogoutRequest/valid/cli-boundary.json +3 -0
  232. package/fixtures/openapi/CLIRefreshRequest/invalid/basic.json +3 -0
  233. package/fixtures/openapi/CLIRefreshRequest/valid/basic.json +4 -0
  234. package/fixtures/openapi/CLISession/invalid/cli-boundary.json +12 -0
  235. package/fixtures/openapi/CLISession/valid/cli-boundary.json +11 -0
  236. package/fixtures/openapi/DeliveryBlueprintListEnvelope/invalid/legacy-list-alias.json +4 -0
  237. package/fixtures/openapi/DeliveryBlueprintListEnvelope/valid/legacy-list-alias.json +4 -0
  238. package/fixtures/openapi/DeliveryEnvironmentListEnvelope/invalid/legacy-list-alias.json +4 -0
  239. package/fixtures/openapi/DeliveryEnvironmentListEnvelope/valid/legacy-list-alias.json +4 -0
  240. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/hidden-count.json +24 -0
  241. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/hidden-identities.json +26 -0
  242. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/invalid-frozen-revision.json +23 -0
  243. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/missing-current-revision.json +22 -0
  244. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/private-complete-snapshot.json +37 -0
  245. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/invalid/too-many-items.json +1223 -0
  246. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/valid/current-plan.json +23 -0
  247. package/fixtures/openapi/DeliveryPlanServiceReferenceImpact/valid/stale-plan-current-visible-page.json +23 -0
  248. package/fixtures/openapi/DeliveryTemplateUsageApplication/invalid/unknown-field.json +4 -0
  249. package/fixtures/openapi/DeliveryTemplateUsageApplication/valid/minimal.json +3 -0
  250. package/fixtures/openapi/DeliveryTemplateUsageBinding/invalid/unknown-field.json +6 -0
  251. package/fixtures/openapi/DeliveryTemplateUsageBinding/valid/minimal.json +5 -0
  252. package/fixtures/openapi/DeliveryTemplateUsageBuildSource/invalid/unknown-field.json +7 -0
  253. package/fixtures/openapi/DeliveryTemplateUsageBuildSource/valid/minimal.json +6 -0
  254. package/fixtures/openapi/DeliveryTemplateUsageEnvironment/invalid/unknown-field.json +5 -0
  255. package/fixtures/openapi/DeliveryTemplateUsageEnvironment/valid/minimal.json +4 -0
  256. package/fixtures/openapi/DeliveryTemplateUsageRuntimeItem/invalid/unknown-field.json +6 -0
  257. package/fixtures/openapi/DeliveryTemplateUsageRuntimeItem/valid/minimal.json +5 -0
  258. package/fixtures/openapi/DeliveryTemplateUsageRuntimeSummary/invalid/unknown-field.json +20 -0
  259. package/fixtures/openapi/DeliveryTemplateUsageRuntimeSummary/valid/minimal.json +19 -0
  260. package/fixtures/openapi/DeliveryTemplateUsageSummary/invalid/missing-kind.json +16 -0
  261. package/fixtures/openapi/DeliveryTemplateUsageSummary/valid/static.json +17 -0
  262. package/fixtures/openapi/DeliveryTemplateUsageSummaryEnvelope/invalid/legacy-items.json +3 -0
  263. package/fixtures/openapi/DeliveryTemplateUsageSummaryEnvelope/valid/static.json +19 -0
  264. package/fixtures/openapi/DirectorySyncRequestEnvelope/invalid/original-request.json +25 -0
  265. package/fixtures/openapi/DirectorySyncRequestEnvelope/valid/original-request.json +24 -0
  266. package/fixtures/openapi/DirectorySyncRequestInput/invalid/original-request.json +4 -0
  267. package/fixtures/openapi/DirectorySyncRequestInput/valid/original-request.json +3 -0
  268. package/fixtures/openapi/DirectorySyncRequestOrganizations/invalid/original-request.json +7 -0
  269. package/fixtures/openapi/DirectorySyncRequestOrganizations/valid/original-request.json +6 -0
  270. package/fixtures/openapi/DirectorySyncRequestPeople/invalid/original-request.json +7 -0
  271. package/fixtures/openapi/DirectorySyncRequestPeople/valid/original-request.json +6 -0
  272. package/fixtures/openapi/DirectorySyncRequestReceipt/invalid/original-request.json +23 -0
  273. package/fixtures/openapi/DirectorySyncRequestReceipt/valid/original-request.json +22 -0
  274. package/fixtures/openapi/DirectorySyncRequestRun/invalid/cancel-flag.json +1 -0
  275. package/fixtures/openapi/DirectorySyncRequestRun/invalid/original-request.json +19 -0
  276. package/fixtures/openapi/DirectorySyncRequestRun/valid/original-request.json +19 -0
  277. package/fixtures/openapi/DockerConfigurationChange/invalid/field.json +5 -0
  278. package/fixtures/openapi/DockerConfigurationChange/invalid/integer-overflow.json +4 -0
  279. package/fixtures/openapi/DockerConfigurationChange/valid/field.json +4 -0
  280. package/fixtures/openapi/DockerConfigurationDeleteInput/invalid/delete.json +7 -0
  281. package/fixtures/openapi/DockerConfigurationDeleteInput/valid/delete.json +7 -0
  282. package/fixtures/openapi/DockerConfigurationMapValue/invalid/map.json +1 -0
  283. package/fixtures/openapi/DockerConfigurationMapValue/valid/map.json +3 -0
  284. package/fixtures/openapi/DockerConfigurationPatchInput/invalid/missing-target-host.json +13 -0
  285. package/fixtures/openapi/DockerConfigurationPatchInput/invalid/patch.json +8 -0
  286. package/fixtures/openapi/DockerConfigurationPatchInput/invalid/unused-target-host.json +14 -0
  287. package/fixtures/openapi/DockerConfigurationPatchInput/valid/explicit-zero-and-empty.json +21 -0
  288. package/fixtures/openapi/DockerConfigurationPatchInput/valid/host-move.json +14 -0
  289. package/fixtures/openapi/DockerConfigurationPatchInput/valid/patch.json +13 -0
  290. package/fixtures/openapi/DockerConfigurationPreconditions/invalid/identity.json +3 -0
  291. package/fixtures/openapi/DockerConfigurationPreconditions/valid/identity.json +4 -0
  292. package/fixtures/openapi/DockerConfigurationReceipt/invalid/receipt.json +15 -0
  293. package/fixtures/openapi/DockerConfigurationReceipt/valid/receipt.json +14 -0
  294. package/fixtures/openapi/DockerConfigurationReceiptEnvelope/invalid/receipt.json +16 -0
  295. package/fixtures/openapi/DockerConfigurationReceiptEnvelope/valid/receipt.json +16 -0
  296. package/fixtures/openapi/DockerConfigurationScalar/invalid/simple.json +1 -0
  297. package/fixtures/openapi/DockerConfigurationScalar/valid/simple.json +1 -0
  298. package/fixtures/openapi/DockerHostRegistration/invalid/host.json +4 -0
  299. package/fixtures/openapi/DockerHostRegistration/valid/host.json +6 -0
  300. package/fixtures/openapi/DockerHostRegistrationInput/invalid/registration.json +4 -0
  301. package/fixtures/openapi/DockerHostRegistrationInput/valid/registration.json +6 -0
  302. package/fixtures/openapi/DockerNativeTerminalCreated/invalid/native-v1.json +24 -0
  303. package/fixtures/openapi/DockerNativeTerminalCreated/valid/native-v1.json +23 -0
  304. package/fixtures/openapi/DockerNativeTerminalCreatedEnvelope/invalid/native-v1.json +26 -0
  305. package/fixtures/openapi/DockerNativeTerminalCreatedEnvelope/valid/native-v1.json +25 -0
  306. package/fixtures/openapi/DockerNativeTerminalInput/invalid/native-v1.json +9 -0
  307. package/fixtures/openapi/DockerNativeTerminalInput/valid/native-v1.json +8 -0
  308. package/fixtures/openapi/DockerNativeTerminalSession/invalid/native-v1.json +21 -0
  309. package/fixtures/openapi/DockerNativeTerminalSession/valid/native-v1.json +20 -0
  310. package/fixtures/openapi/DockerNativeTerminalSessionEnvelope/invalid/native-v1.json +23 -0
  311. package/fixtures/openapi/DockerNativeTerminalSessionEnvelope/valid/native-v1.json +22 -0
  312. package/fixtures/openapi/DockerProjectDeployInput/invalid/missing-host.json +8 -0
  313. package/fixtures/openapi/DockerProjectDeployInput/valid/bound.json +14 -0
  314. package/fixtures/openapi/DockerProjectDeployInput/valid/legacy.json +1 -0
  315. package/fixtures/openapi/DockerProjectDeployPreconditions/invalid/missing-host.json +6 -0
  316. package/fixtures/openapi/DockerProjectDeployPreconditions/valid/bound.json +11 -0
  317. package/fixtures/openapi/DockerResourceIdentity/invalid/configuration-leak.json +9 -0
  318. package/fixtures/openapi/DockerResourceIdentity/invalid/host-with-host.json +7 -0
  319. package/fixtures/openapi/DockerResourceIdentity/invalid/invalid-uid.json +6 -0
  320. package/fixtures/openapi/DockerResourceIdentity/invalid/missing-revision.json +5 -0
  321. package/fixtures/openapi/DockerResourceIdentity/invalid/missing-uid.json +5 -0
  322. package/fixtures/openapi/DockerResourceIdentity/invalid/project-without-host.json +6 -0
  323. package/fixtures/openapi/DockerResourceIdentity/invalid/wrong-kind.json +6 -0
  324. package/fixtures/openapi/DockerResourceIdentity/valid/host.json +6 -0
  325. package/fixtures/openapi/DockerResourceIdentity/valid/project.json +7 -0
  326. package/fixtures/openapi/DockerResourceIdentityEnvelope/invalid/array-data.json +10 -0
  327. package/fixtures/openapi/DockerResourceIdentityEnvelope/invalid/missing-data.json +1 -0
  328. package/fixtures/openapi/DockerResourceIdentityEnvelope/invalid/unexpected-payload.json +11 -0
  329. package/fixtures/openapi/DockerResourceIdentityEnvelope/valid/host.json +8 -0
  330. package/fixtures/openapi/DockerResourceIdentityEnvelope/valid/project.json +9 -0
  331. package/fixtures/openapi/DockerRuntimeContainerBinding/invalid/identity-bound.json +8 -0
  332. package/fixtures/openapi/DockerRuntimeContainerBinding/valid/identity-bound.json +8 -0
  333. package/fixtures/openapi/DockerRuntimeFileEntry/invalid/identity-bound.json +8 -0
  334. package/fixtures/openapi/DockerRuntimeFileEntry/valid/identity-bound.json +8 -0
  335. package/fixtures/openapi/DockerRuntimeReadEnvelope/invalid/identity-bound.json +23 -0
  336. package/fixtures/openapi/DockerRuntimeReadEnvelope/valid/identity-bound.json +23 -0
  337. package/fixtures/openapi/DockerRuntimeReadResult/invalid/identity-bound.json +21 -0
  338. package/fixtures/openapi/DockerRuntimeReadResult/valid/identity-bound.json +21 -0
  339. package/fixtures/openapi/DockerRuntimeVolume/invalid/identity-bound.json +7 -0
  340. package/fixtures/openapi/DockerRuntimeVolume/valid/identity-bound.json +7 -0
  341. package/fixtures/openapi/EnvironmentServiceReference/invalid/candidate-state.json +60 -0
  342. package/fixtures/openapi/EnvironmentServiceReference/invalid/missing-current-source-revision.json +59 -0
  343. package/fixtures/openapi/EnvironmentServiceReference/invalid/missing-identity-revision.json +59 -0
  344. package/fixtures/openapi/EnvironmentServiceReference/invalid/private-snapshot.json +61 -0
  345. package/fixtures/openapi/EnvironmentServiceReference/valid/active.json +60 -0
  346. package/fixtures/openapi/EnvironmentServiceReferenceCandidate/invalid/active.json +63 -0
  347. package/fixtures/openapi/EnvironmentServiceReferenceCandidate/invalid/raw-secret.json +66 -0
  348. package/fixtures/openapi/EnvironmentServiceReferenceCandidate/valid/generic-operator.json +63 -0
  349. package/fixtures/openapi/EnvironmentServiceReferenceCandidate/valid/helm-root.json +49 -0
  350. package/fixtures/openapi/EnvironmentServiceReferenceCandidateDeleteInput/invalid/missing-binding-cas.json +4 -0
  351. package/fixtures/openapi/EnvironmentServiceReferenceCandidateDeleteInput/invalid/missing-identity.json +4 -0
  352. package/fixtures/openapi/EnvironmentServiceReferenceCandidateDeleteInput/valid/delete-without-source.json +5 -0
  353. package/fixtures/openapi/EnvironmentServiceReferenceCandidateEnvelope/invalid/missing-revision.json +64 -0
  354. package/fixtures/openapi/EnvironmentServiceReferenceCandidateEnvelope/valid/generic-operator.json +65 -0
  355. package/fixtures/openapi/EnvironmentServiceReferenceCandidateEnvelope/valid/helm-root.json +51 -0
  356. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/activation.json +11 -0
  357. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/create-with-old-id.json +11 -0
  358. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/empty-targets.json +8 -0
  359. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/missing-digest.json +9 -0
  360. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/missing-targets.json +7 -0
  361. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/null-targets.json +8 -0
  362. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/invalid/update-without-id.json +10 -0
  363. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/valid/create.json +10 -0
  364. package/fixtures/openapi/EnvironmentServiceReferenceCandidateInput/valid/update.json +11 -0
  365. package/fixtures/openapi/EnvironmentServiceReferenceCandidatePage/invalid/source-content.json +17 -0
  366. package/fixtures/openapi/EnvironmentServiceReferenceCandidatePage/valid/page.json +13 -0
  367. package/fixtures/openapi/EnvironmentServiceReferenceCandidateSummary/invalid/source-leak.json +9 -0
  368. package/fixtures/openapi/EnvironmentServiceReferenceCandidateSummary/valid/consumer-metadata.json +8 -0
  369. package/fixtures/openapi/EnvironmentServiceReferenceConsumer/invalid/duplicate-target-ids.json +13 -0
  370. package/fixtures/openapi/EnvironmentServiceReferenceConsumer/invalid/source-content.json +38 -0
  371. package/fixtures/openapi/EnvironmentServiceReferenceConsumer/invalid/too-many-target-ids.json +112 -0
  372. package/fixtures/openapi/EnvironmentServiceReferenceConsumer/valid/visible.json +12 -0
  373. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/invalid/hidden-count.json +19 -0
  374. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/invalid/hidden-identities.json +21 -0
  375. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/invalid/missing-restricted-flag.json +17 -0
  376. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/invalid/too-many-items.json +1218 -0
  377. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/valid/all-consumers-restricted.json +4 -0
  378. package/fixtures/openapi/EnvironmentServiceReferenceConsumerPage/valid/visible-page-with-restricted-consumers.json +18 -0
  379. package/fixtures/openapi/EnvironmentServiceReferenceDeleteInput/invalid/caller-force.json +6 -0
  380. package/fixtures/openapi/EnvironmentServiceReferenceDeleteInput/invalid/missing-consumer-cas.json +4 -0
  381. package/fixtures/openapi/EnvironmentServiceReferenceDeleteInput/invalid/missing-reference-id.json +4 -0
  382. package/fixtures/openapi/EnvironmentServiceReferenceDeleteInput/invalid/zero-reference-revision.json +5 -0
  383. package/fixtures/openapi/EnvironmentServiceReferenceDeleteInput/valid/detach-without-source-access.json +5 -0
  384. package/fixtures/openapi/EnvironmentServiceReferenceEnvelope/invalid/missing-fresh-uid.json +61 -0
  385. package/fixtures/openapi/EnvironmentServiceReferenceEnvelope/valid/active.json +62 -0
  386. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/caller-force.json +9 -0
  387. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/caller-ownership.json +9 -0
  388. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/caller-source.json +9 -0
  389. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/caller-targets.json +11 -0
  390. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/create-with-reference-id.json +9 -0
  391. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/empty-candidate-id.json +8 -0
  392. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/invalid-consumer-time.json +8 -0
  393. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/invalid-source-digest.json +8 -0
  394. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/invalid-source-time.json +8 -0
  395. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/missing-candidate-id.json +7 -0
  396. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/missing-candidate-revision.json +7 -0
  397. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/missing-consumer-cas.json +7 -0
  398. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/missing-source-cas.json +7 -0
  399. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/missing-source-digest.json +7 -0
  400. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/negative-reference-revision.json +8 -0
  401. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/oversized-candidate-id.json +8 -0
  402. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/update-without-reference-id.json +8 -0
  403. package/fixtures/openapi/EnvironmentServiceReferenceInput/invalid/zero-candidate-revision.json +8 -0
  404. package/fixtures/openapi/EnvironmentServiceReferenceInput/valid/activate.json +8 -0
  405. package/fixtures/openapi/EnvironmentServiceReferenceInput/valid/explicit-rebind.json +9 -0
  406. package/fixtures/openapi/EnvironmentServiceReferencePage/invalid/global-count.json +14 -0
  407. package/fixtures/openapi/EnvironmentServiceReferencePage/invalid/source-content.json +64 -0
  408. package/fixtures/openapi/EnvironmentServiceReferencePage/invalid/too-many-items.json +813 -0
  409. package/fixtures/openapi/EnvironmentServiceReferencePage/valid/empty.json +3 -0
  410. package/fixtures/openapi/EnvironmentServiceReferencePage/valid/page.json +13 -0
  411. package/fixtures/openapi/EnvironmentServiceReferencePreviewEnvelope/invalid/missing-uid.json +54 -0
  412. package/fixtures/openapi/EnvironmentServiceReferencePreviewEnvelope/invalid/raw-values.json +58 -0
  413. package/fixtures/openapi/EnvironmentServiceReferencePreviewEnvelope/valid/generic-operator.json +55 -0
  414. package/fixtures/openapi/EnvironmentServiceReferencePreviewEnvelope/valid/helm-root.json +41 -0
  415. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/duplicate-targets.json +10 -0
  416. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/empty-targets.json +7 -0
  417. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/invalid-revision.json +7 -0
  418. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/missing-source-cas.json +5 -0
  419. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/null-targets.json +7 -0
  420. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/invalid/unexpected-write.json +7 -0
  421. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/valid/all-source-targets.json +6 -0
  422. package/fixtures/openapi/EnvironmentServiceReferencePreviewInput/valid/explicit-group.json +11 -0
  423. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/invalid/missing-origin.json +40 -0
  424. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/invalid/missing-source-uid.json +48 -0
  425. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/invalid/missing-view.json +40 -0
  426. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/invalid/yaml-is-not-authorized.json +50 -0
  427. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/invalid/zero-reference-revision.json +49 -0
  428. package/fixtures/openapi/EnvironmentServiceReferenceResolvedTarget/valid/consumer-view-source-origin.json +49 -0
  429. package/fixtures/openapi/EnvironmentServiceReferenceSummary/invalid/source-leak.json +9 -0
  430. package/fixtures/openapi/EnvironmentServiceReferenceSummary/invalid/zero-reference-revision.json +8 -0
  431. package/fixtures/openapi/EnvironmentServiceReferenceSummary/valid/consumer-metadata.json +8 -0
  432. package/fixtures/openapi/ExecutionArtifactListEnvelope/invalid/legacy-list-alias.json +4 -0
  433. package/fixtures/openapi/ExecutionArtifactListEnvelope/valid/legacy-list-alias.json +4 -0
  434. package/fixtures/openapi/ExecutionLog/invalid/missing-task.json +6 -0
  435. package/fixtures/openapi/ExecutionLog/valid/nested-metadata.json +16 -0
  436. package/fixtures/openapi/ExecutionLog/valid/row.json +7 -0
  437. package/fixtures/openapi/ExecutionLogListEnvelope/invalid/wrong-wrapper.json +3 -0
  438. package/fixtures/openapi/ExecutionLogListEnvelope/valid/empty.json +3 -0
  439. package/fixtures/openapi/ExecutionTaskActionInput/invalid/reason-type.json +3 -0
  440. package/fixtures/openapi/ExecutionTaskActionInput/invalid/unknown.json +3 -0
  441. package/fixtures/openapi/ExecutionTaskActionInput/valid/empty.json +1 -0
  442. package/fixtures/openapi/ExecutionTaskActionInput/valid/reason.json +3 -0
  443. package/fixtures/openapi/ExecutionTaskControlInput/invalid/missing-action.json +3 -0
  444. package/fixtures/openapi/ExecutionTaskControlInput/invalid/reason-too-long.json +4 -0
  445. package/fixtures/openapi/ExecutionTaskControlInput/invalid/unknown-field.json +4 -0
  446. package/fixtures/openapi/ExecutionTaskControlInput/invalid/unsupported-action.json +3 -0
  447. package/fixtures/openapi/ExecutionTaskControlInput/valid/cancel.json +4 -0
  448. package/fixtures/openapi/ExecutionTaskControlInput/valid/retry.json +3 -0
  449. package/fixtures/openapi/ExecutionTaskControlInput/valid/unicode-reason.json +4 -0
  450. package/fixtures/openapi/ExecutionTaskListEnvelope/invalid/legacy-list-alias.json +4 -0
  451. package/fixtures/openapi/ExecutionTaskListEnvelope/valid/legacy-list-alias.json +4 -0
  452. package/fixtures/openapi/GovernedAITokenBinding/invalid/binding.json +5 -0
  453. package/fixtures/openapi/GovernedAITokenBinding/valid/binding.json +5 -0
  454. package/fixtures/openapi/HealingOriginalRequestEnvelope/invalid/original-request.json +19 -0
  455. package/fixtures/openapi/HealingOriginalRequestEnvelope/valid/original-request.json +18 -0
  456. package/fixtures/openapi/HealingOriginalRequestInput/invalid/original-request.json +5 -0
  457. package/fixtures/openapi/HealingOriginalRequestInput/valid/original-request.json +4 -0
  458. package/fixtures/openapi/HealingOriginalRequestReceipt/invalid/original-request.json +17 -0
  459. package/fixtures/openapi/HealingOriginalRequestReceipt/valid/original-request.json +16 -0
  460. package/fixtures/openapi/HealingOriginalRun/invalid/original-request.json +13 -0
  461. package/fixtures/openapi/HealingOriginalRun/valid/original-request.json +12 -0
  462. package/fixtures/openapi/HelmReleaseImportInput/invalid/explicit-service-id.json +4 -0
  463. package/fixtures/openapi/HelmReleaseImportInput/valid/explicit-service-id.json +4 -0
  464. package/fixtures/openapi/IdentityOutpostClaimRequest/invalid/unsupported-control.json +7 -0
  465. package/fixtures/openapi/IdentityOutpostClaimRequest/valid/control-capable.json +7 -0
  466. package/fixtures/openapi/IdentityOutpostHeartbeatRequest/invalid/control-ack.json +11 -0
  467. package/fixtures/openapi/IdentityOutpostHeartbeatRequest/valid/control-ack.json +11 -0
  468. package/fixtures/openapi/IdentityOutpostHeartbeatRequest/valid/legacy.json +6 -0
  469. package/fixtures/openapi/IdentityOutpostRuntime/invalid/runtime.json +10 -0
  470. package/fixtures/openapi/IdentityOutpostRuntime/valid/observed-zero.json +18 -0
  471. package/fixtures/openapi/IdentityOutpostRuntime/valid/runtime.json +11 -0
  472. package/fixtures/openapi/IdentityOutpostRuntimeBindingInput/invalid/runtime.json +6 -0
  473. package/fixtures/openapi/IdentityOutpostRuntimeBindingInput/valid/runtime.json +5 -0
  474. package/fixtures/openapi/IdentityOutpostRuntimeControl/invalid/runtime.json +12 -0
  475. package/fixtures/openapi/IdentityOutpostRuntimeControl/valid/runtime.json +12 -0
  476. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/invalid/arbitrary-target.json +6 -0
  477. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/invalid/empty-request-id.json +5 -0
  478. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/invalid/negative-generation.json +6 -0
  479. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/invalid/reconcile-replicas.json +6 -0
  480. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/invalid/runtime.json +6 -0
  481. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/valid/reconcile.json +5 -0
  482. package/fixtures/openapi/IdentityOutpostRuntimeControlInput/valid/runtime.json +6 -0
  483. package/fixtures/openapi/IdentityOutpostRuntimeExecutorClaimRequest/invalid/runtime.json +6 -0
  484. package/fixtures/openapi/IdentityOutpostRuntimeExecutorClaimRequest/valid/runtime.json +3 -0
  485. package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/metric-cluster-value-length.json +3 -0
  486. package/fixtures/openapi/KubernetesClusterRegistrationRequest/invalid/metric-cluster-value-type.json +3 -0
  487. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/metric-cluster-alias.json +5 -0
  488. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/metric-cluster-dedicated.json +5 -0
  489. package/fixtures/openapi/KubernetesClusterRegistrationRequest/valid/metric-cluster-reset.json +3 -0
  490. package/fixtures/openapi/KubernetesConditionalResourceYamlInput/invalid/preconditions-v1.json +3 -0
  491. package/fixtures/openapi/KubernetesConditionalResourceYamlInput/valid/preconditions-v1.json +7 -0
  492. package/fixtures/openapi/KubernetesConditionalWorkloadActionInput/invalid/preconditions-v1.json +7 -0
  493. package/fixtures/openapi/KubernetesConditionalWorkloadActionInput/valid/preconditions-v1.json +8 -0
  494. package/fixtures/openapi/KubernetesConditionalWorkloadActionReceipt/invalid/preconditions-v1.json +14 -0
  495. package/fixtures/openapi/KubernetesConditionalWorkloadActionReceipt/valid/preconditions-v1.json +14 -0
  496. package/fixtures/openapi/KubernetesConditionalWorkloadActionReceiptEnvelope/invalid/preconditions-v1.json +16 -0
  497. package/fixtures/openapi/KubernetesConditionalWorkloadActionReceiptEnvelope/valid/preconditions-v1.json +16 -0
  498. package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/invalid/revision-overflow.json +4 -0
  499. package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/valid/legacy.json +3 -0
  500. package/fixtures/openapi/KubernetesHelmReleaseValuesUpdateInput/valid/observed-revision.json +4 -0
  501. package/fixtures/openapi/KubernetesJobDetail/invalid/execution-observation.json +23 -0
  502. package/fixtures/openapi/KubernetesJobDetail/valid/execution-observation.json +23 -0
  503. package/fixtures/openapi/KubernetesNode/invalid/labels.json +10 -0
  504. package/fixtures/openapi/KubernetesNode/valid/labels.json +11 -0
  505. package/fixtures/openapi/KubernetesPodArgvInput/invalid/blank-executable.json +6 -0
  506. package/fixtures/openapi/KubernetesPodArgvInput/invalid/invalid-stdin.json +7 -0
  507. package/fixtures/openapi/KubernetesPodArgvInput/invalid/native-pod-execution-v1.json +4 -0
  508. package/fixtures/openapi/KubernetesPodArgvInput/invalid/nul-argv.json +7 -0
  509. package/fixtures/openapi/KubernetesPodArgvInput/valid/native-pod-execution-v1.json +7 -0
  510. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/empty-argv.json +10 -0
  511. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/missing-key.json +16 -0
  512. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/nested-unknown.json +18 -0
  513. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/timeout.json +17 -0
  514. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/unknown-shell.json +18 -0
  515. package/fixtures/openapi/KubernetesPodArgvToolInput/invalid/wrong-namespace.json +17 -0
  516. package/fixtures/openapi/KubernetesPodArgvToolInput/valid/reviewed-argv.json +17 -0
  517. package/fixtures/openapi/KubernetesPodExecutionLookupInput/invalid/both.json +7 -0
  518. package/fixtures/openapi/KubernetesPodExecutionLookupInput/invalid/empty-key.json +6 -0
  519. package/fixtures/openapi/KubernetesPodExecutionLookupInput/invalid/neither.json +5 -0
  520. package/fixtures/openapi/KubernetesPodExecutionLookupInput/invalid/noncanonical-id.json +6 -0
  521. package/fixtures/openapi/KubernetesPodExecutionLookupInput/invalid/unknown-command.json +11 -0
  522. package/fixtures/openapi/KubernetesPodExecutionLookupInput/valid/by-id.json +6 -0
  523. package/fixtures/openapi/KubernetesPodExecutionLookupInput/valid/by-key.json +6 -0
  524. package/fixtures/openapi/KubernetesPodExecutionOutput/invalid/native-pod-execution-v1.json +15 -0
  525. package/fixtures/openapi/KubernetesPodExecutionOutput/valid/native-pod-execution-v1.json +15 -0
  526. package/fixtures/openapi/KubernetesPodExecutionReceipt/invalid/native-pod-execution-v1.json +29 -0
  527. package/fixtures/openapi/KubernetesPodExecutionReceipt/valid/native-pod-execution-v1.json +29 -0
  528. package/fixtures/openapi/KubernetesPodExecutionReceiptEnvelope/invalid/native-pod-execution-v1.json +1 -0
  529. package/fixtures/openapi/KubernetesPodExecutionReceiptEnvelope/valid/native-pod-execution-v1.json +31 -0
  530. package/fixtures/openapi/KubernetesPodExecutionTarget/invalid/native-pod-execution-v1.json +7 -0
  531. package/fixtures/openapi/KubernetesPodExecutionTarget/valid/native-pod-execution-v1.json +7 -0
  532. package/fixtures/openapi/KubernetesPodGatewayResult/invalid/encoded-output.json +32 -0
  533. package/fixtures/openapi/KubernetesPodGatewayResult/invalid/missing-text.json +17 -0
  534. package/fixtures/openapi/KubernetesPodGatewayResult/invalid/raw-receipt-availability.json +32 -0
  535. package/fixtures/openapi/KubernetesPodGatewayResult/invalid/raw-receipt-output.json +47 -0
  536. package/fixtures/openapi/KubernetesPodGatewayResult/invalid/withheld-text.json +32 -0
  537. package/fixtures/openapi/KubernetesPodGatewayResult/valid/binary-withheld.json +17 -0
  538. package/fixtures/openapi/KubernetesPodGatewayResult/valid/redacted.json +32 -0
  539. package/fixtures/openapi/KubernetesPodGatewayResult/valid/text.json +32 -0
  540. package/fixtures/openapi/KubernetesPodGatewayResult/valid/unavailable.json +17 -0
  541. package/fixtures/openapi/KubernetesPodListEnvelope/invalid/empty-uid.json +13 -0
  542. package/fixtures/openapi/KubernetesPodListEnvelope/invalid/invalid-container-state.json +20 -0
  543. package/fixtures/openapi/KubernetesPodListEnvelope/invalid/missing-container-ready.json +19 -0
  544. package/fixtures/openapi/KubernetesPodListEnvelope/valid/container-statuses.json +67 -0
  545. package/fixtures/openapi/KubernetesPodListEnvelope/valid/running-pod.json +1 -0
  546. package/fixtures/openapi/KubernetesPodTerminalCreated/invalid/terminal.json +21 -0
  547. package/fixtures/openapi/KubernetesPodTerminalCreated/valid/terminal.json +21 -0
  548. package/fixtures/openapi/KubernetesPodTerminalCreatedEnvelope/invalid/terminal.json +3 -0
  549. package/fixtures/openapi/KubernetesPodTerminalCreatedEnvelope/valid/terminal.json +23 -0
  550. package/fixtures/openapi/KubernetesPodTerminalInput/invalid/terminal.json +4 -0
  551. package/fixtures/openapi/KubernetesPodTerminalInput/valid/terminal.json +3 -0
  552. package/fixtures/openapi/KubernetesPodTerminalResult/invalid/terminal.json +8 -0
  553. package/fixtures/openapi/KubernetesPodTerminalResult/valid/terminal.json +8 -0
  554. package/fixtures/openapi/KubernetesPodTerminalSession/invalid/terminal.json +18 -0
  555. package/fixtures/openapi/KubernetesPodTerminalSession/valid/terminal.json +18 -0
  556. package/fixtures/openapi/KubernetesPodTerminalSessionEnvelope/invalid/terminal.json +3 -0
  557. package/fixtures/openapi/KubernetesPodTerminalSessionEnvelope/valid/terminal.json +20 -0
  558. package/fixtures/openapi/KubernetesPrometheusDetail/invalid/metric-cluster-value-type.json +4 -0
  559. package/fixtures/openapi/KubernetesPrometheusDetail/valid/metric-cluster-alias.json +5 -0
  560. package/fixtures/openapi/KubernetesResourceDeletionReceipt/invalid/preconditions-v1.json +11 -0
  561. package/fixtures/openapi/KubernetesResourceDeletionReceipt/valid/preconditions-v1.json +11 -0
  562. package/fixtures/openapi/KubernetesResourceDeletionReceiptEnvelope/invalid/preconditions-v1.json +5 -0
  563. package/fixtures/openapi/KubernetesResourceDeletionReceiptEnvelope/valid/preconditions-v1.json +13 -0
  564. package/fixtures/openapi/KubernetesResourceGraphEnvelope/invalid/network-edge-source-payload.json +73 -0
  565. package/fixtures/openapi/KubernetesResourceGraphEnvelope/valid/network-edge-facts.json +67 -0
  566. package/fixtures/openapi/KubernetesResourceIdentity/invalid/preconditions-v1.json +11 -0
  567. package/fixtures/openapi/KubernetesResourceIdentity/valid/preconditions-v1.json +8 -0
  568. package/fixtures/openapi/KubernetesResourceIdentityEnvelope/invalid/preconditions-v1.json +3 -0
  569. package/fixtures/openapi/KubernetesResourceIdentityEnvelope/valid/preconditions-v1.json +10 -0
  570. package/fixtures/openapi/KubernetesResourceMutationPreconditions/invalid/preconditions-v1.json +3 -0
  571. package/fixtures/openapi/KubernetesResourceMutationPreconditions/valid/preconditions-v1.json +4 -0
  572. package/fixtures/openapi/KubernetesResourcePresence/invalid/absence-with-uid.json +11 -0
  573. package/fixtures/openapi/KubernetesResourcePresence/invalid/missing-collection-version.json +9 -0
  574. package/fixtures/openapi/KubernetesResourcePresence/invalid/missing-state.json +9 -0
  575. package/fixtures/openapi/KubernetesResourcePresence/invalid/old-protocol.json +10 -0
  576. package/fixtures/openapi/KubernetesResourcePresence/invalid/present-without-uid.json +10 -0
  577. package/fixtures/openapi/KubernetesResourcePresence/invalid/unknown-field.json +11 -0
  578. package/fixtures/openapi/KubernetesResourcePresence/valid/absent.json +10 -0
  579. package/fixtures/openapi/KubernetesResourcePresence/valid/present.json +12 -0
  580. package/fixtures/openapi/KubernetesSecretCertificate/invalid/secret-data.json +1 -0
  581. package/fixtures/openapi/KubernetesSecretCertificate/invalid/status.json +1 -0
  582. package/fixtures/openapi/KubernetesSecretCertificate/valid/available.json +1 -0
  583. package/fixtures/openapi/KubernetesSecretCertificate/valid/missing.json +1 -0
  584. package/fixtures/openapi/KubernetesWorkloadImportInput/invalid/explicit-service-id.json +5 -0
  585. package/fixtures/openapi/KubernetesWorkloadImportInput/valid/explicit-service-id.json +7 -0
  586. package/fixtures/openapi/ManifestBindingListEnvelope/invalid/legacy-object.json +4 -0
  587. package/fixtures/openapi/ManifestBindingListEnvelope/valid/empty-alias.json +4 -0
  588. package/fixtures/openapi/ManifestRevision/invalid/missing-files.json +8 -0
  589. package/fixtures/openapi/ManifestRevision/valid/minimal.json +9 -0
  590. package/fixtures/openapi/ManifestRevisionListEnvelope/invalid/legacy-object.json +4 -0
  591. package/fixtures/openapi/ManifestRevisionListEnvelope/valid/legacy-alias.json +24 -0
  592. package/fixtures/openapi/NativeTerminalClientFrame/invalid/terminal.json +12 -0
  593. package/fixtures/openapi/NativeTerminalClientFrame/valid/terminal.json +4 -0
  594. package/fixtures/openapi/NativeTerminalServerFrame/invalid/terminal.json +4 -0
  595. package/fixtures/openapi/NativeTerminalServerFrame/valid/terminal.json +11 -0
  596. package/fixtures/openapi/NetworkConflictAnalysisRequest/invalid/ipv6-range.json +9 -0
  597. package/fixtures/openapi/NetworkEAPServerTrust/invalid/peap.json +10 -0
  598. package/fixtures/openapi/NetworkEAPServerTrust/invalid/tls-inner.json +11 -0
  599. package/fixtures/openapi/NetworkEAPServerTrust/invalid/ttls-incomplete.json +10 -0
  600. package/fixtures/openapi/NetworkEAPServerTrust/valid/ttls.json +12 -0
  601. package/fixtures/openapi/NetworkMihomoProfileInput/invalid/direct-bundle-raw-source.json +21 -0
  602. package/fixtures/openapi/NetworkMihomoProfileInput/invalid/mapped-raw-source.json +21 -0
  603. package/fixtures/openapi/NetworkMihomoProfileInput/valid/direct-bundle.json +19 -0
  604. package/fixtures/openapi/NetworkMihomoProfileInput/valid/mapped-nodes.json +19 -0
  605. package/fixtures/openapi/NetworkProxyBundleInput/invalid/unknown.json +25 -0
  606. package/fixtures/openapi/NetworkProxyBundleInput/valid/basic.json +24 -0
  607. package/fixtures/openapi/NetworkProxyBundleReadback/invalid/missing-identity.json +9 -0
  608. package/fixtures/openapi/NetworkProxyBundleReadback/invalid/unknown-field.json +11 -0
  609. package/fixtures/openapi/NetworkProxyBundleReadback/valid/basic.json +10 -0
  610. package/fixtures/openapi/NetworkProxyCapability/invalid/unknown-version.json +1 -0
  611. package/fixtures/openapi/NetworkProxyCapability/valid/guarded-udp.json +1 -0
  612. package/fixtures/openapi/NetworkProxyDeployment/invalid/negative-observation.json +7 -0
  613. package/fixtures/openapi/NetworkProxyDeployment/invalid/null-observation.json +7 -0
  614. package/fixtures/openapi/NetworkProxyDeployment/valid/positive.json +7 -0
  615. package/fixtures/openapi/NetworkProxyDeployment/valid/stopped.json +7 -0
  616. package/fixtures/openapi/NetworkProxyDeployment/valid/unobserved.json +6 -0
  617. package/fixtures/openapi/NetworkProxyDeploymentControlInput/invalid/unknown.json +7 -0
  618. package/fixtures/openapi/NetworkProxyDeploymentControlInput/valid/basic.json +6 -0
  619. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/invalid/stopped-accepting.json +15 -0
  620. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/invalid/stopped-active.json +15 -0
  621. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/invalid/stopped-missing-count.json +14 -0
  622. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/invalid/stopped-unknown.json +15 -0
  623. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/valid/false-with-active-unknown.json +15 -0
  624. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/valid/omitted-with-active-unknown.json +14 -0
  625. package/fixtures/openapi/NetworkProxyDeploymentRuntimeAck/valid/process-stopped.json +15 -0
  626. package/fixtures/openapi/NetworkProxyDeploymentRuntimeControl/invalid/stop-while-accepting.json +13 -0
  627. package/fixtures/openapi/NetworkProxyDeploymentRuntimeControl/valid/false-can-serve.json +13 -0
  628. package/fixtures/openapi/NetworkProxyDeploymentRuntimeControl/valid/omitted-can-serve.json +12 -0
  629. package/fixtures/openapi/NetworkProxyDeploymentRuntimeControl/valid/stop-required.json +13 -0
  630. package/fixtures/openapi/NetworkProxyDirectProjection/invalid/gateway-credential.json +22 -0
  631. package/fixtures/openapi/NetworkProxyDirectProjection/invalid/original-source-url.json +20 -0
  632. package/fixtures/openapi/NetworkProxyDirectProjection/invalid/protected-projection.json +41 -0
  633. package/fixtures/openapi/NetworkProxyDirectProjection/invalid/wrong-mode.json +19 -0
  634. package/fixtures/openapi/NetworkProxyDirectProjection/valid/explicit-direct.json +19 -0
  635. package/fixtures/openapi/NetworkProxyEmployeeProjection/invalid/direct-upstream-content.json +42 -0
  636. package/fixtures/openapi/NetworkProxyEmployeeProjection/invalid/unsafe-endpoint.json +41 -0
  637. package/fixtures/openapi/NetworkProxyEmployeeProjection/invalid/upstream.json +42 -0
  638. package/fixtures/openapi/NetworkProxyEmployeeProjection/valid/scoped.json +41 -0
  639. package/fixtures/openapi/NetworkProxyIngressCheckInput/invalid/arbitrary-url.json +12 -0
  640. package/fixtures/openapi/NetworkProxyIngressCheckInput/invalid/missing-identity.json +11 -0
  641. package/fixtures/openapi/NetworkProxyIngressCheckInput/invalid/unknown-field.json +13 -0
  642. package/fixtures/openapi/NetworkProxyIngressCheckInput/valid/basic.json +12 -0
  643. package/fixtures/openapi/NetworkProxyIngressCheckResult/invalid/missing-identity.json +8 -0
  644. package/fixtures/openapi/NetworkProxyIngressCheckResult/invalid/unknown-field.json +10 -0
  645. package/fixtures/openapi/NetworkProxyIngressCheckResult/valid/basic.json +9 -0
  646. package/fixtures/openapi/NetworkProxyInstanceInput/invalid/external.json +5 -0
  647. package/fixtures/openapi/NetworkProxyInstanceInput/valid/external.json +15 -0
  648. package/fixtures/openapi/NetworkProxyRule/invalid/unknown.json +15 -0
  649. package/fixtures/openapi/NetworkProxyRule/valid/basic.json +14 -0
  650. package/fixtures/openapi/NetworkProxyRuntimeCommandInput/invalid/unknown.json +8 -0
  651. package/fixtures/openapi/NetworkProxyRuntimeCommandInput/valid/basic.json +7 -0
  652. package/fixtures/openapi/NetworkProxyServerPublication/invalid/arbitrary-listener.json +21 -0
  653. package/fixtures/openapi/NetworkProxyServerPublication/invalid/missing-identity.json +19 -0
  654. package/fixtures/openapi/NetworkProxyServerPublication/invalid/unknown-field.json +21 -0
  655. package/fixtures/openapi/NetworkProxyServerPublication/valid/basic.json +20 -0
  656. package/fixtures/openapi/NetworkProxySourceInput/invalid/node-quota.json +912 -0
  657. package/fixtures/openapi/NetworkProxySourceInput/invalid/unknown.json +8 -0
  658. package/fixtures/openapi/NetworkProxySourceInput/invalid/unsupported-format.json +7 -0
  659. package/fixtures/openapi/NetworkProxySourceInput/invalid/untyped-direct-format.json +7 -0
  660. package/fixtures/openapi/NetworkProxySourceInput/valid/basic.json +7 -0
  661. package/fixtures/openapi/NetworkProxySourceInput/valid/converted-direct.json +7 -0
  662. package/fixtures/openapi/NetworkProxyTrafficSample/invalid/known-as-null.json +10 -0
  663. package/fixtures/openapi/NetworkProxyTrafficSample/valid/gap-rate.json +10 -0
  664. package/fixtures/openapi/NetworkProxyTrafficSample/valid/known-zero.json +10 -0
  665. package/fixtures/openapi/NetworkProxyTrafficSample/valid/legacy-numeric.json +7 -0
  666. package/fixtures/openapi/NetworkProxyTrafficSample/valid/unknown-rate.json +10 -0
  667. package/fixtures/openapi/NetworkRADIUSConfigurationInput/invalid/arbitrary-image.json +6 -0
  668. package/fixtures/openapi/NetworkRADIUSConfigurationInput/valid/input.json +5 -0
  669. package/fixtures/openapi/NetworkRADIUSControlInput/invalid/arbitrary-image.json +8 -0
  670. package/fixtures/openapi/NetworkRADIUSControlInput/valid/input.json +7 -0
  671. package/fixtures/openapi/NetworkRADIUSOptions/invalid/secret.json +18 -0
  672. package/fixtures/openapi/NetworkRADIUSOptions/valid/approved.json +17 -0
  673. package/fixtures/openapi/NetworkRADIUSPoolInput/invalid/arbitrary-image.json +10 -0
  674. package/fixtures/openapi/NetworkRADIUSPoolInput/valid/create-approved-binding.json +9 -0
  675. package/fixtures/openapi/NetworkRADIUSPoolInput/valid/input.json +9 -0
  676. package/fixtures/openapi/NetworkRADIUSRuntimeACK/invalid/missing-zero.json +20 -0
  677. package/fixtures/openapi/NetworkRADIUSRuntimeACK/invalid/secret.json +22 -0
  678. package/fixtures/openapi/NetworkRADIUSRuntimeACK/valid/current.json +21 -0
  679. package/fixtures/openapi/NetworkRADIUSRuntimeACK/valid/stopped-no-hooks.json +21 -0
  680. package/fixtures/openapi/NetworkRADIUSRuntimeControl/invalid/secret.json +30 -0
  681. package/fixtures/openapi/NetworkRADIUSRuntimeControl/valid/current.json +29 -0
  682. package/fixtures/openapi/OperationCommentInput/invalid/workbench.json +4 -0
  683. package/fixtures/openapi/OperationCommentInput/valid/workbench.json +3 -0
  684. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/invalid/legacy-object.json +4 -0
  685. package/fixtures/openapi/PersonalAssistantArtifactListEnvelope/valid/legacy-alias.json +4 -0
  686. package/fixtures/openapi/ReleaseTargetInput/invalid/explicit-service-id.json +8 -0
  687. package/fixtures/openapi/ReleaseTargetInput/valid/explicit-service-id.json +8 -0
  688. package/fixtures/openapi/TokenRotationRecord/invalid/cli-boundary.json +10 -0
  689. package/fixtures/openapi/TokenRotationRecord/valid/cli-boundary.json +9 -0
  690. package/fixtures/openapi/WorkbenchAgentRunListEnvelope/valid/dsh-session.json +18 -0
  691. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/invalid/unicode-request-id.json +4 -0
  692. package/fixtures/openapi/WorkbenchSendMessageStreamRequest/valid/unicode-request-id.json +4 -0
  693. package/fixtures/openapi/WorkbenchStreamEvent/valid/dsh-agent-status.json +11 -0
  694. package/fixtures/openapi/WorkbenchStreamEvent/valid/native-system-notice.json +11 -0
  695. package/fixtures/openapi/WorkflowRequestInput/invalid/original-request.json +6 -0
  696. package/fixtures/openapi/WorkflowRequestInput/valid/original-request.json +7 -0
  697. package/fixtures/openapi/WorkflowRequestReceipt/invalid/original-request.json +6 -0
  698. package/fixtures/openapi/WorkflowRequestReceipt/valid/original-request.json +6 -0
  699. package/fixtures/openapi/WorkflowRequestReceiptEnvelope/invalid/receipt.json +8 -0
  700. package/fixtures/openapi/WorkflowRequestReceiptEnvelope/valid/receipt.json +17 -0
  701. package/fixtures/openapi/WorkflowRunEnvelope/invalid/receipt.json +3 -0
  702. package/fixtures/openapi/WorkflowRunEnvelope/valid/receipt.json +11 -0
  703. package/fixtures/openapi/WorkflowTriggerRequest/invalid/workbench.json +4 -0
  704. package/fixtures/openapi/WorkflowTriggerRequest/valid/workbench.json +9 -0
  705. package/gen/go/sohaapi/client.go +108 -1
  706. package/gen/go/sohaapi/client_test.go +85 -0
  707. package/gen/go/sohaapi/docker_configuration_test.go +32 -0
  708. package/gen/go/sohaapi/kubernetes_workload_optional_test.go +40 -0
  709. package/gen/go/sohaapi/memory_types_test.go +59 -0
  710. package/gen/go/sohaapi/pod_status_compat_test.go +36 -0
  711. package/gen/go/sohaapi/proxy_deployment_presence_test.go +47 -0
  712. package/gen/go/sohaapi/proxy_deployment_stop_test.go +40 -0
  713. package/gen/go/sohaapi/proxy_traffic_test.go +41 -0
  714. package/gen/go/sohaapi/radius_presence_test.go +35 -0
  715. package/gen/go/sohaapi/types.go +6580 -365
  716. package/gen/go/sohaapi/types_test.go +63 -0
  717. package/gen/ts/sohaapi/index.ts +36358 -26252
  718. package/go.mod +5 -2
  719. package/go.sum +8 -0
  720. package/helmrelease/delivery.go +1 -1
  721. package/helmrelease/delivery_test.go +1 -1
  722. package/helmrelease/initialization.go +1 -1
  723. package/helmrelease/result.go +1 -1
  724. package/helmrelease/runtime/delivery.go +4 -4
  725. package/helmrelease/runtime/delivery_test.go +2 -2
  726. package/helmrelease/runtime/initialization.go +2 -2
  727. package/helmrelease/runtime/initialization_test.go +2 -2
  728. package/helmrelease/runtime/values_upgrade.go +78 -0
  729. package/helmrelease/runtime/values_upgrade_test.go +123 -0
  730. package/helmrelease/values.go +1 -1
  731. package/helmrelease/values_update.go +31 -0
  732. package/memory/memory-policy.schema.json +5 -1
  733. package/memory/memory-record.schema.json +5 -1
  734. package/network/README.md +79 -0
  735. package/network/network-ingest-event.schema.json +4 -1
  736. package/network/network-runtime-protocol.schema.json +381 -20
  737. package/network/proxy-adapter.schema.json +1018 -0
  738. package/network/proxy-runtime.schema.json +1732 -16
  739. package/network/radius-password-verifier.schema.json +263 -0
  740. package/network/radius-runtime.schema.json +929 -0
  741. package/network/schema.go +12 -0
  742. package/openapi/soha-api.json +70695 -49969
  743. package/openapi/soha-api.yaml +39327 -27176
  744. package/openapi/spec_generated.go +3 -3
  745. package/package.json +19 -6
  746. package/proxyadapter/mihomo_udp.go +15 -0
  747. package/proxyadapter/mihomo_udp_test.go +21 -0
  748. package/proxyadapter/protocol.go +286 -0
  749. package/proxyadapter/protocol_test.go +76 -0
  750. package/proxypolicy/destination_test.go +48 -0
  751. package/proxypolicy/narrow.go +152 -0
  752. package/proxypolicy/narrow_test.go +138 -0
  753. package/proxypolicy/policy.go +329 -0
  754. package/proxypolicy/policy_test.go +36 -0
  755. package/proxytransport/README.md +141 -0
  756. package/proxytransport/handler.go +5 -1
  757. package/proxytransport/native_egress_test.go +236 -0
  758. package/proxytransport/probe.go +5 -1
  759. package/proxytransport/probe_test.go +106 -0
  760. package/proxytransport/refresh_test.go +74 -0
  761. package/proxytransport/scope.go +23 -3
  762. package/proxytransport/socks_upstream.go +440 -0
  763. package/proxytransport/socks_upstream_test.go +368 -0
  764. package/proxytransport/udp_conn.go +234 -0
  765. package/proxytransport/udp_gate.go +521 -0
  766. package/proxytransport/udp_http.go +372 -0
  767. package/proxytransport/udp_socks.go +288 -0
  768. package/proxytransport/udp_test.go +793 -0
  769. package/proxytransport/username.go +51 -0
  770. package/proxytransport/username_test.go +98 -0
  771. package/resource/agent_profiles.go +9 -15
  772. package/resource/agent_profiles_test.go +9 -3
  773. package/resource/conditional_workload_action.go +63 -0
  774. package/resource/custom_graph_page.go +18 -0
  775. package/resource/models.go +102 -57
  776. package/resource/mutation_preconditions.go +67 -0
  777. package/resource/network_topology.go +22 -0
  778. package/resource/network_topology_projection.go +36 -22
  779. package/resource/network_topology_projection_test.go +4 -0
  780. package/resource/network_topology_test.go +20 -0
  781. package/resource/network_topology_validation.go +5 -0
  782. package/resource/observed_workload.go +18 -0
  783. package/resource/pod_execution.go +206 -0
  784. package/resource/pod_execution_gateway.go +119 -0
  785. package/resource/pod_execution_gateway_test.go +149 -0
  786. package/resource/pod_execution_test.go +48 -0
  787. package/resource/pod_status_test.go +22 -0
  788. package/resource/pod_terminal.go +188 -0
  789. package/resource/pod_terminal_test.go +63 -0
  790. package/resource/presence.go +60 -0
  791. package/resource/presence_test.go +28 -0
  792. package/resource/rbac_graph.go +4 -0
  793. package/resource/rollout_optional_test.go +33 -0
  794. package/resource/root_cr.go +1 -1
  795. package/resource/runtime/argocd_observation.go +1 -1
  796. package/resource/runtime/conditional_workload_action.go +141 -0
  797. package/resource/runtime/conditional_workload_action_test.go +259 -0
  798. package/resource/runtime/health.go +1 -1
  799. package/resource/runtime/health_test.go +1 -1
  800. package/resource/runtime/initialization.go +1 -1
  801. package/resource/runtime/initialization_test.go +1 -1
  802. package/resource/runtime/mutation_preconditions.go +106 -0
  803. package/resource/runtime/mutation_preconditions_test.go +172 -0
  804. package/resource/runtime/network_relationship_primitives.go +66 -0
  805. package/resource/runtime/network_relationship_primitives_test.go +147 -0
  806. package/resource/runtime/network_topology.go +18 -6
  807. package/resource/runtime/network_topology_builder.go +405 -0
  808. package/resource/runtime/network_topology_builder_backends.go +195 -0
  809. package/resource/runtime/network_topology_builder_gateway_l4_test.go +86 -0
  810. package/resource/runtime/network_topology_builder_ingress.go +302 -0
  811. package/resource/runtime/network_topology_builder_legacy.go +66 -0
  812. package/resource/runtime/network_topology_builder_providers.go +242 -0
  813. package/resource/runtime/network_topology_builder_test.go +186 -0
  814. package/resource/runtime/network_topology_declarations.go +329 -0
  815. package/resource/runtime/network_topology_test.go +1 -1
  816. package/resource/runtime/node_drain.go +1 -1
  817. package/resource/runtime/node_drain_test.go +1 -1
  818. package/resource/runtime/pod_execution.go +199 -0
  819. package/resource/runtime/pod_execution_test.go +194 -0
  820. package/resource/runtime/pod_execution_transport.go +79 -0
  821. package/resource/runtime/pod_terminal.go +178 -0
  822. package/resource/runtime/pod_terminal_test.go +170 -0
  823. package/resource/runtime/presence.go +58 -0
  824. package/resource/runtime/presence_metadata.go +85 -0
  825. package/resource/runtime/presence_metadata_test.go +56 -0
  826. package/resource/runtime/presence_test.go +85 -0
  827. package/resource/runtime/relations.go +1 -1
  828. package/resource/runtime/relations_test.go +1 -1
  829. package/resource/runtime/resource_edit.go +22 -0
  830. package/resource/runtime/resource_edit_test.go +32 -0
  831. package/resource/runtime/resource_graph_collect.go +325 -0
  832. package/resource/runtime/resource_graph_configuration.go +59 -0
  833. package/resource/runtime/resource_graph_configuration_collect.go +198 -0
  834. package/resource/runtime/resource_graph_configuration_test.go +470 -0
  835. package/resource/runtime/resource_graph_custom_page.go +159 -0
  836. package/resource/runtime/resource_graph_custom_root.go +132 -0
  837. package/resource/runtime/resource_graph_custom_root_test.go +197 -0
  838. package/resource/runtime/resource_graph_enrichment.go +417 -0
  839. package/resource/runtime/resource_graph_enrichment_hpa_test.go +117 -0
  840. package/resource/runtime/resource_graph_enrichment_test.go +201 -0
  841. package/resource/runtime/resource_graph_metadata.go +125 -0
  842. package/resource/runtime/resource_graph_metadata_test.go +204 -0
  843. package/resource/runtime/resource_graph_network.go +224 -0
  844. package/resource/runtime/resource_graph_network_collect.go +174 -0
  845. package/resource/runtime/resource_graph_network_collect_test.go +147 -0
  846. package/resource/runtime/resource_graph_network_test.go +342 -0
  847. package/resource/runtime/resource_graph_rbac.go +278 -0
  848. package/resource/runtime/resource_graph_rbac_test.go +372 -0
  849. package/resource/runtime/resource_graph_rules.go +834 -0
  850. package/resource/runtime/resource_graph_storage.go +144 -0
  851. package/resource/runtime/resource_graph_storage_collect.go +163 -0
  852. package/resource/runtime/resource_graph_storage_test.go +397 -0
  853. package/resource/runtime/resource_graph_test.go +627 -0
  854. package/resource/runtime/resource_monitoring.go +1 -1
  855. package/resource/runtime/rollout_integration_test.go +1 -1
  856. package/resource/runtime/rollout_observation.go +1 -1
  857. package/resource/runtime/rollout_operation.go +1 -1
  858. package/resource/runtime/rollout_task.go +2 -2
  859. package/resource/runtime/rollout_test.go +1 -1
  860. package/resource/runtime/root_cr.go +2 -2
  861. package/resource/runtime/root_cr_test.go +1 -1
  862. package/resource/runtime/secret_certificate.go +44 -0
  863. package/resource/runtime/secret_certificate_test.go +87 -0
  864. package/resource/storage_graph.go +4 -0
  865. package/resource/terminal_options.go +38 -0
  866. package/resource/terminalstream/stream.go +481 -0
  867. package/resource/terminalstream/stream_test.go +277 -0
  868. package/runner/docker-container-identity.schema.json +37 -0
  869. package/runner/docker-project-identity.schema.json +39 -0
  870. package/runner/docker-runtime-read-result.schema.json +317 -0
  871. package/runner/docker-runtime-read.schema.json +85 -0
@@ -26,7 +26,16 @@
26
26
  "observation",
27
27
  "connections.snapshot",
28
28
  "connection.close.request",
29
- "connection.close.result"
29
+ "connection.close.result",
30
+ "command.request",
31
+ "command.result",
32
+ "projection.desired",
33
+ "projection.applied",
34
+ "deployment.control",
35
+ "deployment.ack",
36
+ "publication.ready",
37
+ "ingress.check",
38
+ "ingress.check.result"
30
39
  ]
31
40
  },
32
41
  "occurredAt": {
@@ -52,6 +61,33 @@
52
61
  },
53
62
  {
54
63
  "$ref": "#/$defs/ConnectionCloseResult"
64
+ },
65
+ {
66
+ "$ref": "#/$defs/RuntimeCommandInput"
67
+ },
68
+ {
69
+ "$ref": "#/$defs/RuntimeCommandReceipt"
70
+ },
71
+ {
72
+ "$ref": "#/$defs/EmployeeProjection"
73
+ },
74
+ {
75
+ "$ref": "#/$defs/ProjectionApplied"
76
+ },
77
+ {
78
+ "$ref": "#/$defs/DeploymentRuntimeControl"
79
+ },
80
+ {
81
+ "$ref": "#/$defs/DeploymentRuntimeAck"
82
+ },
83
+ {
84
+ "$ref": "#/$defs/BundleReadback"
85
+ },
86
+ {
87
+ "$ref": "#/$defs/IngressCheckInput"
88
+ },
89
+ {
90
+ "$ref": "#/$defs/IngressCheckResult"
55
91
  }
56
92
  ]
57
93
  }
@@ -170,6 +206,177 @@
170
206
  }
171
207
  }
172
208
  }
209
+ },
210
+ {
211
+ "if": {
212
+ "properties": {
213
+ "messageType": {
214
+ "const": "command.request"
215
+ }
216
+ },
217
+ "required": [
218
+ "messageType"
219
+ ]
220
+ },
221
+ "then": {
222
+ "properties": {
223
+ "payload": {
224
+ "$ref": "#/$defs/RuntimeCommandInput"
225
+ }
226
+ }
227
+ }
228
+ },
229
+ {
230
+ "if": {
231
+ "properties": {
232
+ "messageType": {
233
+ "const": "command.result"
234
+ }
235
+ },
236
+ "required": [
237
+ "messageType"
238
+ ]
239
+ },
240
+ "then": {
241
+ "properties": {
242
+ "payload": {
243
+ "$ref": "#/$defs/RuntimeCommandReceipt"
244
+ }
245
+ }
246
+ }
247
+ },
248
+ {
249
+ "if": {
250
+ "properties": {
251
+ "messageType": {
252
+ "const": "projection.desired"
253
+ }
254
+ },
255
+ "required": [
256
+ "messageType"
257
+ ]
258
+ },
259
+ "then": {
260
+ "properties": {
261
+ "payload": {
262
+ "$ref": "#/$defs/EmployeeProjection"
263
+ }
264
+ }
265
+ }
266
+ },
267
+ {
268
+ "if": {
269
+ "properties": {
270
+ "messageType": {
271
+ "const": "projection.applied"
272
+ }
273
+ },
274
+ "required": [
275
+ "messageType"
276
+ ]
277
+ },
278
+ "then": {
279
+ "properties": {
280
+ "payload": {
281
+ "$ref": "#/$defs/ProjectionApplied"
282
+ }
283
+ }
284
+ }
285
+ },
286
+ {
287
+ "if": {
288
+ "properties": {
289
+ "messageType": {
290
+ "const": "deployment.control"
291
+ }
292
+ },
293
+ "required": [
294
+ "messageType"
295
+ ]
296
+ },
297
+ "then": {
298
+ "properties": {
299
+ "payload": {
300
+ "$ref": "#/$defs/DeploymentRuntimeControl"
301
+ }
302
+ }
303
+ }
304
+ },
305
+ {
306
+ "if": {
307
+ "properties": {
308
+ "messageType": {
309
+ "const": "deployment.ack"
310
+ }
311
+ },
312
+ "required": [
313
+ "messageType"
314
+ ]
315
+ },
316
+ "then": {
317
+ "properties": {
318
+ "payload": {
319
+ "$ref": "#/$defs/DeploymentRuntimeAck"
320
+ }
321
+ }
322
+ }
323
+ },
324
+ {
325
+ "if": {
326
+ "properties": {
327
+ "messageType": {
328
+ "const": "publication.ready"
329
+ }
330
+ },
331
+ "required": [
332
+ "messageType"
333
+ ]
334
+ },
335
+ "then": {
336
+ "properties": {
337
+ "payload": {
338
+ "$ref": "#/$defs/BundleReadback"
339
+ }
340
+ }
341
+ }
342
+ },
343
+ {
344
+ "if": {
345
+ "properties": {
346
+ "messageType": {
347
+ "const": "ingress.check"
348
+ }
349
+ },
350
+ "required": [
351
+ "messageType"
352
+ ]
353
+ },
354
+ "then": {
355
+ "properties": {
356
+ "payload": {
357
+ "$ref": "#/$defs/IngressCheckInput"
358
+ }
359
+ }
360
+ }
361
+ },
362
+ {
363
+ "if": {
364
+ "properties": {
365
+ "messageType": {
366
+ "const": "ingress.check.result"
367
+ }
368
+ },
369
+ "required": [
370
+ "messageType"
371
+ ]
372
+ },
373
+ "then": {
374
+ "properties": {
375
+ "payload": {
376
+ "$ref": "#/$defs/IngressCheckResult"
377
+ }
378
+ }
379
+ }
173
380
  }
174
381
  ],
175
382
  "$defs": {
@@ -183,7 +390,8 @@
183
390
  "enum": [
184
391
  "mihomo",
185
392
  "sing-box",
186
- "v2ray"
393
+ "v2ray",
394
+ "external"
187
395
  ]
188
396
  },
189
397
  "Hash": {
@@ -230,8 +438,33 @@
230
438
  },
231
439
  "protection": {
232
440
  "$ref": "#/$defs/Protection"
441
+ },
442
+ "engineDescriptor": {
443
+ "$ref": "#/$defs/EngineDescriptor"
444
+ },
445
+ "publication": {
446
+ "$ref": "#/$defs/ServerPublication"
233
447
  }
234
- }
448
+ },
449
+ "allOf": [
450
+ {
451
+ "if": {
452
+ "properties": {
453
+ "engine": {
454
+ "const": "external"
455
+ }
456
+ },
457
+ "required": [
458
+ "engine"
459
+ ]
460
+ },
461
+ "then": {
462
+ "required": [
463
+ "engineDescriptor"
464
+ ]
465
+ }
466
+ }
467
+ ]
235
468
  },
236
469
  "ConfigurationApplied": {
237
470
  "type": "object",
@@ -260,6 +493,12 @@
260
493
  "type": "string",
261
494
  "minLength": 1,
262
495
  "maxLength": 128
496
+ },
497
+ "processEpoch": {
498
+ "type": "string",
499
+ "minLength": 1,
500
+ "maxLength": 128,
501
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
263
502
  }
264
503
  }
265
504
  },
@@ -293,7 +532,7 @@
293
532
  },
294
533
  "capabilities": {
295
534
  "type": "array",
296
- "maxItems": 6,
535
+ "maxItems": 64,
297
536
  "uniqueItems": true,
298
537
  "items": {
299
538
  "enum": [
@@ -302,9 +541,19 @@
302
541
  "close_connection",
303
542
  "protected_destinations_v1",
304
543
  "protection_rules_readback",
305
- "guarded_dns_tcp_v1"
544
+ "guarded_dns_tcp_v1",
545
+ "groups",
546
+ "select",
547
+ "probe",
548
+ "refresh",
549
+ "rules",
550
+ "dns",
551
+ "logs",
552
+ "diagnostics",
553
+ "guarded_udp_v1"
306
554
  ]
307
- }
555
+ },
556
+ "description": "Advertise guarded_udp_v1 only after the real bounded datagram gate/transport/owned backend and current authorization enforcement are installed and verified; individual upstream protocols may remain TCP-only."
308
557
  },
309
558
  "reasonCode": {
310
559
  "type": "string",
@@ -318,19 +567,52 @@
318
567
  "uploadTotal": {
319
568
  "type": "integer",
320
569
  "minimum": 0,
321
- "maximum": 9223372036854775807
570
+ "maximum": 9223372036854776000
322
571
  },
323
572
  "downloadTotal": {
324
573
  "type": "integer",
325
574
  "minimum": 0,
326
- "maximum": 9223372036854775807
575
+ "maximum": 9223372036854776000
327
576
  },
328
577
  "activeConnections": {
329
578
  "type": "integer",
330
579
  "minimum": 0,
331
580
  "maximum": 1000000
581
+ },
582
+ "engineDescriptor": {
583
+ "$ref": "#/$defs/EngineDescriptor"
584
+ },
585
+ "processEpoch": {
586
+ "type": "string",
587
+ "minLength": 1,
588
+ "maxLength": 128,
589
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
590
+ },
591
+ "sampleSequence": {
592
+ "type": "integer",
593
+ "format": "int64",
594
+ "minimum": 0
332
595
  }
333
- }
596
+ },
597
+ "allOf": [
598
+ {
599
+ "if": {
600
+ "properties": {
601
+ "engine": {
602
+ "const": "external"
603
+ }
604
+ },
605
+ "required": [
606
+ "engine"
607
+ ]
608
+ },
609
+ "then": {
610
+ "required": [
611
+ "engineDescriptor"
612
+ ]
613
+ }
614
+ }
615
+ ]
334
616
  },
335
617
  "Connection": {
336
618
  "type": "object",
@@ -383,7 +665,8 @@
383
665
  "engine": {
384
666
  "enum": [
385
667
  "mihomo",
386
- "sing-box"
668
+ "sing-box",
669
+ "external"
387
670
  ]
388
671
  },
389
672
  "connections": {
@@ -392,6 +675,37 @@
392
675
  "items": {
393
676
  "$ref": "#/$defs/Connection"
394
677
  }
678
+ },
679
+ "processEpoch": {
680
+ "type": "string",
681
+ "minLength": 1,
682
+ "maxLength": 128,
683
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
684
+ },
685
+ "sampleSequence": {
686
+ "type": "integer",
687
+ "format": "int64",
688
+ "minimum": 0
689
+ },
690
+ "totalActive": {
691
+ "type": "integer",
692
+ "format": "int64",
693
+ "minimum": 0
694
+ },
695
+ "returnedCount": {
696
+ "type": "integer",
697
+ "format": "int64",
698
+ "minimum": 0
699
+ },
700
+ "truncated": {
701
+ "type": "boolean"
702
+ },
703
+ "freshness": {
704
+ "enum": [
705
+ "fresh",
706
+ "stale",
707
+ "unavailable"
708
+ ]
395
709
  }
396
710
  }
397
711
  },
@@ -413,6 +727,16 @@
413
727
  "expiresAt": {
414
728
  "type": "string",
415
729
  "format": "date-time"
730
+ },
731
+ "processEpoch": {
732
+ "type": "string",
733
+ "minLength": 1,
734
+ "maxLength": 128,
735
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
736
+ },
737
+ "issuedAt": {
738
+ "type": "string",
739
+ "format": "date-time"
416
740
  }
417
741
  }
418
742
  },
@@ -438,6 +762,12 @@
438
762
  "type": "string",
439
763
  "minLength": 1,
440
764
  "maxLength": 128
765
+ },
766
+ "processEpoch": {
767
+ "type": "string",
768
+ "minLength": 1,
769
+ "maxLength": 128,
770
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
441
771
  }
442
772
  }
443
773
  },
@@ -512,17 +842,1403 @@
512
842
  }
513
843
  }
514
844
  },
515
- "IPv4CIDR": {
516
- "type": "string",
517
- "maxLength": 18,
518
- "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])/(?:[0-9]|[12][0-9]|3[0-2])$",
519
- "description": "Canonical IPv4 CIDR; use IPCIDR for either supported address family."
520
- },
521
845
  "IPCIDR": {
522
846
  "type": "string",
523
847
  "maxLength": 64,
524
848
  "pattern": "^(?:(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])/(?:[1-9]|[12][0-9]|3[0-2])|(?:(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){7}(?:0|[1-9a-f][0-9a-f]{0,3})|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,7}:|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,6}:(?:0|[1-9a-f][0-9a-f]{0,3})|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,5}(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,2}|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,4}(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,3}|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,3}(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,4}|(?:(?:0|[1-9a-f][0-9a-f]{0,3}):){1,2}(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,5}|(?:0|[1-9a-f][0-9a-f]{0,3}):(?:(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,6})|:(?:(?::(?:0|[1-9a-f][0-9a-f]{0,3})){1,7}|:))/(?:[1-9]|[1-9][0-9]|1[01][0-9]|12[0-8]))$",
525
849
  "description": "Non-default IPv4 or IPv6 CIDR syntax. Core additionally validates canonical network-address bits and compressed address spelling with netip."
850
+ },
851
+ "EngineDescriptor": {
852
+ "type": "object",
853
+ "additionalProperties": false,
854
+ "required": [
855
+ "engineId",
856
+ "adapterId",
857
+ "version",
858
+ "protocolMajor",
859
+ "protocolMinor",
860
+ "capabilities"
861
+ ],
862
+ "properties": {
863
+ "engineId": {
864
+ "type": "string",
865
+ "minLength": 1,
866
+ "maxLength": 64,
867
+ "pattern": "^[a-z][a-z0-9.-]*$"
868
+ },
869
+ "adapterId": {
870
+ "type": "string",
871
+ "minLength": 1,
872
+ "maxLength": 64,
873
+ "pattern": "^[a-z][a-z0-9.-]*$"
874
+ },
875
+ "version": {
876
+ "type": "string",
877
+ "minLength": 1,
878
+ "maxLength": 64
879
+ },
880
+ "protocolMajor": {
881
+ "type": "integer",
882
+ "enum": [
883
+ 1
884
+ ]
885
+ },
886
+ "protocolMinor": {
887
+ "type": "integer",
888
+ "enum": [
889
+ 0
890
+ ]
891
+ },
892
+ "capabilities": {
893
+ "type": "array",
894
+ "maxItems": 64,
895
+ "items": {
896
+ "type": "string",
897
+ "minLength": 1,
898
+ "maxLength": 64
899
+ }
900
+ }
901
+ }
902
+ },
903
+ "Group": {
904
+ "type": "object",
905
+ "additionalProperties": false,
906
+ "required": [
907
+ "groupId",
908
+ "label",
909
+ "type",
910
+ "nodeIds"
911
+ ],
912
+ "properties": {
913
+ "groupId": {
914
+ "type": "string",
915
+ "minLength": 1,
916
+ "maxLength": 128,
917
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
918
+ },
919
+ "label": {
920
+ "type": "string",
921
+ "minLength": 1,
922
+ "maxLength": 128
923
+ },
924
+ "type": {
925
+ "type": "string",
926
+ "enum": [
927
+ "select",
928
+ "url_test",
929
+ "fallback",
930
+ "load_balance"
931
+ ]
932
+ },
933
+ "nodeIds": {
934
+ "type": "array",
935
+ "maxItems": 128,
936
+ "items": {
937
+ "type": "string",
938
+ "minLength": 1,
939
+ "maxLength": 128,
940
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
941
+ }
942
+ },
943
+ "selectedNodeId": {
944
+ "type": "string",
945
+ "minLength": 1,
946
+ "maxLength": 128,
947
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
948
+ }
949
+ }
950
+ },
951
+ "RuleMatcher": {
952
+ "type": "object",
953
+ "additionalProperties": false,
954
+ "required": [
955
+ "type"
956
+ ],
957
+ "properties": {
958
+ "type": {
959
+ "type": "string",
960
+ "enum": [
961
+ "domain",
962
+ "domain_suffix",
963
+ "cidr",
964
+ "process_name",
965
+ "process_path",
966
+ "all"
967
+ ]
968
+ },
969
+ "value": {
970
+ "type": "string",
971
+ "minLength": 1,
972
+ "maxLength": 1024
973
+ }
974
+ },
975
+ "description": "domain is case insensitive exact; domain_suffix matches label boundaries; cidr canonical netip prefix; process matching is local only, never trusted server-mandatory input. all has no value.",
976
+ "oneOf": [
977
+ {
978
+ "properties": {
979
+ "type": {
980
+ "enum": [
981
+ "all"
982
+ ]
983
+ }
984
+ },
985
+ "not": {
986
+ "required": [
987
+ "value"
988
+ ]
989
+ }
990
+ },
991
+ {
992
+ "properties": {
993
+ "type": {
994
+ "enum": [
995
+ "domain",
996
+ "domain_suffix",
997
+ "cidr",
998
+ "process_name",
999
+ "process_path"
1000
+ ]
1001
+ }
1002
+ },
1003
+ "required": [
1004
+ "value"
1005
+ ]
1006
+ }
1007
+ ]
1008
+ },
1009
+ "RuleAction": {
1010
+ "type": "object",
1011
+ "additionalProperties": false,
1012
+ "required": [
1013
+ "type"
1014
+ ],
1015
+ "properties": {
1016
+ "type": {
1017
+ "type": "string",
1018
+ "enum": [
1019
+ "reject",
1020
+ "direct",
1021
+ "node",
1022
+ "group"
1023
+ ]
1024
+ },
1025
+ "targetId": {
1026
+ "type": "string",
1027
+ "minLength": 1,
1028
+ "maxLength": 128,
1029
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1030
+ }
1031
+ },
1032
+ "description": "node/group require a logical targetId; reject/direct forbid targetId. ProtectedSet reject always wins.",
1033
+ "oneOf": [
1034
+ {
1035
+ "properties": {
1036
+ "type": {
1037
+ "enum": [
1038
+ "reject",
1039
+ "direct"
1040
+ ]
1041
+ }
1042
+ },
1043
+ "not": {
1044
+ "required": [
1045
+ "targetId"
1046
+ ]
1047
+ }
1048
+ },
1049
+ {
1050
+ "properties": {
1051
+ "type": {
1052
+ "enum": [
1053
+ "node",
1054
+ "group"
1055
+ ]
1056
+ }
1057
+ },
1058
+ "required": [
1059
+ "targetId"
1060
+ ]
1061
+ }
1062
+ ]
1063
+ },
1064
+ "Rule": {
1065
+ "type": "object",
1066
+ "additionalProperties": false,
1067
+ "required": [
1068
+ "ruleId",
1069
+ "source",
1070
+ "order",
1071
+ "enabled",
1072
+ "matcher",
1073
+ "action"
1074
+ ],
1075
+ "properties": {
1076
+ "ruleId": {
1077
+ "type": "string",
1078
+ "minLength": 1,
1079
+ "maxLength": 128,
1080
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1081
+ },
1082
+ "source": {
1083
+ "type": "string",
1084
+ "enum": [
1085
+ "protection",
1086
+ "organization_required",
1087
+ "personal",
1088
+ "organization_default",
1089
+ "fallback"
1090
+ ]
1091
+ },
1092
+ "order": {
1093
+ "type": "integer",
1094
+ "format": "int64",
1095
+ "minimum": 0
1096
+ },
1097
+ "enabled": {
1098
+ "type": "boolean"
1099
+ },
1100
+ "matcher": {
1101
+ "$ref": "#/$defs/RuleMatcher"
1102
+ },
1103
+ "action": {
1104
+ "$ref": "#/$defs/RuleAction"
1105
+ }
1106
+ }
1107
+ },
1108
+ "EmployeeNode": {
1109
+ "type": "object",
1110
+ "additionalProperties": false,
1111
+ "required": [
1112
+ "nodeId",
1113
+ "label",
1114
+ "endpointId"
1115
+ ],
1116
+ "properties": {
1117
+ "nodeId": {
1118
+ "type": "string",
1119
+ "minLength": 1,
1120
+ "maxLength": 128,
1121
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1122
+ },
1123
+ "label": {
1124
+ "type": "string",
1125
+ "minLength": 1,
1126
+ "maxLength": 128
1127
+ },
1128
+ "endpointId": {
1129
+ "type": "string",
1130
+ "minLength": 1,
1131
+ "maxLength": 128,
1132
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1133
+ }
1134
+ }
1135
+ },
1136
+ "EmployeeEndpoint": {
1137
+ "type": "object",
1138
+ "additionalProperties": false,
1139
+ "required": [
1140
+ "endpointId",
1141
+ "url"
1142
+ ],
1143
+ "properties": {
1144
+ "endpointId": {
1145
+ "type": "string",
1146
+ "minLength": 1,
1147
+ "maxLength": 128,
1148
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1149
+ },
1150
+ "url": {
1151
+ "type": "string",
1152
+ "minLength": 1,
1153
+ "maxLength": 2048,
1154
+ "pattern": "^https://[^/@?#]+(?::[0-9]+)?(?:/[^?#]*)?$"
1155
+ }
1156
+ },
1157
+ "description": "Operator approved internal endpoint; validate against approved endpoint set before delivery. HTTP CONNECT supports TCP only."
1158
+ },
1159
+ "EmployeeCredential": {
1160
+ "type": "object",
1161
+ "additionalProperties": false,
1162
+ "required": [
1163
+ "credentialId",
1164
+ "userId",
1165
+ "deviceId",
1166
+ "nodeIds",
1167
+ "credentialEpoch",
1168
+ "secret",
1169
+ "expiresAt"
1170
+ ],
1171
+ "properties": {
1172
+ "credentialId": {
1173
+ "type": "string",
1174
+ "minLength": 1,
1175
+ "maxLength": 128,
1176
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1177
+ },
1178
+ "userId": {
1179
+ "type": "string",
1180
+ "minLength": 1,
1181
+ "maxLength": 128,
1182
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1183
+ },
1184
+ "deviceId": {
1185
+ "type": "string",
1186
+ "minLength": 1,
1187
+ "maxLength": 128,
1188
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1189
+ },
1190
+ "nodeIds": {
1191
+ "type": "array",
1192
+ "maxItems": 128,
1193
+ "items": {
1194
+ "type": "string",
1195
+ "minLength": 1,
1196
+ "maxLength": 128,
1197
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1198
+ }
1199
+ },
1200
+ "credentialEpoch": {
1201
+ "type": "integer",
1202
+ "format": "int64",
1203
+ "minimum": 0
1204
+ },
1205
+ "secret": {
1206
+ "type": "string",
1207
+ "minLength": 1,
1208
+ "maxLength": 4096,
1209
+ "format": "password"
1210
+ },
1211
+ "expiresAt": {
1212
+ "type": "string",
1213
+ "format": "date-time"
1214
+ }
1215
+ },
1216
+ "description": "Only delivered through scoped device mTLS channel with private/no-store caching; never administrator list/read response."
1217
+ },
1218
+ "EmployeeProjection": {
1219
+ "type": "object",
1220
+ "additionalProperties": false,
1221
+ "required": [
1222
+ "schemaVersion",
1223
+ "runtimeId",
1224
+ "profileId",
1225
+ "bundleId",
1226
+ "revision",
1227
+ "sourceRevision",
1228
+ "orgRevision",
1229
+ "activeRevision",
1230
+ "projectionHash",
1231
+ "deliveryMode",
1232
+ "processEpoch",
1233
+ "credentialEpoch",
1234
+ "expiresAt",
1235
+ "nodes",
1236
+ "groups",
1237
+ "endpoints",
1238
+ "credential",
1239
+ "rules"
1240
+ ],
1241
+ "properties": {
1242
+ "schemaVersion": {
1243
+ "type": "string",
1244
+ "enum": [
1245
+ "proxy-projection/v1"
1246
+ ],
1247
+ "x-enum-varnames": [
1248
+ "NetworkProxyEmployeeProjectionSchemaVersionProxyProjectionV1"
1249
+ ]
1250
+ },
1251
+ "runtimeId": {
1252
+ "type": "string",
1253
+ "minLength": 1,
1254
+ "maxLength": 128,
1255
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1256
+ },
1257
+ "profileId": {
1258
+ "type": "string",
1259
+ "minLength": 1,
1260
+ "maxLength": 128,
1261
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1262
+ },
1263
+ "bundleId": {
1264
+ "type": "string",
1265
+ "minLength": 1,
1266
+ "maxLength": 128,
1267
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1268
+ },
1269
+ "revision": {
1270
+ "type": "integer",
1271
+ "format": "int64",
1272
+ "minimum": 0
1273
+ },
1274
+ "sourceRevision": {
1275
+ "type": "integer",
1276
+ "format": "int64",
1277
+ "minimum": 0
1278
+ },
1279
+ "orgRevision": {
1280
+ "type": "integer",
1281
+ "format": "int64",
1282
+ "minimum": 0
1283
+ },
1284
+ "activeRevision": {
1285
+ "type": "integer",
1286
+ "format": "int64",
1287
+ "minimum": 0
1288
+ },
1289
+ "projectionHash": {
1290
+ "type": "string",
1291
+ "pattern": "^sha256:[a-f0-9]{64}$"
1292
+ },
1293
+ "deliveryMode": {
1294
+ "type": "string",
1295
+ "enum": [
1296
+ "mapped_nodes",
1297
+ "gateway"
1298
+ ],
1299
+ "x-enum-varnames": [
1300
+ "NetworkProxyEmployeeProjectionDeliveryModeMappedNodes",
1301
+ "NetworkProxyEmployeeProjectionDeliveryModeGateway"
1302
+ ]
1303
+ },
1304
+ "processEpoch": {
1305
+ "type": "string",
1306
+ "minLength": 1,
1307
+ "maxLength": 128,
1308
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
1309
+ "description": "Endpoint-service boot nonce bound to the endpoint credential; not the epoch of an HA proxy server. The profile-scoped projection receipt must echo this exact nonce."
1310
+ },
1311
+ "credentialEpoch": {
1312
+ "type": "integer",
1313
+ "format": "int64",
1314
+ "minimum": 0
1315
+ },
1316
+ "expiresAt": {
1317
+ "type": "string",
1318
+ "format": "date-time"
1319
+ },
1320
+ "nodes": {
1321
+ "type": "array",
1322
+ "maxItems": 128,
1323
+ "items": {
1324
+ "$ref": "#/$defs/EmployeeNode"
1325
+ }
1326
+ },
1327
+ "groups": {
1328
+ "type": "array",
1329
+ "maxItems": 2048,
1330
+ "items": {
1331
+ "$ref": "#/$defs/Group"
1332
+ }
1333
+ },
1334
+ "endpoints": {
1335
+ "type": "array",
1336
+ "maxItems": 32,
1337
+ "items": {
1338
+ "$ref": "#/$defs/EmployeeEndpoint"
1339
+ }
1340
+ },
1341
+ "credential": {
1342
+ "$ref": "#/$defs/EmployeeCredential"
1343
+ },
1344
+ "rules": {
1345
+ "type": "array",
1346
+ "maxItems": 10240,
1347
+ "items": {
1348
+ "$ref": "#/$defs/Rule"
1349
+ }
1350
+ }
1351
+ },
1352
+ "description": "Separate employee DTO. Safe aliases only; no upstream parameters/source URL. Fail closed on expiry, epoch change, unreachable internal endpoint. Never fetch direct source as fallback."
1353
+ },
1354
+ "ProjectionApplied": {
1355
+ "type": "object",
1356
+ "additionalProperties": false,
1357
+ "required": [
1358
+ "bundleId",
1359
+ "revision",
1360
+ "projectionHash",
1361
+ "processEpoch",
1362
+ "status"
1363
+ ],
1364
+ "properties": {
1365
+ "bundleId": {
1366
+ "type": "string",
1367
+ "minLength": 1,
1368
+ "maxLength": 128,
1369
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1370
+ },
1371
+ "revision": {
1372
+ "type": "integer",
1373
+ "format": "int64",
1374
+ "minimum": 0
1375
+ },
1376
+ "projectionHash": {
1377
+ "type": "string",
1378
+ "pattern": "^sha256:[a-f0-9]{64}$"
1379
+ },
1380
+ "processEpoch": {
1381
+ "type": "string",
1382
+ "minLength": 1,
1383
+ "maxLength": 128,
1384
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
1385
+ "description": "Exact endpoint-service boot nonce from the delivered projection, bound to endpoint credential; stale or mismatched echoes are rejected."
1386
+ },
1387
+ "status": {
1388
+ "type": "string",
1389
+ "enum": [
1390
+ "applied",
1391
+ "rejected"
1392
+ ],
1393
+ "x-enum-varnames": [
1394
+ "NetworkProxyProjectionAppliedStatusApplied",
1395
+ "NetworkProxyProjectionAppliedStatusRejected"
1396
+ ]
1397
+ },
1398
+ "reasonCode": {
1399
+ "type": "string",
1400
+ "minLength": 1,
1401
+ "maxLength": 128
1402
+ }
1403
+ }
1404
+ },
1405
+ "RuntimeCommandKind": {
1406
+ "type": "string",
1407
+ "enum": [
1408
+ "groups",
1409
+ "select",
1410
+ "probe",
1411
+ "refresh",
1412
+ "rules",
1413
+ "dns",
1414
+ "logs",
1415
+ "diagnostics"
1416
+ ]
1417
+ },
1418
+ "RuntimeCommandInput": {
1419
+ "type": "object",
1420
+ "additionalProperties": false,
1421
+ "required": [
1422
+ "requestId",
1423
+ "processEpoch",
1424
+ "kind",
1425
+ "issuedAt",
1426
+ "expiresAt"
1427
+ ],
1428
+ "properties": {
1429
+ "requestId": {
1430
+ "type": "string",
1431
+ "minLength": 1,
1432
+ "maxLength": 128,
1433
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1434
+ },
1435
+ "processEpoch": {
1436
+ "type": "string",
1437
+ "minLength": 1,
1438
+ "maxLength": 128,
1439
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1440
+ },
1441
+ "kind": {
1442
+ "$ref": "#/$defs/RuntimeCommandKind"
1443
+ },
1444
+ "issuedAt": {
1445
+ "type": "string",
1446
+ "format": "date-time"
1447
+ },
1448
+ "expiresAt": {
1449
+ "type": "string",
1450
+ "format": "date-time"
1451
+ },
1452
+ "groupId": {
1453
+ "type": "string",
1454
+ "minLength": 1,
1455
+ "maxLength": 128,
1456
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1457
+ },
1458
+ "nodeId": {
1459
+ "type": "string",
1460
+ "minLength": 1,
1461
+ "maxLength": 128,
1462
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1463
+ },
1464
+ "probeProfileId": {
1465
+ "type": "string",
1466
+ "minLength": 1,
1467
+ "maxLength": 128,
1468
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1469
+ },
1470
+ "sourceId": {
1471
+ "type": "string",
1472
+ "minLength": 1,
1473
+ "maxLength": 128,
1474
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1475
+ },
1476
+ "limit": {
1477
+ "type": "integer",
1478
+ "minimum": 1,
1479
+ "maximum": 200
1480
+ },
1481
+ "cursor": {
1482
+ "type": "string",
1483
+ "minLength": 1,
1484
+ "maxLength": 256
1485
+ }
1486
+ },
1487
+ "description": "Single typed bounded operation. Select requires groupId/nodeId; probe requires registered probeProfileId, never arbitrary URL. No controller path/body/shell. Expiry <=30 seconds; epoch must match.",
1488
+ "allOf": [
1489
+ {
1490
+ "if": {
1491
+ "properties": {
1492
+ "kind": {
1493
+ "const": "select"
1494
+ }
1495
+ }
1496
+ },
1497
+ "then": {
1498
+ "required": [
1499
+ "groupId",
1500
+ "nodeId"
1501
+ ]
1502
+ }
1503
+ },
1504
+ {
1505
+ "if": {
1506
+ "properties": {
1507
+ "kind": {
1508
+ "const": "probe"
1509
+ }
1510
+ }
1511
+ },
1512
+ "then": {
1513
+ "required": [
1514
+ "probeProfileId"
1515
+ ]
1516
+ }
1517
+ }
1518
+ ]
1519
+ },
1520
+ "RuntimeCommandResult": {
1521
+ "type": "object",
1522
+ "additionalProperties": false,
1523
+ "required": [],
1524
+ "properties": {
1525
+ "groups": {
1526
+ "type": "array",
1527
+ "maxItems": 2048,
1528
+ "items": {
1529
+ "$ref": "#/$defs/Group"
1530
+ }
1531
+ },
1532
+ "rules": {
1533
+ "type": "array",
1534
+ "maxItems": 2048,
1535
+ "items": {
1536
+ "$ref": "#/$defs/Rule"
1537
+ }
1538
+ },
1539
+ "dns": {
1540
+ "type": "array",
1541
+ "maxItems": 200,
1542
+ "items": {
1543
+ "type": "object",
1544
+ "additionalProperties": false,
1545
+ "required": [
1546
+ "name",
1547
+ "addresses",
1548
+ "expiresAt"
1549
+ ],
1550
+ "properties": {
1551
+ "name": {
1552
+ "type": "string",
1553
+ "minLength": 1,
1554
+ "maxLength": 253
1555
+ },
1556
+ "addresses": {
1557
+ "type": "array",
1558
+ "maxItems": 32,
1559
+ "items": {
1560
+ "type": "string",
1561
+ "minLength": 1,
1562
+ "maxLength": 64
1563
+ }
1564
+ },
1565
+ "expiresAt": {
1566
+ "type": "string",
1567
+ "format": "date-time"
1568
+ }
1569
+ }
1570
+ }
1571
+ },
1572
+ "logs": {
1573
+ "type": "array",
1574
+ "maxItems": 200,
1575
+ "items": {
1576
+ "type": "object",
1577
+ "additionalProperties": false,
1578
+ "required": [
1579
+ "sequence",
1580
+ "level",
1581
+ "message",
1582
+ "occurredAt"
1583
+ ],
1584
+ "properties": {
1585
+ "sequence": {
1586
+ "type": "integer",
1587
+ "format": "int64",
1588
+ "minimum": 0
1589
+ },
1590
+ "level": {
1591
+ "type": "string",
1592
+ "enum": [
1593
+ "debug",
1594
+ "info",
1595
+ "warn",
1596
+ "error"
1597
+ ]
1598
+ },
1599
+ "message": {
1600
+ "type": "string",
1601
+ "minLength": 1,
1602
+ "maxLength": 1024
1603
+ },
1604
+ "occurredAt": {
1605
+ "type": "string",
1606
+ "format": "date-time"
1607
+ }
1608
+ }
1609
+ }
1610
+ },
1611
+ "latencyMilliseconds": {
1612
+ "type": "number",
1613
+ "minimum": 0
1614
+ },
1615
+ "selectedNodeId": {
1616
+ "type": "string",
1617
+ "minLength": 1,
1618
+ "maxLength": 128,
1619
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1620
+ },
1621
+ "diagnostics": {
1622
+ "type": "array",
1623
+ "maxItems": 100,
1624
+ "items": {
1625
+ "type": "object",
1626
+ "additionalProperties": false,
1627
+ "required": [
1628
+ "code",
1629
+ "state",
1630
+ "message"
1631
+ ],
1632
+ "properties": {
1633
+ "code": {
1634
+ "type": "string",
1635
+ "minLength": 1,
1636
+ "maxLength": 128
1637
+ },
1638
+ "state": {
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "available",
1642
+ "unsupported",
1643
+ "unavailable"
1644
+ ]
1645
+ },
1646
+ "message": {
1647
+ "type": "string",
1648
+ "minLength": 1,
1649
+ "maxLength": 512
1650
+ }
1651
+ }
1652
+ }
1653
+ }
1654
+ },
1655
+ "description": "Bounded sanitized results; no raw kernel config/controller dumps or upstream secrets."
1656
+ },
1657
+ "RuntimeCommandReceipt": {
1658
+ "type": "object",
1659
+ "additionalProperties": false,
1660
+ "required": [
1661
+ "commandId",
1662
+ "requestId",
1663
+ "processEpoch",
1664
+ "kind",
1665
+ "status",
1666
+ "expiresAt"
1667
+ ],
1668
+ "properties": {
1669
+ "commandId": {
1670
+ "type": "string",
1671
+ "minLength": 1,
1672
+ "maxLength": 128,
1673
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1674
+ },
1675
+ "requestId": {
1676
+ "type": "string",
1677
+ "minLength": 1,
1678
+ "maxLength": 128,
1679
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1680
+ },
1681
+ "processEpoch": {
1682
+ "type": "string",
1683
+ "minLength": 1,
1684
+ "maxLength": 128,
1685
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1686
+ },
1687
+ "kind": {
1688
+ "$ref": "#/$defs/RuntimeCommandKind"
1689
+ },
1690
+ "status": {
1691
+ "type": "string",
1692
+ "enum": [
1693
+ "pending",
1694
+ "running",
1695
+ "succeeded",
1696
+ "failed",
1697
+ "expired",
1698
+ "cancelled",
1699
+ "unknown",
1700
+ "unsupported",
1701
+ "unavailable"
1702
+ ],
1703
+ "x-enum-varnames": [
1704
+ "NetworkProxyRuntimeCommandReceiptStatusPending",
1705
+ "NetworkProxyRuntimeCommandReceiptStatusRunning",
1706
+ "NetworkProxyRuntimeCommandReceiptStatusSucceeded",
1707
+ "NetworkProxyRuntimeCommandReceiptStatusFailed",
1708
+ "NetworkProxyRuntimeCommandReceiptStatusExpired",
1709
+ "NetworkProxyRuntimeCommandReceiptStatusCancelled",
1710
+ "NetworkProxyRuntimeCommandReceiptStatusUnknown",
1711
+ "NetworkProxyRuntimeCommandReceiptStatusUnsupported",
1712
+ "NetworkProxyRuntimeCommandReceiptStatusUnavailable"
1713
+ ]
1714
+ },
1715
+ "expiresAt": {
1716
+ "type": "string",
1717
+ "format": "date-time"
1718
+ },
1719
+ "reasonCode": {
1720
+ "type": "string",
1721
+ "minLength": 1,
1722
+ "maxLength": 128
1723
+ },
1724
+ "result": {
1725
+ "$ref": "#/$defs/RuntimeCommandResult"
1726
+ }
1727
+ },
1728
+ "description": "Durable idempotent receipt; same requestId with different intent conflicts. Accepted does not mean applied. commandId equals requestId; durable uniqueness is scoped to (instanceID, requestId). Reuse by another actor or for a different intent returns conflict; no cross-actor receipt disclosure."
1729
+ },
1730
+ "DeploymentRuntimeControl": {
1731
+ "type": "object",
1732
+ "additionalProperties": false,
1733
+ "properties": {
1734
+ "controlRevision": {
1735
+ "type": "integer",
1736
+ "format": "int64",
1737
+ "minimum": 0
1738
+ },
1739
+ "ownerEpoch": {
1740
+ "type": "integer",
1741
+ "format": "int64",
1742
+ "minimum": 0
1743
+ },
1744
+ "instanceId": {
1745
+ "type": "string",
1746
+ "minLength": 1,
1747
+ "maxLength": 128,
1748
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1749
+ },
1750
+ "runtimeId": {
1751
+ "type": "string",
1752
+ "minLength": 1,
1753
+ "maxLength": 128,
1754
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1755
+ },
1756
+ "processEpoch": {
1757
+ "type": "string",
1758
+ "minLength": 1,
1759
+ "maxLength": 128,
1760
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1761
+ },
1762
+ "credentialId": {
1763
+ "type": "string",
1764
+ "minLength": 1,
1765
+ "maxLength": 128,
1766
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1767
+ },
1768
+ "credentialEpoch": {
1769
+ "type": "integer",
1770
+ "format": "int64",
1771
+ "minimum": 0
1772
+ },
1773
+ "acceptingRequests": {
1774
+ "type": "boolean"
1775
+ },
1776
+ "expiresAt": {
1777
+ "type": "string",
1778
+ "format": "date-time"
1779
+ },
1780
+ "issuedAt": {
1781
+ "type": "string",
1782
+ "format": "date-time"
1783
+ },
1784
+ "stopRequired": {
1785
+ "type": "boolean",
1786
+ "description": "Optional, false omitted. True authorizes bounded confirmation that the exact owned engine and ingress have stopped, only under this newly issued controlRevision with acceptingRequests=false. Core issues a higher revision after the fixed drain expiry; confirmation expires within 30 seconds and no later than the original 240-second task deadline or certificate expiry. It never extends old-flow authorization or allows new traffic."
1787
+ }
1788
+ },
1789
+ "required": [
1790
+ "controlRevision",
1791
+ "ownerEpoch",
1792
+ "instanceId",
1793
+ "runtimeId",
1794
+ "processEpoch",
1795
+ "credentialId",
1796
+ "credentialEpoch",
1797
+ "acceptingRequests",
1798
+ "expiresAt",
1799
+ "issuedAt"
1800
+ ],
1801
+ "allOf": [
1802
+ {
1803
+ "if": {
1804
+ "properties": {
1805
+ "stopRequired": {
1806
+ "const": true
1807
+ }
1808
+ },
1809
+ "required": [
1810
+ "stopRequired"
1811
+ ]
1812
+ },
1813
+ "then": {
1814
+ "properties": {
1815
+ "acceptingRequests": {
1816
+ "const": false
1817
+ }
1818
+ }
1819
+ }
1820
+ }
1821
+ ]
1822
+ },
1823
+ "DeploymentRuntimeAck": {
1824
+ "type": "object",
1825
+ "additionalProperties": false,
1826
+ "properties": {
1827
+ "controlRevision": {
1828
+ "type": "integer",
1829
+ "format": "int64",
1830
+ "minimum": 0
1831
+ },
1832
+ "ownerEpoch": {
1833
+ "type": "integer",
1834
+ "format": "int64",
1835
+ "minimum": 0
1836
+ },
1837
+ "instanceId": {
1838
+ "type": "string",
1839
+ "minLength": 1,
1840
+ "maxLength": 128,
1841
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1842
+ },
1843
+ "runtimeId": {
1844
+ "type": "string",
1845
+ "minLength": 1,
1846
+ "maxLength": 128,
1847
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1848
+ },
1849
+ "processEpoch": {
1850
+ "type": "string",
1851
+ "minLength": 1,
1852
+ "maxLength": 128,
1853
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1854
+ },
1855
+ "credentialId": {
1856
+ "type": "string",
1857
+ "minLength": 1,
1858
+ "maxLength": 128,
1859
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1860
+ },
1861
+ "credentialEpoch": {
1862
+ "type": "integer",
1863
+ "format": "int64",
1864
+ "minimum": 0
1865
+ },
1866
+ "acceptingRequests": {
1867
+ "type": "boolean"
1868
+ },
1869
+ "expiresAt": {
1870
+ "type": "string",
1871
+ "format": "date-time"
1872
+ },
1873
+ "activeCountKnown": {
1874
+ "type": "boolean"
1875
+ },
1876
+ "activeConnections": {
1877
+ "type": "integer",
1878
+ "format": "int64",
1879
+ "minimum": 0
1880
+ },
1881
+ "observedAt": {
1882
+ "type": "string",
1883
+ "format": "date-time"
1884
+ },
1885
+ "processStopped": {
1886
+ "type": "boolean",
1887
+ "description": "Optional, false omitted. True proves the exact owned engine and ingress exited under the current stopRequired control revision, not merely a stopped Pod or a zero default. Requires explicit known activeConnections=0 and acceptingRequests=false. Old or late ACKs cannot confirm a newer revision; no positive proof means no scale-down."
1888
+ }
1889
+ },
1890
+ "required": [
1891
+ "controlRevision",
1892
+ "ownerEpoch",
1893
+ "instanceId",
1894
+ "runtimeId",
1895
+ "processEpoch",
1896
+ "credentialId",
1897
+ "credentialEpoch",
1898
+ "acceptingRequests",
1899
+ "expiresAt",
1900
+ "activeCountKnown",
1901
+ "observedAt"
1902
+ ],
1903
+ "allOf": [
1904
+ {
1905
+ "if": {
1906
+ "properties": {
1907
+ "processStopped": {
1908
+ "const": true
1909
+ }
1910
+ },
1911
+ "required": [
1912
+ "processStopped"
1913
+ ]
1914
+ },
1915
+ "then": {
1916
+ "required": [
1917
+ "activeConnections"
1918
+ ],
1919
+ "properties": {
1920
+ "acceptingRequests": {
1921
+ "const": false
1922
+ },
1923
+ "activeCountKnown": {
1924
+ "const": true
1925
+ },
1926
+ "activeConnections": {
1927
+ "const": 0
1928
+ }
1929
+ }
1930
+ }
1931
+ }
1932
+ ]
1933
+ },
1934
+ "ServerPublicationNode": {
1935
+ "type": "object",
1936
+ "additionalProperties": false,
1937
+ "properties": {
1938
+ "nodeId": {
1939
+ "type": "string",
1940
+ "minLength": 1,
1941
+ "maxLength": 128,
1942
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1943
+ },
1944
+ "outboundId": {
1945
+ "type": "string",
1946
+ "minLength": 1,
1947
+ "maxLength": 128,
1948
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1949
+ }
1950
+ },
1951
+ "required": [
1952
+ "nodeId",
1953
+ "outboundId"
1954
+ ],
1955
+ "description": "Logical node and host-compiled outbound reference only. Never a caller-selected listener, controller path or upstream configuration."
1956
+ },
1957
+ "ServerPublication": {
1958
+ "type": "object",
1959
+ "additionalProperties": false,
1960
+ "properties": {
1961
+ "bundleId": {
1962
+ "type": "string",
1963
+ "minLength": 1,
1964
+ "maxLength": 128,
1965
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
1966
+ },
1967
+ "revision": {
1968
+ "type": "integer",
1969
+ "format": "int64",
1970
+ "minimum": 1
1971
+ },
1972
+ "sourceRevision": {
1973
+ "type": "integer",
1974
+ "format": "int64",
1975
+ "minimum": 1
1976
+ },
1977
+ "orgRevision": {
1978
+ "type": "integer",
1979
+ "format": "int64",
1980
+ "minimum": 0
1981
+ },
1982
+ "credentialEpoch": {
1983
+ "type": "integer",
1984
+ "format": "int64",
1985
+ "minimum": 1
1986
+ },
1987
+ "serverHash": {
1988
+ "type": "string",
1989
+ "pattern": "^sha256:[a-f0-9]{64}$"
1990
+ },
1991
+ "memberSetHash": {
1992
+ "type": "string",
1993
+ "pattern": "^sha256:[a-f0-9]{64}$"
1994
+ },
1995
+ "converterVersion": {
1996
+ "type": "string",
1997
+ "minLength": 1,
1998
+ "maxLength": 64
1999
+ },
2000
+ "deliveryMode": {
2001
+ "type": "string",
2002
+ "enum": [
2003
+ "mapped_nodes",
2004
+ "gateway"
2005
+ ],
2006
+ "x-enum-varnames": [
2007
+ "NetworkProxyServerPublicationDeliveryModeMappedNodes",
2008
+ "NetworkProxyServerPublicationDeliveryModeGateway"
2009
+ ]
2010
+ },
2011
+ "nodes": {
2012
+ "type": "array",
2013
+ "maxItems": 128,
2014
+ "items": {
2015
+ "$ref": "#/$defs/ServerPublicationNode"
2016
+ }
2017
+ },
2018
+ "groups": {
2019
+ "type": "array",
2020
+ "maxItems": 2048,
2021
+ "items": {
2022
+ "$ref": "#/$defs/Group"
2023
+ }
2024
+ },
2025
+ "rules": {
2026
+ "type": "array",
2027
+ "maxItems": 10240,
2028
+ "items": {
2029
+ "$ref": "#/$defs/Rule"
2030
+ }
2031
+ },
2032
+ "validUntil": {
2033
+ "type": "string",
2034
+ "format": "date-time"
2035
+ }
2036
+ },
2037
+ "required": [
2038
+ "bundleId",
2039
+ "revision",
2040
+ "sourceRevision",
2041
+ "orgRevision",
2042
+ "credentialEpoch",
2043
+ "serverHash",
2044
+ "memberSetHash",
2045
+ "converterVersion",
2046
+ "deliveryMode",
2047
+ "nodes",
2048
+ "groups",
2049
+ "rules",
2050
+ "validUntil"
2051
+ ],
2052
+ "description": "Server-runtime-only publication metadata, delivered with ConfigurationDesired. Real upstream remains in encrypted server configuration content; never send this DTO through employee/admin command results. The host independently compiles/validates outbound references and enforces lease, protection and ingress authorization."
2053
+ },
2054
+ "BundleReadback": {
2055
+ "type": "object",
2056
+ "additionalProperties": false,
2057
+ "properties": {
2058
+ "bundleId": {
2059
+ "type": "string",
2060
+ "minLength": 1,
2061
+ "maxLength": 128,
2062
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2063
+ },
2064
+ "revision": {
2065
+ "type": "integer",
2066
+ "format": "int64",
2067
+ "minimum": 1
2068
+ },
2069
+ "configurationRevision": {
2070
+ "type": "integer",
2071
+ "format": "int64",
2072
+ "minimum": 1
2073
+ },
2074
+ "serverHash": {
2075
+ "type": "string",
2076
+ "pattern": "^sha256:[a-f0-9]{64}$"
2077
+ },
2078
+ "processEpoch": {
2079
+ "type": "string",
2080
+ "minLength": 1,
2081
+ "maxLength": 128,
2082
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2083
+ },
2084
+ "ingressReady": {
2085
+ "type": "boolean"
2086
+ },
2087
+ "protectionReady": {
2088
+ "type": "boolean"
2089
+ },
2090
+ "observedAt": {
2091
+ "type": "string",
2092
+ "format": "date-time"
2093
+ },
2094
+ "reasonCode": {
2095
+ "type": "string",
2096
+ "minLength": 1,
2097
+ "maxLength": 128
2098
+ }
2099
+ },
2100
+ "required": [
2101
+ "bundleId",
2102
+ "revision",
2103
+ "configurationRevision",
2104
+ "serverHash",
2105
+ "processEpoch",
2106
+ "ingressReady",
2107
+ "protectionReady",
2108
+ "observedAt"
2109
+ ],
2110
+ "description": "Authenticated real proxy runtime observation only. Core compares current desired/applied configuration revision/hash, bundle revision, process/member and credential identity. Caller flags alone never activate a bundle; reject stale, mismatched or unauthorized observations."
2111
+ },
2112
+ "IngressCheckInput": {
2113
+ "type": "object",
2114
+ "additionalProperties": false,
2115
+ "properties": {
2116
+ "bundleId": {
2117
+ "type": "string",
2118
+ "minLength": 1,
2119
+ "maxLength": 128,
2120
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2121
+ },
2122
+ "revision": {
2123
+ "type": "integer",
2124
+ "format": "int64",
2125
+ "minimum": 1
2126
+ },
2127
+ "nodeId": {
2128
+ "type": "string",
2129
+ "minLength": 1,
2130
+ "maxLength": 128,
2131
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2132
+ },
2133
+ "credentialId": {
2134
+ "type": "string",
2135
+ "minLength": 1,
2136
+ "maxLength": 128,
2137
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2138
+ },
2139
+ "credentialSecret": {
2140
+ "type": "string",
2141
+ "minLength": 1,
2142
+ "maxLength": 4096,
2143
+ "format": "password",
2144
+ "writeOnly": true
2145
+ },
2146
+ "credentialEpoch": {
2147
+ "type": "integer",
2148
+ "format": "int64",
2149
+ "minimum": 1
2150
+ },
2151
+ "destinationHost": {
2152
+ "type": "string",
2153
+ "minLength": 1,
2154
+ "maxLength": 253,
2155
+ "pattern": "^(?:[A-Za-z0-9](?:[A-Za-z0-9.-]{0,251}[A-Za-z0-9])?|[0-9A-Fa-f:]+)$"
2156
+ },
2157
+ "destinationPort": {
2158
+ "type": "integer",
2159
+ "minimum": 1,
2160
+ "maximum": 65535
2161
+ },
2162
+ "network": {
2163
+ "type": "string",
2164
+ "enum": [
2165
+ "tcp",
2166
+ "udp"
2167
+ ],
2168
+ "x-enum-varnames": [
2169
+ "NetworkProxyIngressCheckInputNetworkTCP",
2170
+ "NetworkProxyIngressCheckInputNetworkUDP"
2171
+ ]
2172
+ },
2173
+ "processEpoch": {
2174
+ "type": "string",
2175
+ "minLength": 1,
2176
+ "maxLength": 128,
2177
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2178
+ }
2179
+ },
2180
+ "required": [
2181
+ "bundleId",
2182
+ "revision",
2183
+ "nodeId",
2184
+ "credentialId",
2185
+ "credentialSecret",
2186
+ "credentialEpoch",
2187
+ "destinationHost",
2188
+ "destinationPort",
2189
+ "network",
2190
+ "processEpoch"
2191
+ ],
2192
+ "description": "Online authorization request from enrolled runtime. Core derives identity from real mTLS, resolves current user/device/profile/scope and rechecks bundle/node/epoch and destination protection. No caller field grants identity or authorization. Never log, audit, echo or include credentialSecret in errors. UDP is explicitly unsupported unless the verified ingress transport provides it; never silently convert to TCP or DIRECT."
2193
+ },
2194
+ "IngressCheckResult": {
2195
+ "type": "object",
2196
+ "additionalProperties": false,
2197
+ "properties": {
2198
+ "allowed": {
2199
+ "type": "boolean"
2200
+ },
2201
+ "reasonCode": {
2202
+ "type": "string",
2203
+ "minLength": 1,
2204
+ "maxLength": 128
2205
+ },
2206
+ "bundleId": {
2207
+ "type": "string",
2208
+ "minLength": 1,
2209
+ "maxLength": 128,
2210
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2211
+ },
2212
+ "revision": {
2213
+ "type": "integer",
2214
+ "format": "int64",
2215
+ "minimum": 1
2216
+ },
2217
+ "nodeId": {
2218
+ "type": "string",
2219
+ "minLength": 1,
2220
+ "maxLength": 128,
2221
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
2222
+ },
2223
+ "credentialEpoch": {
2224
+ "type": "integer",
2225
+ "format": "int64",
2226
+ "minimum": 1
2227
+ },
2228
+ "expiresAt": {
2229
+ "type": "string",
2230
+ "format": "date-time"
2231
+ }
2232
+ },
2233
+ "required": [
2234
+ "allowed",
2235
+ "bundleId",
2236
+ "revision",
2237
+ "nodeId",
2238
+ "credentialEpoch",
2239
+ "expiresAt"
2240
+ ],
2241
+ "description": "Scoped, short-lived decision, not a reusable grant. Revalidate active flows against current authorization; old epoch/lease cannot preserve revoked access. Denials/errors never expose credential or upstream values."
526
2242
  }
527
2243
  }
528
2244
  }