typekro 0.33.9 → 0.34.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 (352) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +0 -33
  3. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  4. package/dist/compositions/typekro-runtime/typekro-runtime.js +63 -1
  5. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  6. package/dist/compositions/typekro-runtime/types.d.ts +8 -0
  7. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
  8. package/dist/compositions/typekro-runtime/types.js +1 -0
  9. package/dist/compositions/typekro-runtime/types.js.map +1 -1
  10. package/dist/core/aspects/values-merge.d.ts +17 -0
  11. package/dist/core/aspects/values-merge.d.ts.map +1 -1
  12. package/dist/core/aspects/values-merge.js +67 -8
  13. package/dist/core/aspects/values-merge.js.map +1 -1
  14. package/dist/core/deployment/direct-factory.d.ts +9 -0
  15. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  16. package/dist/core/deployment/direct-factory.js +37 -3
  17. package/dist/core/deployment/direct-factory.js.map +1 -1
  18. package/dist/core/deployment/engine.d.ts +34 -0
  19. package/dist/core/deployment/engine.d.ts.map +1 -1
  20. package/dist/core/deployment/engine.js +173 -29
  21. package/dist/core/deployment/engine.js.map +1 -1
  22. package/dist/core/deployment/index.d.ts +2 -0
  23. package/dist/core/deployment/index.d.ts.map +1 -1
  24. package/dist/core/deployment/index.js +1 -0
  25. package/dist/core/deployment/index.js.map +1 -1
  26. package/dist/core/deployment/k8s-helpers.d.ts +73 -0
  27. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
  28. package/dist/core/deployment/k8s-helpers.js +198 -4
  29. package/dist/core/deployment/k8s-helpers.js.map +1 -1
  30. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  31. package/dist/core/deployment/kro-factory.js +21 -1
  32. package/dist/core/deployment/kro-factory.js.map +1 -1
  33. package/dist/core/deployment/status-leaf-resolution.d.ts +101 -0
  34. package/dist/core/deployment/status-leaf-resolution.d.ts.map +1 -0
  35. package/dist/core/deployment/status-leaf-resolution.js +232 -0
  36. package/dist/core/deployment/status-leaf-resolution.js.map +1 -0
  37. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  38. package/dist/core/deployment/strategies/base-strategy.js +31 -3
  39. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  40. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  41. package/dist/core/deployment/strategies/kro-strategy.js +8 -1
  42. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  43. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  44. package/dist/core/expressions/composition/composition-analyzer-helpers.js +20 -2
  45. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  46. package/dist/core/kro/index.d.ts +6 -0
  47. package/dist/core/kro/index.d.ts.map +1 -0
  48. package/dist/core/kro/index.js +6 -0
  49. package/dist/core/kro/index.js.map +1 -0
  50. package/dist/core/kro/label-guard-capability.d.ts +141 -0
  51. package/dist/core/kro/label-guard-capability.d.ts.map +1 -0
  52. package/dist/core/kro/label-guard-capability.js +257 -0
  53. package/dist/core/kro/label-guard-capability.js.map +1 -0
  54. package/dist/core/kro/labels.d.ts +56 -0
  55. package/dist/core/kro/labels.d.ts.map +1 -0
  56. package/dist/core/kro/labels.js +62 -0
  57. package/dist/core/kro/labels.js.map +1 -0
  58. package/dist/core/kubernetes/api-capability.d.ts +196 -0
  59. package/dist/core/kubernetes/api-capability.d.ts.map +1 -0
  60. package/dist/core/kubernetes/api-capability.js +301 -0
  61. package/dist/core/kubernetes/api-capability.js.map +1 -0
  62. package/dist/core/kubernetes/index.d.ts +2 -0
  63. package/dist/core/kubernetes/index.d.ts.map +1 -1
  64. package/dist/core/kubernetes/index.js +2 -0
  65. package/dist/core/kubernetes/index.js.map +1 -1
  66. package/dist/core/kubernetes/naming.d.ts +100 -0
  67. package/dist/core/kubernetes/naming.d.ts.map +1 -0
  68. package/dist/core/kubernetes/naming.js +93 -0
  69. package/dist/core/kubernetes/naming.js.map +1 -0
  70. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -1
  71. package/dist/core/planning/direct-runtime-adapter.js +54 -17
  72. package/dist/core/planning/direct-runtime-adapter.js.map +1 -1
  73. package/dist/core/planning/planner.d.ts.map +1 -1
  74. package/dist/core/planning/planner.js +17 -0
  75. package/dist/core/planning/planner.js.map +1 -1
  76. package/dist/core/planning/schema.d.ts.map +1 -1
  77. package/dist/core/planning/schema.js +7 -3
  78. package/dist/core/planning/schema.js.map +1 -1
  79. package/dist/core/references/cel-lexical-scanner.d.ts +100 -1
  80. package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -1
  81. package/dist/core/references/cel-lexical-scanner.js +196 -2
  82. package/dist/core/references/cel-lexical-scanner.js.map +1 -1
  83. package/dist/core/references/cel.d.ts +249 -1
  84. package/dist/core/references/cel.d.ts.map +1 -1
  85. package/dist/core/references/cel.js +289 -8
  86. package/dist/core/references/cel.js.map +1 -1
  87. package/dist/core/serialization/arktype-ast.d.ts +21 -0
  88. package/dist/core/serialization/arktype-ast.d.ts.map +1 -0
  89. package/dist/core/serialization/arktype-ast.js +29 -0
  90. package/dist/core/serialization/arktype-ast.js.map +1 -0
  91. package/dist/core/serialization/cel-references.d.ts +133 -32
  92. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  93. package/dist/core/serialization/cel-references.js +908 -109
  94. package/dist/core/serialization/cel-references.js.map +1 -1
  95. package/dist/core/serialization/core.d.ts.map +1 -1
  96. package/dist/core/serialization/core.js +13 -2
  97. package/dist/core/serialization/core.js.map +1 -1
  98. package/dist/core/serialization/schema.d.ts +16 -2
  99. package/dist/core/serialization/schema.d.ts.map +1 -1
  100. package/dist/core/serialization/schema.js +113 -21
  101. package/dist/core/serialization/schema.js.map +1 -1
  102. package/dist/core/types/composable.d.ts +7 -1
  103. package/dist/core/types/composable.d.ts.map +1 -1
  104. package/dist/core/types/deployment.d.ts +32 -2
  105. package/dist/core/types/deployment.d.ts.map +1 -1
  106. package/dist/core/types/serialization.d.ts +37 -0
  107. package/dist/core/types/serialization.d.ts.map +1 -1
  108. package/dist/core/validation/cel-dialect.d.ts +246 -0
  109. package/dist/core/validation/cel-dialect.d.ts.map +1 -0
  110. package/dist/core/validation/cel-dialect.js +1997 -0
  111. package/dist/core/validation/cel-dialect.js.map +1 -0
  112. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  113. package/dist/core/validation/cel-validator.js +8 -1
  114. package/dist/core/validation/cel-validator.js.map +1 -1
  115. package/dist/core/validation/literal-status.d.ts +107 -0
  116. package/dist/core/validation/literal-status.d.ts.map +1 -0
  117. package/dist/core/validation/literal-status.js +346 -0
  118. package/dist/core/validation/literal-status.js.map +1 -0
  119. package/dist/core/validation/structural-spec-dependence.d.ts +179 -0
  120. package/dist/core/validation/structural-spec-dependence.d.ts.map +1 -0
  121. package/dist/core/validation/structural-spec-dependence.js +911 -0
  122. package/dist/core/validation/structural-spec-dependence.js.map +1 -0
  123. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  124. package/dist/factories/apisix/compositions/apisix-bootstrap.js +9 -0
  125. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  126. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts +6 -0
  127. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -1
  128. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +273 -23
  129. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -1
  130. package/dist/factories/clickhouse/resources/index.d.ts +1 -0
  131. package/dist/factories/clickhouse/resources/index.d.ts.map +1 -1
  132. package/dist/factories/clickhouse/resources/index.js +1 -0
  133. package/dist/factories/clickhouse/resources/index.js.map +1 -1
  134. package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
  135. package/dist/factories/clickhouse/resources/installation.js +31 -4
  136. package/dist/factories/clickhouse/resources/installation.js.map +1 -1
  137. package/dist/factories/clickhouse/resources/s3-backup.d.ts +215 -0
  138. package/dist/factories/clickhouse/resources/s3-backup.d.ts.map +1 -0
  139. package/dist/factories/clickhouse/resources/s3-backup.js +410 -0
  140. package/dist/factories/clickhouse/resources/s3-backup.js.map +1 -0
  141. package/dist/factories/clickhouse/types.d.ts +416 -20
  142. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  143. package/dist/factories/clickhouse/types.js +235 -11
  144. package/dist/factories/clickhouse/types.js.map +1 -1
  145. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts +42 -0
  146. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts.map +1 -1
  147. package/dist/factories/clickhouse/utils/helm-values-mapper.js +48 -0
  148. package/dist/factories/clickhouse/utils/helm-values-mapper.js.map +1 -1
  149. package/dist/factories/clickhouse/utils/index.d.ts +2 -0
  150. package/dist/factories/clickhouse/utils/index.d.ts.map +1 -1
  151. package/dist/factories/clickhouse/utils/index.js +2 -0
  152. package/dist/factories/clickhouse/utils/index.js.map +1 -1
  153. package/dist/factories/clickhouse/utils/s3-storage.d.ts +503 -0
  154. package/dist/factories/clickhouse/utils/s3-storage.d.ts.map +1 -0
  155. package/dist/factories/clickhouse/utils/s3-storage.js +1139 -0
  156. package/dist/factories/clickhouse/utils/s3-storage.js.map +1 -0
  157. package/dist/factories/clickhouse/utils/validation.d.ts +103 -0
  158. package/dist/factories/clickhouse/utils/validation.d.ts.map +1 -1
  159. package/dist/factories/clickhouse/utils/validation.js +129 -0
  160. package/dist/factories/clickhouse/utils/validation.js.map +1 -1
  161. package/dist/factories/clickhouse/utils/xml.d.ts +87 -0
  162. package/dist/factories/clickhouse/utils/xml.d.ts.map +1 -0
  163. package/dist/factories/clickhouse/utils/xml.js +151 -0
  164. package/dist/factories/clickhouse/utils/xml.js.map +1 -0
  165. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +57 -0
  166. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -1
  167. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +266 -7
  168. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -1
  169. package/dist/factories/clickstack/types.d.ts +205 -26
  170. package/dist/factories/clickstack/types.d.ts.map +1 -1
  171. package/dist/factories/clickstack/types.js +106 -8
  172. package/dist/factories/clickstack/types.js.map +1 -1
  173. package/dist/factories/clickstack/utils/collector-config.d.ts +104 -0
  174. package/dist/factories/clickstack/utils/collector-config.d.ts.map +1 -0
  175. package/dist/factories/clickstack/utils/collector-config.js +266 -0
  176. package/dist/factories/clickstack/utils/collector-config.js.map +1 -0
  177. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +26 -0
  178. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -1
  179. package/dist/factories/clickstack/utils/helm-values-mapper.js +53 -12
  180. package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
  181. package/dist/factories/clickstack/utils/index.d.ts +2 -0
  182. package/dist/factories/clickstack/utils/index.d.ts.map +1 -1
  183. package/dist/factories/clickstack/utils/index.js +2 -0
  184. package/dist/factories/clickstack/utils/index.js.map +1 -1
  185. package/dist/factories/clickstack/utils/storage.d.ts +449 -0
  186. package/dist/factories/clickstack/utils/storage.d.ts.map +1 -0
  187. package/dist/factories/clickstack/utils/storage.js +698 -0
  188. package/dist/factories/clickstack/utils/storage.js.map +1 -0
  189. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  190. package/dist/factories/cnpg/resources/helm.js +4 -4
  191. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  192. package/dist/factories/cnpg/types.d.ts +10 -1
  193. package/dist/factories/cnpg/types.d.ts.map +1 -1
  194. package/dist/factories/cnpg/types.js.map +1 -1
  195. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts +19 -2
  196. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts.map +1 -1
  197. package/dist/factories/cnpg/utils/helm-values-mapper.js +22 -4
  198. package/dist/factories/cnpg/utils/helm-values-mapper.js.map +1 -1
  199. package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -1
  200. package/dist/factories/envoy-ai-gateway/compositions/gateway.js +16 -3
  201. package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -1
  202. package/dist/factories/envoy-ai-gateway/constants.d.ts +5 -2
  203. package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -1
  204. package/dist/factories/envoy-ai-gateway/constants.js +5 -2
  205. package/dist/factories/envoy-ai-gateway/constants.js.map +1 -1
  206. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +12 -0
  207. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -1
  208. package/dist/factories/envoy-ai-gateway/resources/gateway.js +27 -104
  209. package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -1
  210. package/dist/factories/envoy-ai-gateway/types.d.ts +15 -47
  211. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  212. package/dist/factories/envoy-ai-gateway/types.js.map +1 -1
  213. package/dist/factories/gateway-api/constants.d.ts +27 -0
  214. package/dist/factories/gateway-api/constants.d.ts.map +1 -0
  215. package/dist/factories/gateway-api/constants.js +27 -0
  216. package/dist/factories/gateway-api/constants.js.map +1 -0
  217. package/dist/factories/gateway-api/index.d.ts +14 -0
  218. package/dist/factories/gateway-api/index.d.ts.map +1 -0
  219. package/dist/factories/gateway-api/index.js +14 -0
  220. package/dist/factories/gateway-api/index.js.map +1 -0
  221. package/dist/factories/gateway-api/readiness.d.ts +67 -0
  222. package/dist/factories/gateway-api/readiness.d.ts.map +1 -0
  223. package/dist/factories/gateway-api/readiness.js +213 -0
  224. package/dist/factories/gateway-api/readiness.js.map +1 -0
  225. package/dist/factories/gateway-api/resources/gateway.d.ts +91 -0
  226. package/dist/factories/gateway-api/resources/gateway.d.ts.map +1 -0
  227. package/dist/factories/gateway-api/resources/gateway.js +99 -0
  228. package/dist/factories/gateway-api/resources/gateway.js.map +1 -0
  229. package/dist/factories/gateway-api/resources/index.d.ts +2 -0
  230. package/dist/factories/gateway-api/resources/index.d.ts.map +1 -0
  231. package/dist/factories/gateway-api/resources/index.js +2 -0
  232. package/dist/factories/gateway-api/resources/index.js.map +1 -0
  233. package/dist/factories/gateway-api/types.d.ts +1269 -0
  234. package/dist/factories/gateway-api/types.d.ts.map +1 -0
  235. package/dist/factories/gateway-api/types.js +417 -0
  236. package/dist/factories/gateway-api/types.js.map +1 -0
  237. package/dist/factories/helm/readiness-evaluators.d.ts +21 -3
  238. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  239. package/dist/factories/helm/readiness-evaluators.js +117 -11
  240. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  241. package/dist/factories/helm/types.d.ts +28 -0
  242. package/dist/factories/helm/types.d.ts.map +1 -1
  243. package/dist/factories/index.d.ts +2 -0
  244. package/dist/factories/index.d.ts.map +1 -1
  245. package/dist/factories/index.js +8 -0
  246. package/dist/factories/index.js.map +1 -1
  247. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  248. package/dist/factories/inngest/compositions/inngest-bootstrap.js +10 -0
  249. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  250. package/dist/factories/kubernetes/admission/index.d.ts +2 -0
  251. package/dist/factories/kubernetes/admission/index.d.ts.map +1 -1
  252. package/dist/factories/kubernetes/admission/index.js +2 -0
  253. package/dist/factories/kubernetes/admission/index.js.map +1 -1
  254. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts +108 -0
  255. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts.map +1 -0
  256. package/dist/factories/kubernetes/admission/label-propagation-guard.js +247 -0
  257. package/dist/factories/kubernetes/admission/label-propagation-guard.js.map +1 -0
  258. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts +286 -0
  259. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts.map +1 -0
  260. package/dist/factories/kubernetes/admission/mutating-admission-policy.js +157 -0
  261. package/dist/factories/kubernetes/admission/mutating-admission-policy.js.map +1 -0
  262. package/dist/factories/opensearch/compositions/cluster.d.ts.map +1 -1
  263. package/dist/factories/opensearch/compositions/cluster.js +6 -1
  264. package/dist/factories/opensearch/compositions/cluster.js.map +1 -1
  265. package/dist/factories/ory/compositions/ory-identity-stack.d.ts +8 -8
  266. package/dist/factories/ory/types.d.ts +16 -16
  267. package/dist/factories/rook/compositions/object-storage-claim.d.ts +1 -1
  268. package/dist/factories/rook/compositions/rook-ceph-platform.js +8 -1
  269. package/dist/factories/rook/compositions/rook-ceph-platform.js.map +1 -1
  270. package/dist/factories/rook/types.d.ts +1 -1
  271. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +1 -1
  272. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -1
  273. package/dist/factories/searxng/compositions/searxng-bootstrap.js +18 -13
  274. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -1
  275. package/dist/factories/searxng/index.d.ts +3 -0
  276. package/dist/factories/searxng/index.d.ts.map +1 -1
  277. package/dist/factories/searxng/index.js +3 -0
  278. package/dist/factories/searxng/index.js.map +1 -1
  279. package/dist/factories/searxng/types.js +1 -1
  280. package/dist/factories/searxng/types.js.map +1 -1
  281. package/dist/factories/traefik/compositions/index.d.ts +6 -0
  282. package/dist/factories/traefik/compositions/index.d.ts.map +1 -0
  283. package/dist/factories/traefik/compositions/index.js +6 -0
  284. package/dist/factories/traefik/compositions/index.js.map +1 -0
  285. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +185 -0
  286. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -0
  287. package/dist/factories/traefik/compositions/traefik-bootstrap.js +339 -0
  288. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -0
  289. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts +16 -0
  290. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts.map +1 -0
  291. package/dist/factories/traefik/compositions/traefik-helm-repository.js +31 -0
  292. package/dist/factories/traefik/compositions/traefik-helm-repository.js.map +1 -0
  293. package/dist/factories/traefik/constants.d.ts +78 -0
  294. package/dist/factories/traefik/constants.d.ts.map +1 -0
  295. package/dist/factories/traefik/constants.js +104 -0
  296. package/dist/factories/traefik/constants.js.map +1 -0
  297. package/dist/factories/traefik/index.d.ts +25 -0
  298. package/dist/factories/traefik/index.d.ts.map +1 -0
  299. package/dist/factories/traefik/index.js +25 -0
  300. package/dist/factories/traefik/index.js.map +1 -0
  301. package/dist/factories/traefik/resources/common.d.ts +68 -0
  302. package/dist/factories/traefik/resources/common.d.ts.map +1 -0
  303. package/dist/factories/traefik/resources/common.js +59 -0
  304. package/dist/factories/traefik/resources/common.js.map +1 -0
  305. package/dist/factories/traefik/resources/gateway.d.ts +85 -0
  306. package/dist/factories/traefik/resources/gateway.d.ts.map +1 -0
  307. package/dist/factories/traefik/resources/gateway.js +109 -0
  308. package/dist/factories/traefik/resources/gateway.js.map +1 -0
  309. package/dist/factories/traefik/resources/helm.d.ts +56 -0
  310. package/dist/factories/traefik/resources/helm.d.ts.map +1 -0
  311. package/dist/factories/traefik/resources/helm.js +131 -0
  312. package/dist/factories/traefik/resources/helm.js.map +1 -0
  313. package/dist/factories/traefik/resources/index.d.ts +10 -0
  314. package/dist/factories/traefik/resources/index.d.ts.map +1 -0
  315. package/dist/factories/traefik/resources/index.js +10 -0
  316. package/dist/factories/traefik/resources/index.js.map +1 -0
  317. package/dist/factories/traefik/resources/middleware.d.ts +169 -0
  318. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -0
  319. package/dist/factories/traefik/resources/middleware.js +225 -0
  320. package/dist/factories/traefik/resources/middleware.js.map +1 -0
  321. package/dist/factories/traefik/resources/routing.d.ts +113 -0
  322. package/dist/factories/traefik/resources/routing.d.ts.map +1 -0
  323. package/dist/factories/traefik/resources/routing.js +119 -0
  324. package/dist/factories/traefik/resources/routing.js.map +1 -0
  325. package/dist/factories/traefik/resources/tls.d.ts +85 -0
  326. package/dist/factories/traefik/resources/tls.d.ts.map +1 -0
  327. package/dist/factories/traefik/resources/tls.js +93 -0
  328. package/dist/factories/traefik/resources/tls.js.map +1 -0
  329. package/dist/factories/traefik/types.d.ts +2690 -0
  330. package/dist/factories/traefik/types.d.ts.map +1 -0
  331. package/dist/factories/traefik/types.js +1084 -0
  332. package/dist/factories/traefik/types.js.map +1 -0
  333. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +198 -0
  334. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -0
  335. package/dist/factories/traefik/utils/helm-values-mapper.js +372 -0
  336. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -0
  337. package/dist/factories/traefik/utils/index.d.ts +6 -0
  338. package/dist/factories/traefik/utils/index.d.ts.map +1 -0
  339. package/dist/factories/traefik/utils/index.js +6 -0
  340. package/dist/factories/traefik/utils/index.js.map +1 -0
  341. package/dist/factories/traefik/utils/middleware-validation.d.ts +42 -0
  342. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -0
  343. package/dist/factories/traefik/utils/middleware-validation.js +78 -0
  344. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -0
  345. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  346. package/dist/factories/webapp/compositions/web-app-with-processing.js +10 -0
  347. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  348. package/dist/index.d.ts +4 -3
  349. package/dist/index.d.ts.map +1 -1
  350. package/dist/index.js +3 -1
  351. package/dist/index.js.map +1 -1
  352. package/package.json +9 -1
@@ -0,0 +1,1269 @@
1
+ /**
2
+ * Shared upstream Gateway API type definitions.
3
+ *
4
+ * Extracted from `src/factories/envoy-ai-gateway` (see #176) so that every
5
+ * Gateway API implementation in TypeKro — Envoy Gateway, Traefik v3, and any
6
+ * future controller — describes `GatewayClass`, `Gateway`, `HTTPRoute`,
7
+ * `GRPCRoute`, `ReferenceGrant` and `BackendTLSPolicy` with one set of types.
8
+ *
9
+ * Vendor-specific policy CRDs (`BackendTrafficPolicy`, `AIGatewayRoute`,
10
+ * Traefik `Middleware`, ...) deliberately stay in their own factory packages.
11
+ *
12
+ * **ArkType is the single source of truth for the SPEC types here.** Every
13
+ * `*Spec` / config type below is inferred from the schema next to it
14
+ * (`typeof XSchema.infer`), which is the repository's integration contract: one
15
+ * definition validates at runtime, generates KRO SimpleSchema, and types the
16
+ * factory. The shapes were verified field-by-field against the CRDs installed
17
+ * by the Gateway API v1.2.1 experimental channel, read back from a live API
18
+ * server with `kubectl get crd <name> -o jsonpath='{.spec.versions[*].schema.openAPIV3Schema}'`.
19
+ *
20
+ * STATUS types stay hand-written interfaces: they describe what a controller
21
+ * publishes, never user input, so there is nothing to validate or generate.
22
+ *
23
+ * Where a schema is narrower than the CRD it is deliberate and noted inline
24
+ * (for example `listeners[].protocol`, which the CRD types as a bare string).
25
+ */
26
+ /** A `metav1.Condition` as published by Gateway API controllers. */
27
+ export interface KubernetesCondition {
28
+ readonly type: string;
29
+ readonly status: string;
30
+ readonly reason?: string;
31
+ readonly message?: string;
32
+ readonly observedGeneration?: number;
33
+ }
34
+ /** Status shape of any Gateway API resource that only publishes conditions. */
35
+ export interface AcceptedResourceStatus {
36
+ readonly conditions?: readonly KubernetesCondition[];
37
+ }
38
+ /** `Gateway.status`: assigned addresses plus Accepted/Programmed conditions. */
39
+ export interface GatewayObservedStatus {
40
+ readonly addresses?: readonly {
41
+ readonly type?: string;
42
+ readonly value: string;
43
+ }[];
44
+ readonly conditions?: readonly KubernetesCondition[];
45
+ readonly listeners?: readonly {
46
+ readonly name: string;
47
+ readonly attachedRoutes?: number;
48
+ readonly conditions?: readonly KubernetesCondition[];
49
+ }[];
50
+ }
51
+ /**
52
+ * Status of a Gateway API resource that reports per-parent conditions, i.e.
53
+ * routes (`parents`) — one entry per `parentRef` that a controller claimed.
54
+ */
55
+ export interface RouteObservedStatus {
56
+ readonly parents?: readonly {
57
+ readonly controllerName?: string;
58
+ readonly parentRef?: ParentReference;
59
+ readonly conditions?: readonly KubernetesCondition[];
60
+ }[];
61
+ }
62
+ /**
63
+ * Status of a Gateway API policy attachment (`BackendTLSPolicy`, and the
64
+ * implementation-specific policies that follow the same convention), which
65
+ * reports conditions per ancestor rather than per parent.
66
+ */
67
+ export interface GatewayPolicyObservedStatus {
68
+ readonly ancestors?: readonly {
69
+ readonly controllerName?: string;
70
+ readonly conditions?: readonly KubernetesCondition[];
71
+ }[];
72
+ }
73
+ /** An object reference restricted to Secrets (and, historically, ConfigMaps). */
74
+ export declare const SecretObjectReferenceSchema: import("arktype/internal/variants/object.ts").ObjectType<{
75
+ name: string;
76
+ group?: string;
77
+ kind?: string;
78
+ namespace?: string;
79
+ }, {}>;
80
+ /** A certificate or CA reference used by listener TLS configuration. */
81
+ export type SecretObjectReference = typeof SecretObjectReferenceSchema.infer;
82
+ /** `GatewayClass.spec`. */
83
+ export declare const GatewayClassSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
84
+ controllerName: string;
85
+ description?: string;
86
+ parametersRef?: {
87
+ group: string;
88
+ kind: string;
89
+ name: string;
90
+ namespace?: string;
91
+ };
92
+ }, {}>;
93
+ /**
94
+ * `GatewayClass.spec`.
95
+ *
96
+ * `TController` lets an implementation pin its own controller name as a literal
97
+ * type (e.g. `GatewayClassSpec<'traefik.io/gateway-controller'>`) while the
98
+ * unparameterized form stays usable for generic tooling. The shape is inferred
99
+ * from {@link GatewayClassSpecSchema}; only `controllerName` is re-typed,
100
+ * because ArkType has no generic-literal equivalent.
101
+ */
102
+ export type GatewayClassSpec<TController extends string = string> = Omit<typeof GatewayClassSpecSchema.infer, 'controllerName'> & {
103
+ controllerName: TController;
104
+ };
105
+ /** Which namespaces a listener accepts routes from. */
106
+ export declare const AllowedRoutesSchema: import("arktype/internal/variants/object.ts").ObjectType<{
107
+ namespaces?: {
108
+ from?: "All" | "Selector" | "Same";
109
+ selector?: {
110
+ matchLabels?: Record<string, string>;
111
+ matchExpressions?: {
112
+ key: string;
113
+ operator: string;
114
+ values?: string[];
115
+ }[];
116
+ };
117
+ };
118
+ kinds?: {
119
+ kind: string;
120
+ group?: string;
121
+ }[];
122
+ }, {}>;
123
+ /** Which namespaces a listener accepts routes from. */
124
+ export type AllowedRoutes = typeof AllowedRoutesSchema.infer;
125
+ /** `Gateway.spec.listeners[].tls`. */
126
+ export declare const GatewayTLSConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
127
+ mode?: "Terminate" | "Passthrough";
128
+ certificateRefs?: {
129
+ name: string;
130
+ group?: string;
131
+ kind?: string;
132
+ namespace?: string;
133
+ }[];
134
+ frontendValidation?: {
135
+ caCertificateRefs?: {
136
+ group: string;
137
+ kind: string;
138
+ name: string;
139
+ namespace?: string;
140
+ }[];
141
+ };
142
+ options?: Record<string, string>;
143
+ }, {}>;
144
+ /** `Gateway.spec.listeners[].tls`. */
145
+ export type GatewayTLSConfig = typeof GatewayTLSConfigSchema.infer;
146
+ /**
147
+ * A single `Gateway.spec.listeners[]` entry.
148
+ *
149
+ * `protocol` is narrower than the CRD, which types it as a bare string: these
150
+ * five are the protocols the API defines, and an unknown protocol is rejected
151
+ * by every controller rather than doing something useful.
152
+ */
153
+ export declare const GatewayListenerSchema: import("arktype/internal/variants/object.ts").ObjectType<{
154
+ name: string;
155
+ protocol: "TCP" | "UDP" | "HTTP" | "HTTPS" | "TLS";
156
+ port: number;
157
+ hostname?: string;
158
+ tls?: {
159
+ mode?: "Terminate" | "Passthrough";
160
+ certificateRefs?: {
161
+ name: string;
162
+ group?: string;
163
+ kind?: string;
164
+ namespace?: string;
165
+ }[];
166
+ frontendValidation?: {
167
+ caCertificateRefs?: {
168
+ group: string;
169
+ kind: string;
170
+ name: string;
171
+ namespace?: string;
172
+ }[];
173
+ };
174
+ options?: Record<string, string>;
175
+ };
176
+ allowedRoutes?: {
177
+ namespaces?: {
178
+ from?: "All" | "Selector" | "Same";
179
+ selector?: {
180
+ matchLabels?: Record<string, string>;
181
+ matchExpressions?: {
182
+ key: string;
183
+ operator: string;
184
+ values?: string[];
185
+ }[];
186
+ };
187
+ };
188
+ kinds?: {
189
+ kind: string;
190
+ group?: string;
191
+ }[];
192
+ };
193
+ }, {}>;
194
+ /** A single `Gateway.spec.listeners[]` entry. */
195
+ export type GatewayListener = typeof GatewayListenerSchema.infer;
196
+ /** `Gateway.spec`. */
197
+ export declare const GatewaySpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
198
+ gatewayClassName: string;
199
+ listeners: {
200
+ name: string;
201
+ protocol: "TCP" | "UDP" | "HTTP" | "HTTPS" | "TLS";
202
+ port: number;
203
+ hostname?: string;
204
+ tls?: {
205
+ mode?: "Terminate" | "Passthrough";
206
+ certificateRefs?: {
207
+ name: string;
208
+ group?: string;
209
+ kind?: string;
210
+ namespace?: string;
211
+ }[];
212
+ frontendValidation?: {
213
+ caCertificateRefs?: {
214
+ group: string;
215
+ kind: string;
216
+ name: string;
217
+ namespace?: string;
218
+ }[];
219
+ };
220
+ options?: Record<string, string>;
221
+ };
222
+ allowedRoutes?: {
223
+ namespaces?: {
224
+ from?: "All" | "Selector" | "Same";
225
+ selector?: {
226
+ matchLabels?: Record<string, string>;
227
+ matchExpressions?: {
228
+ key: string;
229
+ operator: string;
230
+ values?: string[];
231
+ }[];
232
+ };
233
+ };
234
+ kinds?: {
235
+ kind: string;
236
+ group?: string;
237
+ }[];
238
+ };
239
+ }[];
240
+ addresses?: {
241
+ value: string;
242
+ type?: string;
243
+ }[];
244
+ infrastructure?: {
245
+ labels?: Record<string, string>;
246
+ annotations?: Record<string, string>;
247
+ parametersRef?: {
248
+ group: string;
249
+ kind: string;
250
+ name: string;
251
+ };
252
+ };
253
+ backendTLS?: {
254
+ clientCertificateRef?: {
255
+ name: string;
256
+ group?: string;
257
+ kind?: string;
258
+ namespace?: string;
259
+ };
260
+ };
261
+ }, {}>;
262
+ /** `Gateway.spec`. */
263
+ export type GatewaySpec = typeof GatewaySpecSchema.infer;
264
+ /**
265
+ * A route's reference to the Gateway (or listener) it attaches to.
266
+ *
267
+ * `kind` stays a plain string, matching the CRD: the mesh profile allows a
268
+ * `Service` parent, so pinning the literal `'Gateway'` would reject a valid
269
+ * upstream shape.
270
+ */
271
+ export declare const ParentReferenceSchema: import("arktype/internal/variants/object.ts").ObjectType<{
272
+ name: string;
273
+ group?: string;
274
+ kind?: string;
275
+ namespace?: string;
276
+ sectionName?: string;
277
+ port?: number;
278
+ }, {}>;
279
+ /** A route's reference to the Gateway (or listener) it attaches to. */
280
+ export type ParentReference = typeof ParentReferenceSchema.infer;
281
+ /** A backend a route rule forwards to. */
282
+ export declare const BackendRefSchema: import("arktype/internal/variants/object.ts").ObjectType<{
283
+ name: string;
284
+ group?: string;
285
+ kind?: string;
286
+ namespace?: string;
287
+ port?: number;
288
+ weight?: number;
289
+ }, {}>;
290
+ /** A backend a route rule forwards to. */
291
+ export type BackendRef = typeof BackendRefSchema.infer;
292
+ /**
293
+ * One `HTTPRoute.spec.rules[].matches[]` entry.
294
+ *
295
+ * `path.value` is optional exactly as the CRD has it — an omitted value means
296
+ * the `/` prefix — and `method` uses the CRD's enum rather than a bare string.
297
+ */
298
+ export declare const HTTPRouteMatchSchema: import("arktype/internal/variants/object.ts").ObjectType<{
299
+ path?: {
300
+ type?: "Exact" | "RegularExpression" | "PathPrefix";
301
+ value?: string;
302
+ };
303
+ headers?: {
304
+ name: string;
305
+ value: string;
306
+ type?: "Exact" | "RegularExpression";
307
+ }[];
308
+ queryParams?: {
309
+ name: string;
310
+ value: string;
311
+ type?: "Exact" | "RegularExpression";
312
+ }[];
313
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | "GET" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE";
314
+ }, {}>;
315
+ /** One `HTTPRoute.spec.rules[].matches[]` entry. */
316
+ export type HTTPRouteMatch = typeof HTTPRouteMatchSchema.infer;
317
+ /** A header modification applied by an `HTTPRoute` filter. */
318
+ export declare const HTTPHeaderFilterSchema: import("arktype/internal/variants/object.ts").ObjectType<{
319
+ set?: {
320
+ name: string;
321
+ value: string;
322
+ }[];
323
+ add?: {
324
+ name: string;
325
+ value: string;
326
+ }[];
327
+ remove?: string[];
328
+ }, {}>;
329
+ /** A header modification applied by an `HTTPRoute` filter. */
330
+ export type HTTPHeaderFilter = typeof HTTPHeaderFilterSchema.infer;
331
+ /**
332
+ * One `HTTPRoute.spec.rules[].filters[]` entry.
333
+ *
334
+ * `extensionRef` is how an implementation attaches its own middleware — Traefik
335
+ * uses it to reference a `traefik.io/v1alpha1` `Middleware`.
336
+ */
337
+ export declare const HTTPRouteFilterSchema: import("arktype/internal/variants/object.ts").ObjectType<{
338
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
339
+ requestHeaderModifier?: {
340
+ set?: {
341
+ name: string;
342
+ value: string;
343
+ }[];
344
+ add?: {
345
+ name: string;
346
+ value: string;
347
+ }[];
348
+ remove?: string[];
349
+ };
350
+ responseHeaderModifier?: {
351
+ set?: {
352
+ name: string;
353
+ value: string;
354
+ }[];
355
+ add?: {
356
+ name: string;
357
+ value: string;
358
+ }[];
359
+ remove?: string[];
360
+ };
361
+ requestRedirect?: {
362
+ scheme?: "http" | "https";
363
+ hostname?: string;
364
+ port?: number;
365
+ statusCode?: 301 | 302;
366
+ path?: {
367
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
368
+ replaceFullPath?: string;
369
+ replacePrefixMatch?: string;
370
+ };
371
+ };
372
+ urlRewrite?: {
373
+ hostname?: string;
374
+ path?: {
375
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
376
+ replaceFullPath?: string;
377
+ replacePrefixMatch?: string;
378
+ };
379
+ };
380
+ requestMirror?: {
381
+ backendRef: {
382
+ name: string;
383
+ group?: string;
384
+ kind?: string;
385
+ namespace?: string;
386
+ port?: number;
387
+ weight?: number;
388
+ };
389
+ percent?: number;
390
+ fraction?: {
391
+ numerator: number;
392
+ denominator?: number;
393
+ };
394
+ };
395
+ extensionRef?: {
396
+ group: string;
397
+ kind: string;
398
+ name: string;
399
+ };
400
+ }, {}>;
401
+ /** One `HTTPRoute.spec.rules[].filters[]` entry. */
402
+ export type HTTPRouteFilter = typeof HTTPRouteFilterSchema.infer;
403
+ /** One `HTTPRoute.spec.rules[]` entry. */
404
+ export declare const HTTPRouteRuleSchema: import("arktype/internal/variants/object.ts").ObjectType<{
405
+ name?: string;
406
+ matches?: {
407
+ path?: {
408
+ type?: "Exact" | "RegularExpression" | "PathPrefix";
409
+ value?: string;
410
+ };
411
+ headers?: {
412
+ name: string;
413
+ value: string;
414
+ type?: "Exact" | "RegularExpression";
415
+ }[];
416
+ queryParams?: {
417
+ name: string;
418
+ value: string;
419
+ type?: "Exact" | "RegularExpression";
420
+ }[];
421
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | "GET" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE";
422
+ }[];
423
+ filters?: {
424
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
425
+ requestHeaderModifier?: {
426
+ set?: {
427
+ name: string;
428
+ value: string;
429
+ }[];
430
+ add?: {
431
+ name: string;
432
+ value: string;
433
+ }[];
434
+ remove?: string[];
435
+ };
436
+ responseHeaderModifier?: {
437
+ set?: {
438
+ name: string;
439
+ value: string;
440
+ }[];
441
+ add?: {
442
+ name: string;
443
+ value: string;
444
+ }[];
445
+ remove?: string[];
446
+ };
447
+ requestRedirect?: {
448
+ scheme?: "http" | "https";
449
+ hostname?: string;
450
+ port?: number;
451
+ statusCode?: 301 | 302;
452
+ path?: {
453
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
454
+ replaceFullPath?: string;
455
+ replacePrefixMatch?: string;
456
+ };
457
+ };
458
+ urlRewrite?: {
459
+ hostname?: string;
460
+ path?: {
461
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
462
+ replaceFullPath?: string;
463
+ replacePrefixMatch?: string;
464
+ };
465
+ };
466
+ requestMirror?: {
467
+ backendRef: {
468
+ name: string;
469
+ group?: string;
470
+ kind?: string;
471
+ namespace?: string;
472
+ port?: number;
473
+ weight?: number;
474
+ };
475
+ percent?: number;
476
+ fraction?: {
477
+ numerator: number;
478
+ denominator?: number;
479
+ };
480
+ };
481
+ extensionRef?: {
482
+ group: string;
483
+ kind: string;
484
+ name: string;
485
+ };
486
+ }[];
487
+ backendRefs?: {
488
+ name: string;
489
+ group?: string;
490
+ kind?: string;
491
+ namespace?: string;
492
+ port?: number;
493
+ weight?: number;
494
+ filters?: {
495
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
496
+ requestHeaderModifier?: {
497
+ set?: {
498
+ name: string;
499
+ value: string;
500
+ }[];
501
+ add?: {
502
+ name: string;
503
+ value: string;
504
+ }[];
505
+ remove?: string[];
506
+ };
507
+ responseHeaderModifier?: {
508
+ set?: {
509
+ name: string;
510
+ value: string;
511
+ }[];
512
+ add?: {
513
+ name: string;
514
+ value: string;
515
+ }[];
516
+ remove?: string[];
517
+ };
518
+ requestRedirect?: {
519
+ scheme?: "http" | "https";
520
+ hostname?: string;
521
+ port?: number;
522
+ statusCode?: 301 | 302;
523
+ path?: {
524
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
525
+ replaceFullPath?: string;
526
+ replacePrefixMatch?: string;
527
+ };
528
+ };
529
+ urlRewrite?: {
530
+ hostname?: string;
531
+ path?: {
532
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
533
+ replaceFullPath?: string;
534
+ replacePrefixMatch?: string;
535
+ };
536
+ };
537
+ requestMirror?: {
538
+ backendRef: {
539
+ name: string;
540
+ group?: string;
541
+ kind?: string;
542
+ namespace?: string;
543
+ port?: number;
544
+ weight?: number;
545
+ };
546
+ percent?: number;
547
+ fraction?: {
548
+ numerator: number;
549
+ denominator?: number;
550
+ };
551
+ };
552
+ extensionRef?: {
553
+ group: string;
554
+ kind: string;
555
+ name: string;
556
+ };
557
+ }[];
558
+ }[];
559
+ timeouts?: {
560
+ request?: string;
561
+ backendRequest?: string;
562
+ };
563
+ retry?: {
564
+ codes?: number[];
565
+ attempts?: number;
566
+ backoff?: string;
567
+ };
568
+ sessionPersistence?: {
569
+ sessionName?: string;
570
+ absoluteTimeout?: string;
571
+ idleTimeout?: string;
572
+ type?: "Cookie" | "Header";
573
+ cookieConfig?: {
574
+ lifetimeType?: "Permanent" | "Session";
575
+ };
576
+ };
577
+ }, {}>;
578
+ /** One `HTTPRoute.spec.rules[]` entry. */
579
+ export type HTTPRouteRule = typeof HTTPRouteRuleSchema.infer;
580
+ /**
581
+ * `HTTPRoute.spec`.
582
+ *
583
+ * `parentRefs` is required here although the CRD allows it to be absent: a
584
+ * route attached to nothing serves no traffic, and TypeKro would have no
585
+ * resource to order it against.
586
+ */
587
+ export declare const HTTPRouteSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
588
+ parentRefs: {
589
+ name: string;
590
+ group?: string;
591
+ kind?: string;
592
+ namespace?: string;
593
+ sectionName?: string;
594
+ port?: number;
595
+ }[];
596
+ hostnames?: string[];
597
+ rules?: {
598
+ name?: string;
599
+ matches?: {
600
+ path?: {
601
+ type?: "Exact" | "RegularExpression" | "PathPrefix";
602
+ value?: string;
603
+ };
604
+ headers?: {
605
+ name: string;
606
+ value: string;
607
+ type?: "Exact" | "RegularExpression";
608
+ }[];
609
+ queryParams?: {
610
+ name: string;
611
+ value: string;
612
+ type?: "Exact" | "RegularExpression";
613
+ }[];
614
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | "GET" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE";
615
+ }[];
616
+ filters?: {
617
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
618
+ requestHeaderModifier?: {
619
+ set?: {
620
+ name: string;
621
+ value: string;
622
+ }[];
623
+ add?: {
624
+ name: string;
625
+ value: string;
626
+ }[];
627
+ remove?: string[];
628
+ };
629
+ responseHeaderModifier?: {
630
+ set?: {
631
+ name: string;
632
+ value: string;
633
+ }[];
634
+ add?: {
635
+ name: string;
636
+ value: string;
637
+ }[];
638
+ remove?: string[];
639
+ };
640
+ requestRedirect?: {
641
+ scheme?: "http" | "https";
642
+ hostname?: string;
643
+ port?: number;
644
+ statusCode?: 301 | 302;
645
+ path?: {
646
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
647
+ replaceFullPath?: string;
648
+ replacePrefixMatch?: string;
649
+ };
650
+ };
651
+ urlRewrite?: {
652
+ hostname?: string;
653
+ path?: {
654
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
655
+ replaceFullPath?: string;
656
+ replacePrefixMatch?: string;
657
+ };
658
+ };
659
+ requestMirror?: {
660
+ backendRef: {
661
+ name: string;
662
+ group?: string;
663
+ kind?: string;
664
+ namespace?: string;
665
+ port?: number;
666
+ weight?: number;
667
+ };
668
+ percent?: number;
669
+ fraction?: {
670
+ numerator: number;
671
+ denominator?: number;
672
+ };
673
+ };
674
+ extensionRef?: {
675
+ group: string;
676
+ kind: string;
677
+ name: string;
678
+ };
679
+ }[];
680
+ backendRefs?: {
681
+ name: string;
682
+ group?: string;
683
+ kind?: string;
684
+ namespace?: string;
685
+ port?: number;
686
+ weight?: number;
687
+ filters?: {
688
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
689
+ requestHeaderModifier?: {
690
+ set?: {
691
+ name: string;
692
+ value: string;
693
+ }[];
694
+ add?: {
695
+ name: string;
696
+ value: string;
697
+ }[];
698
+ remove?: string[];
699
+ };
700
+ responseHeaderModifier?: {
701
+ set?: {
702
+ name: string;
703
+ value: string;
704
+ }[];
705
+ add?: {
706
+ name: string;
707
+ value: string;
708
+ }[];
709
+ remove?: string[];
710
+ };
711
+ requestRedirect?: {
712
+ scheme?: "http" | "https";
713
+ hostname?: string;
714
+ port?: number;
715
+ statusCode?: 301 | 302;
716
+ path?: {
717
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
718
+ replaceFullPath?: string;
719
+ replacePrefixMatch?: string;
720
+ };
721
+ };
722
+ urlRewrite?: {
723
+ hostname?: string;
724
+ path?: {
725
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
726
+ replaceFullPath?: string;
727
+ replacePrefixMatch?: string;
728
+ };
729
+ };
730
+ requestMirror?: {
731
+ backendRef: {
732
+ name: string;
733
+ group?: string;
734
+ kind?: string;
735
+ namespace?: string;
736
+ port?: number;
737
+ weight?: number;
738
+ };
739
+ percent?: number;
740
+ fraction?: {
741
+ numerator: number;
742
+ denominator?: number;
743
+ };
744
+ };
745
+ extensionRef?: {
746
+ group: string;
747
+ kind: string;
748
+ name: string;
749
+ };
750
+ }[];
751
+ }[];
752
+ timeouts?: {
753
+ request?: string;
754
+ backendRequest?: string;
755
+ };
756
+ retry?: {
757
+ codes?: number[];
758
+ attempts?: number;
759
+ backoff?: string;
760
+ };
761
+ sessionPersistence?: {
762
+ sessionName?: string;
763
+ absoluteTimeout?: string;
764
+ idleTimeout?: string;
765
+ type?: "Cookie" | "Header";
766
+ cookieConfig?: {
767
+ lifetimeType?: "Permanent" | "Session";
768
+ };
769
+ };
770
+ }[];
771
+ }, {}>;
772
+ /** `HTTPRoute.spec`. */
773
+ export type HTTPRouteSpec = typeof HTTPRouteSpecSchema.infer;
774
+ /** One `GRPCRoute.spec.rules[].matches[]` entry. */
775
+ export declare const GRPCRouteMatchSchema: import("arktype/internal/variants/object.ts").ObjectType<{
776
+ method?: {
777
+ type?: "Exact" | "RegularExpression";
778
+ service?: string;
779
+ method?: string;
780
+ };
781
+ headers?: {
782
+ name: string;
783
+ value: string;
784
+ type?: "Exact" | "RegularExpression";
785
+ }[];
786
+ }, {}>;
787
+ /** One `GRPCRoute.spec.rules[].matches[]` entry. */
788
+ export type GRPCRouteMatch = typeof GRPCRouteMatchSchema.infer;
789
+ /**
790
+ * One `GRPCRoute.spec.rules[]` entry.
791
+ *
792
+ * The CRD accepts only the four filter types that make sense for gRPC
793
+ * (`RequestHeaderModifier`, `ResponseHeaderModifier`, `RequestMirror`,
794
+ * `ExtensionRef`) but reuses the HTTP filter shape, which is what
795
+ * {@link HTTPRouteFilterSchema} models.
796
+ */
797
+ export declare const GRPCRouteRuleSchema: import("arktype/internal/variants/object.ts").ObjectType<{
798
+ name?: string;
799
+ matches?: {
800
+ method?: {
801
+ type?: "Exact" | "RegularExpression";
802
+ service?: string;
803
+ method?: string;
804
+ };
805
+ headers?: {
806
+ name: string;
807
+ value: string;
808
+ type?: "Exact" | "RegularExpression";
809
+ }[];
810
+ }[];
811
+ filters?: {
812
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
813
+ requestHeaderModifier?: {
814
+ set?: {
815
+ name: string;
816
+ value: string;
817
+ }[];
818
+ add?: {
819
+ name: string;
820
+ value: string;
821
+ }[];
822
+ remove?: string[];
823
+ };
824
+ responseHeaderModifier?: {
825
+ set?: {
826
+ name: string;
827
+ value: string;
828
+ }[];
829
+ add?: {
830
+ name: string;
831
+ value: string;
832
+ }[];
833
+ remove?: string[];
834
+ };
835
+ requestRedirect?: {
836
+ scheme?: "http" | "https";
837
+ hostname?: string;
838
+ port?: number;
839
+ statusCode?: 301 | 302;
840
+ path?: {
841
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
842
+ replaceFullPath?: string;
843
+ replacePrefixMatch?: string;
844
+ };
845
+ };
846
+ urlRewrite?: {
847
+ hostname?: string;
848
+ path?: {
849
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
850
+ replaceFullPath?: string;
851
+ replacePrefixMatch?: string;
852
+ };
853
+ };
854
+ requestMirror?: {
855
+ backendRef: {
856
+ name: string;
857
+ group?: string;
858
+ kind?: string;
859
+ namespace?: string;
860
+ port?: number;
861
+ weight?: number;
862
+ };
863
+ percent?: number;
864
+ fraction?: {
865
+ numerator: number;
866
+ denominator?: number;
867
+ };
868
+ };
869
+ extensionRef?: {
870
+ group: string;
871
+ kind: string;
872
+ name: string;
873
+ };
874
+ }[];
875
+ backendRefs?: {
876
+ name: string;
877
+ group?: string;
878
+ kind?: string;
879
+ namespace?: string;
880
+ port?: number;
881
+ weight?: number;
882
+ filters?: {
883
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
884
+ requestHeaderModifier?: {
885
+ set?: {
886
+ name: string;
887
+ value: string;
888
+ }[];
889
+ add?: {
890
+ name: string;
891
+ value: string;
892
+ }[];
893
+ remove?: string[];
894
+ };
895
+ responseHeaderModifier?: {
896
+ set?: {
897
+ name: string;
898
+ value: string;
899
+ }[];
900
+ add?: {
901
+ name: string;
902
+ value: string;
903
+ }[];
904
+ remove?: string[];
905
+ };
906
+ requestRedirect?: {
907
+ scheme?: "http" | "https";
908
+ hostname?: string;
909
+ port?: number;
910
+ statusCode?: 301 | 302;
911
+ path?: {
912
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
913
+ replaceFullPath?: string;
914
+ replacePrefixMatch?: string;
915
+ };
916
+ };
917
+ urlRewrite?: {
918
+ hostname?: string;
919
+ path?: {
920
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
921
+ replaceFullPath?: string;
922
+ replacePrefixMatch?: string;
923
+ };
924
+ };
925
+ requestMirror?: {
926
+ backendRef: {
927
+ name: string;
928
+ group?: string;
929
+ kind?: string;
930
+ namespace?: string;
931
+ port?: number;
932
+ weight?: number;
933
+ };
934
+ percent?: number;
935
+ fraction?: {
936
+ numerator: number;
937
+ denominator?: number;
938
+ };
939
+ };
940
+ extensionRef?: {
941
+ group: string;
942
+ kind: string;
943
+ name: string;
944
+ };
945
+ }[];
946
+ }[];
947
+ sessionPersistence?: {
948
+ sessionName?: string;
949
+ absoluteTimeout?: string;
950
+ idleTimeout?: string;
951
+ type?: "Cookie" | "Header";
952
+ cookieConfig?: {
953
+ lifetimeType?: "Permanent" | "Session";
954
+ };
955
+ };
956
+ }, {}>;
957
+ /** One `GRPCRoute.spec.rules[]` entry. */
958
+ export type GRPCRouteRule = typeof GRPCRouteRuleSchema.infer;
959
+ /** `GRPCRoute.spec`. */
960
+ export declare const GRPCRouteSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
961
+ parentRefs: {
962
+ name: string;
963
+ group?: string;
964
+ kind?: string;
965
+ namespace?: string;
966
+ sectionName?: string;
967
+ port?: number;
968
+ }[];
969
+ hostnames?: string[];
970
+ rules?: {
971
+ name?: string;
972
+ matches?: {
973
+ method?: {
974
+ type?: "Exact" | "RegularExpression";
975
+ service?: string;
976
+ method?: string;
977
+ };
978
+ headers?: {
979
+ name: string;
980
+ value: string;
981
+ type?: "Exact" | "RegularExpression";
982
+ }[];
983
+ }[];
984
+ filters?: {
985
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
986
+ requestHeaderModifier?: {
987
+ set?: {
988
+ name: string;
989
+ value: string;
990
+ }[];
991
+ add?: {
992
+ name: string;
993
+ value: string;
994
+ }[];
995
+ remove?: string[];
996
+ };
997
+ responseHeaderModifier?: {
998
+ set?: {
999
+ name: string;
1000
+ value: string;
1001
+ }[];
1002
+ add?: {
1003
+ name: string;
1004
+ value: string;
1005
+ }[];
1006
+ remove?: string[];
1007
+ };
1008
+ requestRedirect?: {
1009
+ scheme?: "http" | "https";
1010
+ hostname?: string;
1011
+ port?: number;
1012
+ statusCode?: 301 | 302;
1013
+ path?: {
1014
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
1015
+ replaceFullPath?: string;
1016
+ replacePrefixMatch?: string;
1017
+ };
1018
+ };
1019
+ urlRewrite?: {
1020
+ hostname?: string;
1021
+ path?: {
1022
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
1023
+ replaceFullPath?: string;
1024
+ replacePrefixMatch?: string;
1025
+ };
1026
+ };
1027
+ requestMirror?: {
1028
+ backendRef: {
1029
+ name: string;
1030
+ group?: string;
1031
+ kind?: string;
1032
+ namespace?: string;
1033
+ port?: number;
1034
+ weight?: number;
1035
+ };
1036
+ percent?: number;
1037
+ fraction?: {
1038
+ numerator: number;
1039
+ denominator?: number;
1040
+ };
1041
+ };
1042
+ extensionRef?: {
1043
+ group: string;
1044
+ kind: string;
1045
+ name: string;
1046
+ };
1047
+ }[];
1048
+ backendRefs?: {
1049
+ name: string;
1050
+ group?: string;
1051
+ kind?: string;
1052
+ namespace?: string;
1053
+ port?: number;
1054
+ weight?: number;
1055
+ filters?: {
1056
+ type: "RequestHeaderModifier" | "ResponseHeaderModifier" | "RequestMirror" | "RequestRedirect" | "URLRewrite" | "ExtensionRef";
1057
+ requestHeaderModifier?: {
1058
+ set?: {
1059
+ name: string;
1060
+ value: string;
1061
+ }[];
1062
+ add?: {
1063
+ name: string;
1064
+ value: string;
1065
+ }[];
1066
+ remove?: string[];
1067
+ };
1068
+ responseHeaderModifier?: {
1069
+ set?: {
1070
+ name: string;
1071
+ value: string;
1072
+ }[];
1073
+ add?: {
1074
+ name: string;
1075
+ value: string;
1076
+ }[];
1077
+ remove?: string[];
1078
+ };
1079
+ requestRedirect?: {
1080
+ scheme?: "http" | "https";
1081
+ hostname?: string;
1082
+ port?: number;
1083
+ statusCode?: 301 | 302;
1084
+ path?: {
1085
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
1086
+ replaceFullPath?: string;
1087
+ replacePrefixMatch?: string;
1088
+ };
1089
+ };
1090
+ urlRewrite?: {
1091
+ hostname?: string;
1092
+ path?: {
1093
+ type: "ReplaceFullPath" | "ReplacePrefixMatch";
1094
+ replaceFullPath?: string;
1095
+ replacePrefixMatch?: string;
1096
+ };
1097
+ };
1098
+ requestMirror?: {
1099
+ backendRef: {
1100
+ name: string;
1101
+ group?: string;
1102
+ kind?: string;
1103
+ namespace?: string;
1104
+ port?: number;
1105
+ weight?: number;
1106
+ };
1107
+ percent?: number;
1108
+ fraction?: {
1109
+ numerator: number;
1110
+ denominator?: number;
1111
+ };
1112
+ };
1113
+ extensionRef?: {
1114
+ group: string;
1115
+ kind: string;
1116
+ name: string;
1117
+ };
1118
+ }[];
1119
+ }[];
1120
+ sessionPersistence?: {
1121
+ sessionName?: string;
1122
+ absoluteTimeout?: string;
1123
+ idleTimeout?: string;
1124
+ type?: "Cookie" | "Header";
1125
+ cookieConfig?: {
1126
+ lifetimeType?: "Permanent" | "Session";
1127
+ };
1128
+ };
1129
+ }[];
1130
+ }, {}>;
1131
+ /** `GRPCRoute.spec`. */
1132
+ export type GRPCRouteSpec = typeof GRPCRouteSpecSchema.infer;
1133
+ /**
1134
+ * `ReferenceGrant.spec` — the opt-in a namespace publishes so resources in
1135
+ * `from` namespaces may reference the listed `to` resources in this namespace.
1136
+ */
1137
+ export declare const ReferenceGrantSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
1138
+ from: {
1139
+ group: string;
1140
+ kind: string;
1141
+ namespace: string;
1142
+ }[];
1143
+ to: {
1144
+ group: string;
1145
+ kind: string;
1146
+ name?: string;
1147
+ }[];
1148
+ }, {}>;
1149
+ /** `ReferenceGrant.spec`. */
1150
+ export type ReferenceGrantSpec = typeof ReferenceGrantSpecSchema.infer;
1151
+ /**
1152
+ * `BackendTLSPolicy.spec`.
1153
+ *
1154
+ * Kept general on purpose: Envoy Gateway targets its own `Backend` kind while
1155
+ * other controllers target `Service`, so `targetRefs[].group`/`kind` are plain
1156
+ * strings rather than one vendor's literals.
1157
+ */
1158
+ export declare const BackendTLSPolicySpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
1159
+ targetRefs: {
1160
+ group: string;
1161
+ kind: string;
1162
+ name: string;
1163
+ sectionName?: string;
1164
+ }[];
1165
+ validation: {
1166
+ hostname: string;
1167
+ wellKnownCACertificates?: "System";
1168
+ caCertificateRefs?: {
1169
+ group: string;
1170
+ kind: string;
1171
+ name: string;
1172
+ }[];
1173
+ subjectAltNames?: {
1174
+ type: "Hostname" | "URI";
1175
+ hostname?: string;
1176
+ uri?: string;
1177
+ }[];
1178
+ };
1179
+ options?: Record<string, string>;
1180
+ }, {}>;
1181
+ /** `BackendTLSPolicy.spec`. */
1182
+ export type BackendTLSPolicySpec = typeof BackendTLSPolicySpecSchema.infer;
1183
+ /**
1184
+ * Identity fields every Gateway API resource factory accepts.
1185
+ *
1186
+ * These schemas are the source of truth for the TYPES and the target of the
1187
+ * schema tests; the factories do not run them over their input, because inside
1188
+ * a composition `name` may be a `KubernetesRef` proxy rather than a string and
1189
+ * every constraint here would reject it.
1190
+ */
1191
+ export declare const gatewayApiClusterResourceMetadataShape: {
1192
+ readonly name: import("arktype/internal/variants/string.ts").StringType<string, {}>;
1193
+ /** Extra labels merged onto `metadata.labels`. */
1194
+ readonly 'labels?': "Record<string, string>";
1195
+ /** Extra annotations merged onto `metadata.annotations`. */
1196
+ readonly 'annotations?': "Record<string, string>";
1197
+ /** Resource graph id. Required when `name` is a schema reference. */
1198
+ readonly 'id?': "string > 0";
1199
+ };
1200
+ /** Identity fields every namespaced Gateway API resource factory accepts. */
1201
+ export declare const gatewayApiNamespacedResourceMetadataShape: {
1202
+ readonly namespace: import("arktype/internal/variants/string.ts").StringType<string, {}>;
1203
+ readonly name: import("arktype/internal/variants/string.ts").StringType<string, {}>;
1204
+ /** Extra labels merged onto `metadata.labels`. */
1205
+ readonly 'labels?': "Record<string, string>";
1206
+ /** Extra annotations merged onto `metadata.annotations`. */
1207
+ readonly 'annotations?': "Record<string, string>";
1208
+ /** Resource graph id. Required when `name` is a schema reference. */
1209
+ readonly 'id?': "string > 0";
1210
+ };
1211
+ /** Identity of a cluster-scoped Gateway API resource, without its spec. */
1212
+ export declare const GatewayApiClusterResourceMetadataSchema: import("arktype/internal/variants/object.ts").ObjectType<{
1213
+ name: string;
1214
+ labels?: Record<string, string>;
1215
+ annotations?: Record<string, string>;
1216
+ id?: string;
1217
+ }, {}>;
1218
+ /** Identity of a cluster-scoped Gateway API resource, without its spec. */
1219
+ export type GatewayApiClusterResourceMetadata = typeof GatewayApiClusterResourceMetadataSchema.infer;
1220
+ /** Identity of a namespaced Gateway API resource, without its spec. */
1221
+ export declare const GatewayApiNamespacedResourceMetadataSchema: import("arktype/internal/variants/object.ts").ObjectType<{
1222
+ namespace: string;
1223
+ name: string;
1224
+ labels?: Record<string, string>;
1225
+ annotations?: Record<string, string>;
1226
+ id?: string;
1227
+ }, {}>;
1228
+ /** Identity of a namespaced Gateway API resource, without its spec. */
1229
+ export type GatewayApiNamespacedResourceMetadata = typeof GatewayApiNamespacedResourceMetadataSchema.infer;
1230
+ /**
1231
+ * Configuration for `backendTLSPolicy`.
1232
+ *
1233
+ * Fully inferred rather than generic: a `BackendTLSPolicy` has exactly one
1234
+ * spec shape, so there is nothing for a type parameter to vary.
1235
+ */
1236
+ export declare const BackendTLSPolicyConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
1237
+ controllerName: string;
1238
+ spec: {
1239
+ targetRefs: {
1240
+ group: string;
1241
+ kind: string;
1242
+ name: string;
1243
+ sectionName?: string;
1244
+ }[];
1245
+ validation: {
1246
+ hostname: string;
1247
+ wellKnownCACertificates?: "System";
1248
+ caCertificateRefs?: {
1249
+ group: string;
1250
+ kind: string;
1251
+ name: string;
1252
+ }[];
1253
+ subjectAltNames?: {
1254
+ type: "Hostname" | "URI";
1255
+ hostname?: string;
1256
+ uri?: string;
1257
+ }[];
1258
+ };
1259
+ options?: Record<string, string>;
1260
+ };
1261
+ namespace: string;
1262
+ name: string;
1263
+ labels?: Record<string, string>;
1264
+ annotations?: Record<string, string>;
1265
+ id?: string;
1266
+ }, {}>;
1267
+ /** Configuration for `backendTLSPolicy`. */
1268
+ export type BackendTLSPolicyConfig = typeof BackendTLSPolicyConfigSchema.infer;
1269
+ //# sourceMappingURL=types.d.ts.map