@distilled.cloud/stackit 0.0.0-placeholder → 1.0.0-rc.13

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 (298) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +34 -0
  3. package/lib/credentials.d.ts +29 -0
  4. package/lib/credentials.d.ts.map +1 -0
  5. package/lib/credentials.js +49 -0
  6. package/lib/credentials.js.map +1 -0
  7. package/lib/errors.d.ts +36 -0
  8. package/lib/errors.d.ts.map +1 -0
  9. package/lib/errors.js +26 -0
  10. package/lib/errors.js.map +1 -0
  11. package/lib/index.d.ts +30 -0
  12. package/lib/index.d.ts.map +1 -0
  13. package/lib/index.js +30 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/pagination.d.ts +9 -0
  16. package/lib/pagination.d.ts.map +1 -0
  17. package/lib/pagination.js +48 -0
  18. package/lib/pagination.js.map +1 -0
  19. package/lib/protocol.d.ts +32 -0
  20. package/lib/protocol.d.ts.map +1 -0
  21. package/lib/protocol.js +148 -0
  22. package/lib/protocol.js.map +1 -0
  23. package/lib/response-validation.test.d.ts +4 -0
  24. package/lib/response-validation.test.d.ts.map +1 -0
  25. package/lib/response-validation.test.js +31 -0
  26. package/lib/response-validation.test.js.map +1 -0
  27. package/lib/retry.d.ts +31 -0
  28. package/lib/retry.d.ts.map +1 -0
  29. package/lib/retry.js +31 -0
  30. package/lib/retry.js.map +1 -0
  31. package/lib/services/alb.d.ts +603 -0
  32. package/lib/services/alb.d.ts.map +1 -0
  33. package/lib/services/alb.js +562 -0
  34. package/lib/services/alb.js.map +1 -0
  35. package/lib/services/alb_waf.d.ts +526 -0
  36. package/lib/services/alb_waf.d.ts.map +1 -0
  37. package/lib/services/alb_waf.js +545 -0
  38. package/lib/services/alb_waf.js.map +1 -0
  39. package/lib/services/authorization.d.ts +251 -0
  40. package/lib/services/authorization.d.ts.map +1 -0
  41. package/lib/services/authorization.js +353 -0
  42. package/lib/services/authorization.js.map +1 -0
  43. package/lib/services/automation.d.ts +358 -0
  44. package/lib/services/automation.d.ts.map +1 -0
  45. package/lib/services/automation.js +426 -0
  46. package/lib/services/automation.js.map +1 -0
  47. package/lib/services/cdn.d.ts +1239 -0
  48. package/lib/services/cdn.d.ts.map +1 -0
  49. package/lib/services/cdn.js +992 -0
  50. package/lib/services/cdn.js.map +1 -0
  51. package/lib/services/certificates.d.ts +201 -0
  52. package/lib/services/certificates.d.ts.map +1 -0
  53. package/lib/services/certificates.js +197 -0
  54. package/lib/services/certificates.js.map +1 -0
  55. package/lib/services/cost.d.ts +222 -0
  56. package/lib/services/cost.d.ts.map +1 -0
  57. package/lib/services/cost.js +188 -0
  58. package/lib/services/cost.js.map +1 -0
  59. package/lib/services/dns.d.ts +875 -0
  60. package/lib/services/dns.d.ts.map +1 -0
  61. package/lib/services/dns.js +854 -0
  62. package/lib/services/dns.js.map +1 -0
  63. package/lib/services/dremio.d.ts +358 -0
  64. package/lib/services/dremio.d.ts.map +1 -0
  65. package/lib/services/dremio.js +339 -0
  66. package/lib/services/dremio.js.map +1 -0
  67. package/lib/services/edge.d.ts +312 -0
  68. package/lib/services/edge.d.ts.map +1 -0
  69. package/lib/services/edge.js +375 -0
  70. package/lib/services/edge.js.map +1 -0
  71. package/lib/services/functions.d.ts +409 -0
  72. package/lib/services/functions.d.ts.map +1 -0
  73. package/lib/services/functions.js +423 -0
  74. package/lib/services/functions.js.map +1 -0
  75. package/lib/services/git.d.ts +497 -0
  76. package/lib/services/git.d.ts.map +1 -0
  77. package/lib/services/git.js +552 -0
  78. package/lib/services/git.js.map +1 -0
  79. package/lib/services/iaas.d.ts +2965 -0
  80. package/lib/services/iaas.d.ts.map +1 -0
  81. package/lib/services/iaas.js +3768 -0
  82. package/lib/services/iaas.js.map +1 -0
  83. package/lib/services/index.d.ts +51 -0
  84. package/lib/services/index.d.ts.map +1 -0
  85. package/lib/services/index.js +52 -0
  86. package/lib/services/index.js.map +1 -0
  87. package/lib/services/intake.d.ts +555 -0
  88. package/lib/services/intake.d.ts.map +1 -0
  89. package/lib/services/intake.js +513 -0
  90. package/lib/services/intake.js.map +1 -0
  91. package/lib/services/kms.d.ts +654 -0
  92. package/lib/services/kms.d.ts.map +1 -0
  93. package/lib/services/kms.js +703 -0
  94. package/lib/services/kms.js.map +1 -0
  95. package/lib/services/lb_ip_lists.d.ts +162 -0
  96. package/lib/services/lb_ip_lists.d.ts.map +1 -0
  97. package/lib/services/lb_ip_lists.js +173 -0
  98. package/lib/services/lb_ip_lists.js.map +1 -0
  99. package/lib/services/load_balancer.d.ts +563 -0
  100. package/lib/services/load_balancer.d.ts.map +1 -0
  101. package/lib/services/load_balancer.js +542 -0
  102. package/lib/services/load_balancer.js.map +1 -0
  103. package/lib/services/logme.d.ts +516 -0
  104. package/lib/services/logme.d.ts.map +1 -0
  105. package/lib/services/logme.js +636 -0
  106. package/lib/services/logme.js.map +1 -0
  107. package/lib/services/logs.d.ts +436 -0
  108. package/lib/services/logs.d.ts.map +1 -0
  109. package/lib/services/logs.js +498 -0
  110. package/lib/services/logs.js.map +1 -0
  111. package/lib/services/mariadb.d.ts +479 -0
  112. package/lib/services/mariadb.d.ts.map +1 -0
  113. package/lib/services/mariadb.js +611 -0
  114. package/lib/services/mariadb.js.map +1 -0
  115. package/lib/services/model_experiments.d.ts +306 -0
  116. package/lib/services/model_experiments.d.ts.map +1 -0
  117. package/lib/services/model_experiments.js +356 -0
  118. package/lib/services/model_experiments.js.map +1 -0
  119. package/lib/services/model_serving.d.ts +289 -0
  120. package/lib/services/model_serving.d.ts.map +1 -0
  121. package/lib/services/model_serving.js +319 -0
  122. package/lib/services/model_serving.js.map +1 -0
  123. package/lib/services/mongodb_flex.d.ts +826 -0
  124. package/lib/services/mongodb_flex.d.ts.map +1 -0
  125. package/lib/services/mongodb_flex.js +889 -0
  126. package/lib/services/mongodb_flex.js.map +1 -0
  127. package/lib/services/object_storage.d.ts +446 -0
  128. package/lib/services/object_storage.d.ts.map +1 -0
  129. package/lib/services/object_storage.js +577 -0
  130. package/lib/services/object_storage.js.map +1 -0
  131. package/lib/services/observability.d.ts +2750 -0
  132. package/lib/services/observability.d.ts.map +1 -0
  133. package/lib/services/observability.js +3407 -0
  134. package/lib/services/observability.js.map +1 -0
  135. package/lib/services/opensearch.d.ts +505 -0
  136. package/lib/services/opensearch.d.ts.map +1 -0
  137. package/lib/services/opensearch.js +623 -0
  138. package/lib/services/opensearch.js.map +1 -0
  139. package/lib/services/pim.d.ts +997 -0
  140. package/lib/services/pim.d.ts.map +1 -0
  141. package/lib/services/pim.js +789 -0
  142. package/lib/services/pim.js.map +1 -0
  143. package/lib/services/postgres_flex.d.ts +854 -0
  144. package/lib/services/postgres_flex.d.ts.map +1 -0
  145. package/lib/services/postgres_flex.js +1018 -0
  146. package/lib/services/postgres_flex.js.map +1 -0
  147. package/lib/services/pubsub.d.ts +489 -0
  148. package/lib/services/pubsub.d.ts.map +1 -0
  149. package/lib/services/pubsub.js +614 -0
  150. package/lib/services/pubsub.js.map +1 -0
  151. package/lib/services/rabbitmq.d.ts +523 -0
  152. package/lib/services/rabbitmq.d.ts.map +1 -0
  153. package/lib/services/rabbitmq.js +636 -0
  154. package/lib/services/rabbitmq.js.map +1 -0
  155. package/lib/services/registry.d.ts +212 -0
  156. package/lib/services/registry.d.ts.map +1 -0
  157. package/lib/services/registry.js +221 -0
  158. package/lib/services/registry.js.map +1 -0
  159. package/lib/services/resource_manager.d.ts +458 -0
  160. package/lib/services/resource_manager.d.ts.map +1 -0
  161. package/lib/services/resource_manager.js +503 -0
  162. package/lib/services/resource_manager.js.map +1 -0
  163. package/lib/services/run_command.d.ts +175 -0
  164. package/lib/services/run_command.d.ts.map +1 -0
  165. package/lib/services/run_command.js +203 -0
  166. package/lib/services/run_command.js.map +1 -0
  167. package/lib/services/sca.d.ts +541 -0
  168. package/lib/services/sca.d.ts.map +1 -0
  169. package/lib/services/sca.js +478 -0
  170. package/lib/services/sca.js.map +1 -0
  171. package/lib/services/scf.d.ts +498 -0
  172. package/lib/services/scf.d.ts.map +1 -0
  173. package/lib/services/scf.js +718 -0
  174. package/lib/services/scf.js.map +1 -0
  175. package/lib/services/secrets_manager.d.ts +505 -0
  176. package/lib/services/secrets_manager.d.ts.map +1 -0
  177. package/lib/services/secrets_manager.js +659 -0
  178. package/lib/services/secrets_manager.js.map +1 -0
  179. package/lib/services/server_backup.d.ts +380 -0
  180. package/lib/services/server_backup.d.ts.map +1 -0
  181. package/lib/services/server_backup.js +474 -0
  182. package/lib/services/server_backup.js.map +1 -0
  183. package/lib/services/server_update.d.ts +292 -0
  184. package/lib/services/server_update.d.ts.map +1 -0
  185. package/lib/services/server_update.js +364 -0
  186. package/lib/services/server_update.js.map +1 -0
  187. package/lib/services/service_account.d.ts +465 -0
  188. package/lib/services/service_account.d.ts.map +1 -0
  189. package/lib/services/service_account.js +523 -0
  190. package/lib/services/service_account.js.map +1 -0
  191. package/lib/services/service_enablement.d.ts +149 -0
  192. package/lib/services/service_enablement.d.ts.map +1 -0
  193. package/lib/services/service_enablement.js +159 -0
  194. package/lib/services/service_enablement.js.map +1 -0
  195. package/lib/services/sfs.d.ts +721 -0
  196. package/lib/services/sfs.d.ts.map +1 -0
  197. package/lib/services/sfs.js +845 -0
  198. package/lib/services/sfs.js.map +1 -0
  199. package/lib/services/ske.d.ts +536 -0
  200. package/lib/services/ske.d.ts.map +1 -0
  201. package/lib/services/ske.js +598 -0
  202. package/lib/services/ske.js.map +1 -0
  203. package/lib/services/sqlserverflex.d.ts +956 -0
  204. package/lib/services/sqlserverflex.d.ts.map +1 -0
  205. package/lib/services/sqlserverflex.js +1087 -0
  206. package/lib/services/sqlserverflex.js.map +1 -0
  207. package/lib/services/stackit_marketplace.d.ts +288 -0
  208. package/lib/services/stackit_marketplace.d.ts.map +1 -0
  209. package/lib/services/stackit_marketplace.js +393 -0
  210. package/lib/services/stackit_marketplace.js.map +1 -0
  211. package/lib/services/telemetry_link.d.ts +443 -0
  212. package/lib/services/telemetry_link.d.ts.map +1 -0
  213. package/lib/services/telemetry_link.js +550 -0
  214. package/lib/services/telemetry_link.js.map +1 -0
  215. package/lib/services/telemetry_router.d.ts +493 -0
  216. package/lib/services/telemetry_router.d.ts.map +1 -0
  217. package/lib/services/telemetry_router.js +523 -0
  218. package/lib/services/telemetry_router.js.map +1 -0
  219. package/lib/services/ufw.d.ts +295 -0
  220. package/lib/services/ufw.d.ts.map +1 -0
  221. package/lib/services/ufw.js +301 -0
  222. package/lib/services/ufw.js.map +1 -0
  223. package/lib/services/valkey.d.ts +505 -0
  224. package/lib/services/valkey.d.ts.map +1 -0
  225. package/lib/services/valkey.js +627 -0
  226. package/lib/services/valkey.js.map +1 -0
  227. package/lib/services/vpn.d.ts +1024 -0
  228. package/lib/services/vpn.d.ts.map +1 -0
  229. package/lib/services/vpn.js +1013 -0
  230. package/lib/services/vpn.js.map +1 -0
  231. package/lib/services/workflows.d.ts +600 -0
  232. package/lib/services/workflows.d.ts.map +1 -0
  233. package/lib/services/workflows.js +556 -0
  234. package/lib/services/workflows.js.map +1 -0
  235. package/lib/traits.d.ts +24 -0
  236. package/lib/traits.d.ts.map +1 -0
  237. package/lib/traits.js +15 -0
  238. package/lib/traits.js.map +1 -0
  239. package/package.json +78 -7
  240. package/src/credentials.ts +90 -0
  241. package/src/errors.ts +50 -0
  242. package/src/index.ts +34 -0
  243. package/src/pagination.ts +73 -0
  244. package/src/protocol.ts +243 -0
  245. package/src/response-validation.test.ts +45 -0
  246. package/src/retry.ts +53 -0
  247. package/src/services/alb.ts +1409 -0
  248. package/src/services/alb_waf.ts +1347 -0
  249. package/src/services/authorization.ts +740 -0
  250. package/src/services/automation.ts +966 -0
  251. package/src/services/cdn.ts +2736 -0
  252. package/src/services/certificates.ts +450 -0
  253. package/src/services/cost.ts +484 -0
  254. package/src/services/dns.ts +2271 -0
  255. package/src/services/dremio.ts +803 -0
  256. package/src/services/edge.ts +839 -0
  257. package/src/services/functions.ts +1010 -0
  258. package/src/services/git.ts +1275 -0
  259. package/src/services/iaas.ts +8670 -0
  260. package/src/services/index.ts +51 -0
  261. package/src/services/intake.ts +1233 -0
  262. package/src/services/kms.ts +1638 -0
  263. package/src/services/lb_ip_lists.ts +377 -0
  264. package/src/services/load_balancer.ts +1342 -0
  265. package/src/services/logme.ts +1379 -0
  266. package/src/services/logs.ts +1150 -0
  267. package/src/services/mariadb.ts +1293 -0
  268. package/src/services/model_experiments.ts +797 -0
  269. package/src/services/model_serving.ts +697 -0
  270. package/src/services/mongodb_flex.ts +2078 -0
  271. package/src/services/object_storage.ts +1248 -0
  272. package/src/services/observability.ts +7856 -0
  273. package/src/services/opensearch.ts +1354 -0
  274. package/src/services/pim.ts +2090 -0
  275. package/src/services/postgres_flex.ts +2326 -0
  276. package/src/services/pubsub.ts +1336 -0
  277. package/src/services/rabbitmq.ts +1402 -0
  278. package/src/services/registry.ts +494 -0
  279. package/src/services/resource_manager.ts +1155 -0
  280. package/src/services/run_command.ts +441 -0
  281. package/src/services/sca.ts +1222 -0
  282. package/src/services/scf.ts +1537 -0
  283. package/src/services/secrets_manager.ts +1399 -0
  284. package/src/services/server_backup.ts +1032 -0
  285. package/src/services/server_update.ts +767 -0
  286. package/src/services/service_account.ts +1208 -0
  287. package/src/services/service_enablement.ts +359 -0
  288. package/src/services/sfs.ts +1913 -0
  289. package/src/services/ske.ts +1408 -0
  290. package/src/services/sqlserverflex.ts +2543 -0
  291. package/src/services/stackit_marketplace.ts +853 -0
  292. package/src/services/telemetry_link.ts +1245 -0
  293. package/src/services/telemetry_router.ts +1205 -0
  294. package/src/services/ufw.ts +704 -0
  295. package/src/services/valkey.ts +1357 -0
  296. package/src/services/vpn.ts +2554 -0
  297. package/src/services/workflows.ts +1361 -0
  298. package/src/traits.ts +65 -0
@@ -0,0 +1,1347 @@
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-stackit). Do not edit.
2
+ import * as S from "@distilled.cloud/core/schema";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import * as C from "@distilled.cloud/core/category";
5
+ import * as T from "../traits.ts";
6
+ import {
7
+ StackitProtocol,
8
+ type StackitOpError,
9
+ type StackitOpContext,
10
+ } from "../protocol.ts";
11
+ import { UnknownStackitError } from "../errors.ts";
12
+ import * as Retry from "../retry.ts";
13
+
14
+ export type { StackitOpError, StackitOpContext };
15
+
16
+ export class BadRequest
17
+ extends /*@__PURE__*/ T.applyErrorMatchers(
18
+ /*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
19
+ code: S.Number,
20
+ message: S.String,
21
+ }).pipe(C.withBadRequestError),
22
+ [{ status: 400 }],
23
+ ) {}
24
+
25
+ export class Conflict
26
+ extends /*@__PURE__*/ T.applyErrorMatchers(
27
+ /*@__PURE__*/ S.TaggedError<Conflict>()("Conflict", {
28
+ code: S.Number,
29
+ message: S.String,
30
+ }).pipe(C.withConflictError),
31
+ [{ status: 409 }],
32
+ ) {}
33
+
34
+ export class Forbidden
35
+ extends /*@__PURE__*/ T.applyErrorMatchers(
36
+ /*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
37
+ code: S.Number,
38
+ message: S.String,
39
+ }).pipe(C.withAuthError),
40
+ [{ status: 403 }],
41
+ ) {}
42
+
43
+ export class NotFound
44
+ extends /*@__PURE__*/ T.applyErrorMatchers(
45
+ /*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
46
+ code: S.Number,
47
+ message: S.String,
48
+ }).pipe(C.withBadRequestError),
49
+ [{ status: 404 }],
50
+ ) {}
51
+
52
+ /** The protective stance action. ACTION_DENY forces a 403 status response code. */
53
+ export type Action = "ACTION_DENY" | "ACTION_PASS" | "ACTION_ALLOW";
54
+ export const Action = /*@__PURE__*/ S.String;
55
+
56
+ export interface Behavior {
57
+ action: Action | (string & {});
58
+ /** Determines whether an entry should be generated in the security ledger upon a rule hit. */
59
+ log?: boolean;
60
+ /** Custom notification message string mapped to underlying logdata contexts. */
61
+ logMsg?: string;
62
+ }
63
+ export const Behavior = /*@__PURE__*/ S.suspend(() =>
64
+ S.Struct({
65
+ action: Action,
66
+ log: S.optional(S.Boolean),
67
+ logMsg: S.optional(S.String),
68
+ }),
69
+ ).annotate({ identifier: "Behavior" }) as any as S.Schema<Behavior>;
70
+
71
+ /** The operational evaluation type definition macro. */
72
+ export type Operator =
73
+ | "OPERATOR_BEGINS_WITH"
74
+ | "OPERATOR_CONTAINS"
75
+ | "OPERATOR_ENDS_WITH"
76
+ | "OPERATOR_EQ"
77
+ | "OPERATOR_GE"
78
+ | "OPERATOR_GT"
79
+ | "OPERATOR_IP_MATCH"
80
+ | "OPERATOR_LE"
81
+ | "OPERATOR_LT"
82
+ | "OPERATOR_RX"
83
+ | "OPERATOR_STREQ"
84
+ | "OPERATOR_STRMATCH"
85
+ | "OPERATOR_VALIDATE_SCHEMA"
86
+ | "OPERATOR_VALIDATE_URL_ENCODING"
87
+ | "OPERATOR_VALIDATE_UTF8_ENCODING"
88
+ | "OPERATOR_WITHIN";
89
+ export const Operator = /*@__PURE__*/ S.String;
90
+
91
+ export interface ConditionOperator {
92
+ type: Operator | (string & {});
93
+ /** The text or rule regex pattern arguments applied inside the operator execution loop. */
94
+ value?: string;
95
+ }
96
+ export const ConditionOperator = /*@__PURE__*/ S.suspend(() =>
97
+ S.Struct({
98
+ type: Operator,
99
+ value: S.optional(S.String),
100
+ }),
101
+ ).annotate({
102
+ identifier: "ConditionOperator",
103
+ }) as any as S.Schema<ConditionOperator>;
104
+
105
+ export type Transformation =
106
+ | "TRANSFORMATION_LENGTH"
107
+ | "TRANSFORMATION_LOWERCASE"
108
+ | "TRANSFORMATION_NONE"
109
+ | "TRANSFORMATION_TRIM"
110
+ | "TRANSFORMATION_UPPERCASE"
111
+ | "TRANSFORMATION_UTF8_TO_UNICODE";
112
+ export const Transformation = /*@__PURE__*/ S.String;
113
+
114
+ /** [HINT] Ordered processing adjustments applied to clean inputs before match checking. */
115
+ export type ConditionTransformationsList = Array<
116
+ Transformation | (string & {})
117
+ >;
118
+ export const ConditionTransformationsList = /*@__PURE__*/ S.Array(
119
+ Transformation,
120
+ ) as any as S.Schema<ConditionTransformationsList>;
121
+
122
+ /** The targeted validation engine variable macro. */
123
+ export type Variable =
124
+ | "VARIABLE_ARGS_GET"
125
+ | "VARIABLE_ARGS_POST"
126
+ | "VARIABLE_FULL_REQUEST_LENGTH"
127
+ | "VARIABLE_MATCHED_VAR"
128
+ | "VARIABLE_QUERY_STRING"
129
+ | "VARIABLE_REMOTE_ADDR"
130
+ | "VARIABLE_REMOTE_PORT"
131
+ | "VARIABLE_REQUEST_BASENAME"
132
+ | "VARIABLE_REQUEST_BODY"
133
+ | "VARIABLE_REQUEST_BODY_LENGTH"
134
+ | "VARIABLE_REQUEST_COOKIES"
135
+ | "VARIABLE_REQUEST_HEADERS"
136
+ | "VARIABLE_REQUEST_HEADERS_NAMES"
137
+ | "VARIABLE_REQUEST_METHOD"
138
+ | "VARIABLE_REQUEST_PROTOCOL"
139
+ | "VARIABLE_REQUEST_URI_RAW"
140
+ | "VARIABLE_RESPONSE_BODY"
141
+ | "VARIABLE_RESPONSE_CONTENT_LENGTH"
142
+ | "VARIABLE_RESPONSE_HEADERS"
143
+ | "VARIABLE_RESPONSE_HEADERS_NAMES"
144
+ | "VARIABLE_RESPONSE_PROTOCOL"
145
+ | "VARIABLE_RESPONSE_STATUS";
146
+ export const Variable = /*@__PURE__*/ S.String;
147
+
148
+ export interface ConditionVariable {
149
+ type: Variable | (string & {});
150
+ /** Optional key element context for map variables (e.g., matching a 'Host' header key). */
151
+ value?: string;
152
+ }
153
+ export const ConditionVariable = /*@__PURE__*/ S.suspend(() =>
154
+ S.Struct({
155
+ type: Variable,
156
+ value: S.optional(S.String),
157
+ }),
158
+ ).annotate({
159
+ identifier: "ConditionVariable",
160
+ }) as any as S.Schema<ConditionVariable>;
161
+
162
+ export interface Condition {
163
+ operator: ConditionOperator;
164
+ /** [HINT] Ordered processing adjustments applied to clean inputs before match checking. */
165
+ transformations?: ConditionTransformationsList;
166
+ variable: ConditionVariable;
167
+ }
168
+ export const Condition = /*@__PURE__*/ S.suspend(() =>
169
+ S.Struct({
170
+ operator: ConditionOperator,
171
+ transformations: S.optional(ConditionTransformationsList),
172
+ variable: ConditionVariable,
173
+ }),
174
+ ).annotate({ identifier: "Condition" }) as any as S.Schema<Condition>;
175
+
176
+ /** [HINT] Order matters! First condition match triggers execution. */
177
+ export type CreateCustomRuleConditionsList = Array<Condition>;
178
+ export const CreateCustomRuleConditionsList = /*@__PURE__*/ S.Array(
179
+ Condition,
180
+ ) as any as S.Schema<CreateCustomRuleConditionsList>;
181
+
182
+ export interface CreateCustomRule {
183
+ behavior: Behavior;
184
+ /** [HINT] Order matters! First condition match triggers execution. */
185
+ conditions: CreateCustomRuleConditionsList;
186
+ /** A clear description explaining the threat vector or criteria addressed by this rule. */
187
+ description?: string;
188
+ }
189
+ export const CreateCustomRule = /*@__PURE__*/ S.suspend(() =>
190
+ S.Struct({
191
+ behavior: Behavior,
192
+ conditions: CreateCustomRuleConditionsList,
193
+ description: S.optional(S.String),
194
+ }),
195
+ ).annotate({
196
+ identifier: "CreateCustomRule",
197
+ }) as any as S.Schema<CreateCustomRule>;
198
+
199
+ /** The collection of custom rule group SecLang parameters forming this execution group. */
200
+ export type CreateCustomRuleGroupRequestRulesList = Array<CreateCustomRule>;
201
+ export const CreateCustomRuleGroupRequestRulesList = /*@__PURE__*/ S.Array(
202
+ CreateCustomRule,
203
+ ) as any as S.Schema<CreateCustomRuleGroupRequestRulesList>;
204
+
205
+ export interface CreateCustomRuleGroupRequest {
206
+ projectId: string;
207
+ region: string;
208
+ /** Custom rule group name. */
209
+ name: string;
210
+ /** The collection of custom rule group SecLang parameters forming this execution group. */
211
+ rules: CreateCustomRuleGroupRequestRulesList;
212
+ }
213
+ export const CreateCustomRuleGroupRequest = /*@__PURE__*/ S.suspend(() =>
214
+ S.Struct({
215
+ projectId: S.String.pipe(T.Label()),
216
+ region: S.String.pipe(T.Label()),
217
+ name: S.String,
218
+ rules: CreateCustomRuleGroupRequestRulesList,
219
+ }).pipe(
220
+ T.Http({
221
+ method: "POST",
222
+ uri: "/v1/projects/{projectId}/regions/{region}/custom-rule-groups",
223
+ code: 200,
224
+ baseUrl: "https://alb-waf.api.stackit.cloud",
225
+ }),
226
+ ),
227
+ ).annotate({
228
+ identifier: "CreateCustomRuleGroupRequest",
229
+ }) as any as S.Schema<CreateCustomRuleGroupRequest>;
230
+
231
+ /** Severity classification metric used by internal analytics graphs. */
232
+ export type Severity =
233
+ | "SEVERITY_EMERGENCY"
234
+ | "SEVERITY_ALERT"
235
+ | "SEVERITY_CRITICAL"
236
+ | "SEVERITY_ERROR"
237
+ | "SEVERITY_WARNING"
238
+ | "SEVERITY_NOTICE"
239
+ | "SEVERITY_INFO"
240
+ | "SEVERITY_DEBUG";
241
+ export const Severity = /*@__PURE__*/ S.String;
242
+
243
+ export interface GetBehavior {
244
+ action: Action;
245
+ /** Determines whether an entry should be generated in the security ledger upon a rule hit. */
246
+ log: boolean;
247
+ /** Custom notification message string mapped to underlying logdata contexts. */
248
+ logMsg?: string;
249
+ severity: Severity;
250
+ }
251
+ export const GetBehavior = /*@__PURE__*/ S.suspend(() =>
252
+ S.Struct({
253
+ action: Action,
254
+ log: S.Boolean,
255
+ logMsg: S.optional(S.String),
256
+ severity: Severity,
257
+ }),
258
+ ).annotate({ identifier: "GetBehavior" }) as any as S.Schema<GetBehavior>;
259
+
260
+ /** [HINT] Order matters! First condition match triggers execution. */
261
+ export type GetCustomRuleConditionsList = Array<Condition>;
262
+ export const GetCustomRuleConditionsList = /*@__PURE__*/ S.Array(
263
+ Condition,
264
+ ) as any as S.Schema<GetCustomRuleConditionsList>;
265
+
266
+ export interface GetCustomRule {
267
+ behavior: GetBehavior;
268
+ /** [HINT] Order matters! First condition match triggers execution. */
269
+ conditions: GetCustomRuleConditionsList;
270
+ /** A clear description explaining the threat vector or criteria addressed by this rule. */
271
+ description?: string;
272
+ /** Backend auto-allocated unique rule ID within the valid 1-99999 threshold. */
273
+ id: number;
274
+ }
275
+ export const GetCustomRule = /*@__PURE__*/ S.suspend(() =>
276
+ S.Struct({
277
+ behavior: GetBehavior,
278
+ conditions: GetCustomRuleConditionsList,
279
+ description: S.optional(S.String),
280
+ id: S.Number,
281
+ }),
282
+ ).annotate({ identifier: "GetCustomRule" }) as any as S.Schema<GetCustomRule>;
283
+
284
+ /** Enriched rules containing auto-generated IDs and computed severity values. */
285
+ export type GetCustomRuleGroupResponseRulesList = Array<GetCustomRule>;
286
+ export const GetCustomRuleGroupResponseRulesList = /*@__PURE__*/ S.Array(
287
+ GetCustomRule,
288
+ ) as any as S.Schema<GetCustomRuleGroupResponseRulesList>;
289
+
290
+ /** List of individual WAF configuration names that bind this rule group. */
291
+ export type CRGUsageItemsList = Array<string>;
292
+ export const CRGUsageItemsList = /*@__PURE__*/ S.Array(
293
+ S.String,
294
+ ) as any as S.Schema<CRGUsageItemsList>;
295
+
296
+ /** Tracking metrics for CRG resource utilization */
297
+ export interface CRGUsage {
298
+ /** Number of WAF configurations actively using this rule group. */
299
+ count?: number;
300
+ /** List of individual WAF configuration names that bind this rule group. */
301
+ items?: CRGUsageItemsList;
302
+ }
303
+ export const CRGUsage = /*@__PURE__*/ S.suspend(() =>
304
+ S.Struct({
305
+ count: S.optional(S.Number),
306
+ items: S.optional(CRGUsageItemsList),
307
+ }),
308
+ ).annotate({ identifier: "CRGUsage" }) as any as S.Schema<CRGUsage>;
309
+
310
+ /** Response payload delivering the detailed CRG configuration name and it's rule content. */
311
+ export interface GetCustomRuleGroupResponse {
312
+ /** Custom rule group configuration name. */
313
+ name: string;
314
+ /** Enriched rules containing auto-generated IDs and computed severity values. */
315
+ rules: GetCustomRuleGroupResponseRulesList;
316
+ usage?: CRGUsage;
317
+ }
318
+ export const GetCustomRuleGroupResponse = /*@__PURE__*/ S.suspend(() =>
319
+ S.Struct({
320
+ name: S.String,
321
+ rules: GetCustomRuleGroupResponseRulesList,
322
+ usage: S.optional(CRGUsage),
323
+ }),
324
+ ).annotate({
325
+ identifier: "GetCustomRuleGroupResponse",
326
+ }) as any as S.Schema<GetCustomRuleGroupResponse>;
327
+
328
+ /** Set the managed rule set type. */
329
+ export type Type = "TYPE_OWASP_CRS";
330
+ export const Type = /*@__PURE__*/ S.String;
331
+
332
+ export interface CreateManagedRuleSetRequest {
333
+ projectId: string;
334
+ region: string;
335
+ /** Managed rule set configuration name. */
336
+ name: string;
337
+ type: Type | (string & {});
338
+ }
339
+ export const CreateManagedRuleSetRequest = /*@__PURE__*/ S.suspend(() =>
340
+ S.Struct({
341
+ projectId: S.String.pipe(T.Label()),
342
+ region: S.String.pipe(T.Label()),
343
+ name: S.String,
344
+ type: Type,
345
+ }).pipe(
346
+ T.Http({
347
+ method: "POST",
348
+ uri: "/v1/projects/{projectId}/regions/{region}/managed-rule-sets",
349
+ code: 200,
350
+ baseUrl: "https://alb-waf.api.stackit.cloud",
351
+ }),
352
+ ),
353
+ ).annotate({
354
+ identifier: "CreateManagedRuleSetRequest",
355
+ }) as any as S.Schema<CreateManagedRuleSetRequest>;
356
+
357
+ /** The current mode of the rule. */
358
+ export type Mode = "MODE_ENABLED" | "MODE_DISABLED" | "MODE_LOG_ONLY";
359
+ export const Mode = /*@__PURE__*/ S.String;
360
+
361
+ /** Rule represents an individual security or validation rule. */
362
+ export interface MRSRule {
363
+ /** A description of what this rule covers. */
364
+ description: string;
365
+ mode: Mode;
366
+ /** Impact level. */
367
+ severity: string;
368
+ }
369
+ export const MRSRule = /*@__PURE__*/ S.suspend(() =>
370
+ S.Struct({
371
+ description: S.String,
372
+ mode: Mode,
373
+ severity: S.String,
374
+ }),
375
+ ).annotate({ identifier: "MRSRule" }) as any as S.Schema<MRSRule>;
376
+
377
+ export type MRSRuleGroupRulesMap = { [key: string]: MRSRule | undefined };
378
+ export const MRSRuleGroupRulesMap = /*@__PURE__*/ S.Record(
379
+ S.String,
380
+ MRSRule,
381
+ ) as any as S.Schema<MRSRuleGroupRulesMap>;
382
+
383
+ /** RuleGroup represents a collection of rules associated with a specific group. */
384
+ export interface MRSRuleGroup {
385
+ /** A description of what this group covers. */
386
+ description: string;
387
+ /** The name for the rule group. */
388
+ groupName: string;
389
+ rules?: MRSRuleGroupRulesMap;
390
+ }
391
+ export const MRSRuleGroup = /*@__PURE__*/ S.suspend(() =>
392
+ S.Struct({
393
+ description: S.String,
394
+ groupName: S.String,
395
+ rules: S.optional(MRSRuleGroupRulesMap),
396
+ }),
397
+ ).annotate({ identifier: "MRSRuleGroup" }) as any as S.Schema<MRSRuleGroup>;
398
+
399
+ /** Inventory of all available Managed Rule Set groups and their current configuration. The key is the unique Group ID. */
400
+ export type GetManagedRuleSetResponseGroupsMap = {
401
+ [key: string]: MRSRuleGroup | undefined;
402
+ };
403
+ export const GetManagedRuleSetResponseGroupsMap = /*@__PURE__*/ S.Record(
404
+ S.String,
405
+ MRSRuleGroup,
406
+ ) as any as S.Schema<GetManagedRuleSetResponseGroupsMap>;
407
+
408
+ /** List of WAFs that use this Managed Rule Set. */
409
+ export type MRSUsageItemsList = Array<string>;
410
+ export const MRSUsageItemsList = /*@__PURE__*/ S.Array(
411
+ S.String,
412
+ ) as any as S.Schema<MRSUsageItemsList>;
413
+
414
+ export interface MRSUsage {
415
+ /** Number of WAFs using this Managed Rule Set. */
416
+ count?: number;
417
+ /** List of WAFs that use this Managed Rule Set. */
418
+ items?: MRSUsageItemsList;
419
+ }
420
+ export const MRSUsage = /*@__PURE__*/ S.suspend(() =>
421
+ S.Struct({
422
+ count: S.optional(S.Number),
423
+ items: S.optional(MRSUsageItemsList),
424
+ }),
425
+ ).annotate({ identifier: "MRSUsage" }) as any as S.Schema<MRSUsage>;
426
+
427
+ /** GetManagedRuleSetResponse returns rule configuration name and it's rules. */
428
+ export interface GetManagedRuleSetResponse {
429
+ /** Inventory of all available Managed Rule Set groups and their current configuration. The key is the unique Group ID. */
430
+ groups?: GetManagedRuleSetResponseGroupsMap;
431
+ /** Managed rule set configuration name. */
432
+ name: string;
433
+ type: Type;
434
+ usage?: MRSUsage;
435
+ /** Managed rule set version. */
436
+ version: string;
437
+ }
438
+ export const GetManagedRuleSetResponse = /*@__PURE__*/ S.suspend(() =>
439
+ S.Struct({
440
+ groups: S.optional(GetManagedRuleSetResponseGroupsMap),
441
+ name: S.String,
442
+ type: Type,
443
+ usage: S.optional(MRSUsage),
444
+ version: S.String,
445
+ }),
446
+ ).annotate({
447
+ identifier: "GetManagedRuleSetResponse",
448
+ }) as any as S.Schema<GetManagedRuleSetResponse>;
449
+
450
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
451
+ export type CreateWAFRequestLabelsMap = { [key: string]: string | undefined };
452
+ export const CreateWAFRequestLabelsMap = /*@__PURE__*/ S.Record(
453
+ S.String,
454
+ S.String,
455
+ ) as any as S.Schema<CreateWAFRequestLabelsMap>;
456
+
457
+ export interface CreateWAFRequest {
458
+ projectId: string;
459
+ region: string;
460
+ /** Name of the CRG configuration for that WAF. */
461
+ customRuleGroupName?: string;
462
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
463
+ labels?: CreateWAFRequestLabelsMap;
464
+ /** Name of the managed rule set configuration for that WAF. */
465
+ managedRuleSetName?: string;
466
+ /** WAF name */
467
+ name: string;
468
+ }
469
+ export const CreateWAFRequest = /*@__PURE__*/ S.suspend(() =>
470
+ S.Struct({
471
+ projectId: S.String.pipe(T.Label()),
472
+ region: S.String.pipe(T.Label()),
473
+ customRuleGroupName: S.optional(S.String),
474
+ labels: S.optional(CreateWAFRequestLabelsMap),
475
+ managedRuleSetName: S.optional(S.String),
476
+ name: S.String,
477
+ }).pipe(
478
+ T.Http({
479
+ method: "POST",
480
+ uri: "/v1/projects/{projectId}/regions/{region}/wafs",
481
+ code: 200,
482
+ baseUrl: "https://alb-waf.api.stackit.cloud",
483
+ }),
484
+ ),
485
+ ).annotate({
486
+ identifier: "CreateWAFRequest",
487
+ }) as any as S.Schema<CreateWAFRequest>;
488
+
489
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
490
+ export type GetWAFResponseLabelsMap = { [key: string]: string | undefined };
491
+ export const GetWAFResponseLabelsMap = /*@__PURE__*/ S.Record(
492
+ S.String,
493
+ S.String,
494
+ ) as any as S.Schema<GetWAFResponseLabelsMap>;
495
+
496
+ /** The list of listener names in this Load Balancer, that are using the WAF. */
497
+ export type WAFUsageItemListenerNamesList = Array<string>;
498
+ export const WAFUsageItemListenerNamesList = /*@__PURE__*/ S.Array(
499
+ S.String,
500
+ ) as any as S.Schema<WAFUsageItemListenerNamesList>;
501
+
502
+ export interface WAFUsageItem {
503
+ /** The list of listener names in this Load Balancer, that are using the WAF. */
504
+ listenerNames?: WAFUsageItemListenerNamesList;
505
+ /** The display name of the Load Balancer. */
506
+ loadBalancerName: string;
507
+ }
508
+ export const WAFUsageItem = /*@__PURE__*/ S.suspend(() =>
509
+ S.Struct({
510
+ listenerNames: S.optional(WAFUsageItemListenerNamesList),
511
+ loadBalancerName: S.String,
512
+ }),
513
+ ).annotate({ identifier: "WAFUsageItem" }) as any as S.Schema<WAFUsageItem>;
514
+
515
+ /** List of Application Load Balancers with their associated listeners that use this WAF configuration. */
516
+ export type WAFUsageItemsList = Array<WAFUsageItem>;
517
+ export const WAFUsageItemsList = /*@__PURE__*/ S.Array(
518
+ WAFUsageItem,
519
+ ) as any as S.Schema<WAFUsageItemsList>;
520
+
521
+ export interface WAFUsage {
522
+ /** Number of listeners using this WAF configuration. */
523
+ count?: number;
524
+ /** List of Application Load Balancers with their associated listeners that use this WAF configuration. */
525
+ items?: WAFUsageItemsList;
526
+ }
527
+ export const WAFUsage = /*@__PURE__*/ S.suspend(() =>
528
+ S.Struct({
529
+ count: S.optional(S.Number),
530
+ items: S.optional(WAFUsageItemsList),
531
+ }),
532
+ ).annotate({ identifier: "WAFUsage" }) as any as S.Schema<WAFUsage>;
533
+
534
+ /** GetWAFResponse returns detailed information about the WAF, which includes the identifying name, references to MRS/CRG and usage. */
535
+ export interface GetWAFResponse {
536
+ /** Name of the CRG configuration for that WAF. */
537
+ customRuleGroupName?: string;
538
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
539
+ labels?: GetWAFResponseLabelsMap;
540
+ /** Name of the managed rule set configuration for that WAF. */
541
+ managedRuleSetName?: string;
542
+ /** WAF name */
543
+ name: string;
544
+ usage?: WAFUsage;
545
+ }
546
+ export const GetWAFResponse = /*@__PURE__*/ S.suspend(() =>
547
+ S.Struct({
548
+ customRuleGroupName: S.optional(S.String),
549
+ labels: S.optional(GetWAFResponseLabelsMap),
550
+ managedRuleSetName: S.optional(S.String),
551
+ name: S.String,
552
+ usage: S.optional(WAFUsage),
553
+ }),
554
+ ).annotate({ identifier: "GetWAFResponse" }) as any as S.Schema<GetWAFResponse>;
555
+
556
+ export interface DeleteCustomRuleGroupRequest {
557
+ projectId: string;
558
+ region: string;
559
+ name: string;
560
+ }
561
+ export const DeleteCustomRuleGroupRequest = /*@__PURE__*/ S.suspend(() =>
562
+ S.Struct({
563
+ projectId: S.String.pipe(T.Label()),
564
+ region: S.String.pipe(T.Label()),
565
+ name: S.String.pipe(T.Label()),
566
+ }).pipe(
567
+ T.Http({
568
+ method: "DELETE",
569
+ uri: "/v1/projects/{projectId}/regions/{region}/custom-rule-groups/{name}",
570
+ code: 200,
571
+ baseUrl: "https://alb-waf.api.stackit.cloud",
572
+ }),
573
+ ),
574
+ ).annotate({
575
+ identifier: "DeleteCustomRuleGroupRequest",
576
+ }) as any as S.Schema<DeleteCustomRuleGroupRequest>;
577
+
578
+ export type DeleteCustomRuleGroupResponse2 = unknown;
579
+ export const DeleteCustomRuleGroupResponse2 = /*@__PURE__*/ S.suspend(() =>
580
+ S.Unknown.pipe(T.RawResponseRoot()),
581
+ ).annotate({
582
+ identifier: "DeleteCustomRuleGroupResponse2",
583
+ }) as any as S.Schema<DeleteCustomRuleGroupResponse2>;
584
+
585
+ export interface DeleteManagedRuleSetRequest {
586
+ projectId: string;
587
+ region: string;
588
+ name: string;
589
+ }
590
+ export const DeleteManagedRuleSetRequest = /*@__PURE__*/ S.suspend(() =>
591
+ S.Struct({
592
+ projectId: S.String.pipe(T.Label()),
593
+ region: S.String.pipe(T.Label()),
594
+ name: S.String.pipe(T.Label()),
595
+ }).pipe(
596
+ T.Http({
597
+ method: "DELETE",
598
+ uri: "/v1/projects/{projectId}/regions/{region}/managed-rule-sets/{name}",
599
+ code: 200,
600
+ baseUrl: "https://alb-waf.api.stackit.cloud",
601
+ }),
602
+ ),
603
+ ).annotate({
604
+ identifier: "DeleteManagedRuleSetRequest",
605
+ }) as any as S.Schema<DeleteManagedRuleSetRequest>;
606
+
607
+ export type DeleteManagedRuleSetResponse2 = unknown;
608
+ export const DeleteManagedRuleSetResponse2 = /*@__PURE__*/ S.suspend(() =>
609
+ S.Unknown.pipe(T.RawResponseRoot()),
610
+ ).annotate({
611
+ identifier: "DeleteManagedRuleSetResponse2",
612
+ }) as any as S.Schema<DeleteManagedRuleSetResponse2>;
613
+
614
+ export interface DeleteWAFRequest {
615
+ projectId: string;
616
+ region: string;
617
+ name: string;
618
+ }
619
+ export const DeleteWAFRequest = /*@__PURE__*/ S.suspend(() =>
620
+ S.Struct({
621
+ projectId: S.String.pipe(T.Label()),
622
+ region: S.String.pipe(T.Label()),
623
+ name: S.String.pipe(T.Label()),
624
+ }).pipe(
625
+ T.Http({
626
+ method: "DELETE",
627
+ uri: "/v1/projects/{projectId}/regions/{region}/wafs/{name}",
628
+ code: 200,
629
+ baseUrl: "https://alb-waf.api.stackit.cloud",
630
+ }),
631
+ ),
632
+ ).annotate({
633
+ identifier: "DeleteWAFRequest",
634
+ }) as any as S.Schema<DeleteWAFRequest>;
635
+
636
+ export type DeleteWAFResponse2 = unknown;
637
+ export const DeleteWAFResponse2 = /*@__PURE__*/ S.suspend(() =>
638
+ S.Unknown.pipe(T.RawResponseRoot()),
639
+ ).annotate({
640
+ identifier: "DeleteWAFResponse2",
641
+ }) as any as S.Schema<DeleteWAFResponse2>;
642
+
643
+ export interface GetCustomRuleGroupRequest {
644
+ projectId: string;
645
+ region: string;
646
+ name: string;
647
+ }
648
+ export const GetCustomRuleGroupRequest = /*@__PURE__*/ S.suspend(() =>
649
+ S.Struct({
650
+ projectId: S.String.pipe(T.Label()),
651
+ region: S.String.pipe(T.Label()),
652
+ name: S.String.pipe(T.Label()),
653
+ }).pipe(
654
+ T.Http({
655
+ method: "GET",
656
+ uri: "/v1/projects/{projectId}/regions/{region}/custom-rule-groups/{name}",
657
+ code: 200,
658
+ baseUrl: "https://alb-waf.api.stackit.cloud",
659
+ }),
660
+ ),
661
+ ).annotate({
662
+ identifier: "GetCustomRuleGroupRequest",
663
+ }) as any as S.Schema<GetCustomRuleGroupRequest>;
664
+
665
+ export interface GetManagedRuleSetRequest {
666
+ projectId: string;
667
+ region: string;
668
+ name: string;
669
+ }
670
+ export const GetManagedRuleSetRequest = /*@__PURE__*/ S.suspend(() =>
671
+ S.Struct({
672
+ projectId: S.String.pipe(T.Label()),
673
+ region: S.String.pipe(T.Label()),
674
+ name: S.String.pipe(T.Label()),
675
+ }).pipe(
676
+ T.Http({
677
+ method: "GET",
678
+ uri: "/v1/projects/{projectId}/regions/{region}/managed-rule-sets/{name}",
679
+ code: 200,
680
+ baseUrl: "https://alb-waf.api.stackit.cloud",
681
+ }),
682
+ ),
683
+ ).annotate({
684
+ identifier: "GetManagedRuleSetRequest",
685
+ }) as any as S.Schema<GetManagedRuleSetRequest>;
686
+
687
+ export interface GetQuotaRequest {
688
+ projectId: string;
689
+ region: string;
690
+ }
691
+ export const GetQuotaRequest = /*@__PURE__*/ S.suspend(() =>
692
+ S.Struct({
693
+ projectId: S.String.pipe(T.Label()),
694
+ region: S.String.pipe(T.Label()),
695
+ }).pipe(
696
+ T.Http({
697
+ method: "GET",
698
+ uri: "/v1/projects/{projectId}/regions/{region}/quotas",
699
+ code: 200,
700
+ baseUrl: "https://alb-waf.api.stackit.cloud",
701
+ }),
702
+ ),
703
+ ).annotate({
704
+ identifier: "GetQuotaRequest",
705
+ }) as any as S.Schema<GetQuotaRequest>;
706
+
707
+ /** CRG quotas holds the limit and usage for CRG resources */
708
+ export interface CRGConfigQuota {
709
+ /** The maximum number of custom rule groups in this project. */
710
+ limit?: number;
711
+ /** The number of custom rule groups that are currently existing in this project. */
712
+ usage?: number;
713
+ }
714
+ export const CRGConfigQuota = /*@__PURE__*/ S.suspend(() =>
715
+ S.Struct({
716
+ limit: S.optional(S.Number),
717
+ usage: S.optional(S.Number),
718
+ }),
719
+ ).annotate({ identifier: "CRGConfigQuota" }) as any as S.Schema<CRGConfigQuota>;
720
+
721
+ /** MRS Config quota holds the limit and usage for Managed Rule Set configuration resources */
722
+ export interface MRSConfigQuota {
723
+ /** The maximum number of Managed Rule Set configurations in this project. */
724
+ limit?: number;
725
+ /** The number of Managed Rule Set configurations that are currently existing in this project. */
726
+ usage?: number;
727
+ }
728
+ export const MRSConfigQuota = /*@__PURE__*/ S.suspend(() =>
729
+ S.Struct({
730
+ limit: S.optional(S.Number),
731
+ usage: S.optional(S.Number),
732
+ }),
733
+ ).annotate({ identifier: "MRSConfigQuota" }) as any as S.Schema<MRSConfigQuota>;
734
+
735
+ /** WAF Config quota holds the limit and usage for Web Application Firewall configuration resources */
736
+ export interface WAFConfigQuota {
737
+ /** The maximum number of Web Application Firewall configurations in this project. */
738
+ limit?: number;
739
+ /** The number of Web Application Firewall configurations that are currently existing in this project. */
740
+ usage?: number;
741
+ }
742
+ export const WAFConfigQuota = /*@__PURE__*/ S.suspend(() =>
743
+ S.Struct({
744
+ limit: S.optional(S.Number),
745
+ usage: S.optional(S.Number),
746
+ }),
747
+ ).annotate({ identifier: "WAFConfigQuota" }) as any as S.Schema<WAFConfigQuota>;
748
+
749
+ /** Quotas holds the specific quota elements for different resources */
750
+ export interface Quotas {
751
+ customRuleGroup: CRGConfigQuota;
752
+ managedRuleSet: MRSConfigQuota;
753
+ webApplicationFirewall: WAFConfigQuota;
754
+ }
755
+ export const Quotas = /*@__PURE__*/ S.suspend(() =>
756
+ S.Struct({
757
+ customRuleGroup: CRGConfigQuota,
758
+ managedRuleSet: MRSConfigQuota,
759
+ webApplicationFirewall: WAFConfigQuota,
760
+ }),
761
+ ).annotate({ identifier: "Quotas" }) as any as S.Schema<Quotas>;
762
+
763
+ export interface GetQuotaResponse {
764
+ /** Project identifier */
765
+ projectId?: string;
766
+ quotas: Quotas;
767
+ /** Region */
768
+ region?: string;
769
+ }
770
+ export const GetQuotaResponse = /*@__PURE__*/ S.suspend(() =>
771
+ S.Struct({
772
+ projectId: S.optional(S.String),
773
+ quotas: Quotas,
774
+ region: S.optional(S.String),
775
+ }),
776
+ ).annotate({
777
+ identifier: "GetQuotaResponse",
778
+ }) as any as S.Schema<GetQuotaResponse>;
779
+
780
+ export interface GetWAFRequest {
781
+ projectId: string;
782
+ region: string;
783
+ name: string;
784
+ }
785
+ export const GetWAFRequest = /*@__PURE__*/ S.suspend(() =>
786
+ S.Struct({
787
+ projectId: S.String.pipe(T.Label()),
788
+ region: S.String.pipe(T.Label()),
789
+ name: S.String.pipe(T.Label()),
790
+ }).pipe(
791
+ T.Http({
792
+ method: "GET",
793
+ uri: "/v1/projects/{projectId}/regions/{region}/wafs/{name}",
794
+ code: 200,
795
+ baseUrl: "https://alb-waf.api.stackit.cloud",
796
+ }),
797
+ ),
798
+ ).annotate({ identifier: "GetWAFRequest" }) as any as S.Schema<GetWAFRequest>;
799
+
800
+ export interface ListCustomRuleGroupRequest {
801
+ projectId: string;
802
+ region: string;
803
+ /** page_size specifies how many rule configurations should be returned on this page. Must be a positive number <= 1000 */
804
+ pageSize?: string;
805
+ /** page_id is a page identifier returned by the previous response and is used to request the next page */
806
+ pageId?: string;
807
+ }
808
+ export const ListCustomRuleGroupRequest = /*@__PURE__*/ S.suspend(() =>
809
+ S.Struct({
810
+ projectId: S.String.pipe(T.Label()),
811
+ region: S.String.pipe(T.Label()),
812
+ pageSize: S.optional(S.String.pipe(T.Query())),
813
+ pageId: S.optional(S.String.pipe(T.Query())),
814
+ }).pipe(
815
+ T.Http({
816
+ method: "GET",
817
+ uri: "/v1/projects/{projectId}/regions/{region}/custom-rule-groups",
818
+ code: 200,
819
+ baseUrl: "https://alb-waf.api.stackit.cloud",
820
+ }),
821
+ ),
822
+ ).annotate({
823
+ identifier: "ListCustomRuleGroupRequest",
824
+ }) as any as S.Schema<ListCustomRuleGroupRequest>;
825
+
826
+ export type ListCustomRuleGroupResponseItemsList =
827
+ Array<GetCustomRuleGroupResponse>;
828
+ export const ListCustomRuleGroupResponseItemsList = /*@__PURE__*/ S.Array(
829
+ GetCustomRuleGroupResponse,
830
+ ) as any as S.Schema<ListCustomRuleGroupResponseItemsList>;
831
+
832
+ /** ListCustomRuleGroupResponse returns a list of Custom Rule Group responses. */
833
+ export interface ListCustomRuleGroupResponse {
834
+ items?: ListCustomRuleGroupResponseItemsList;
835
+ /** Continue token from the ListCustomRuleGroupResponse with Limit option */
836
+ nextPageId?: string;
837
+ }
838
+ export const ListCustomRuleGroupResponse = /*@__PURE__*/ S.suspend(() =>
839
+ S.Struct({
840
+ items: S.optional(ListCustomRuleGroupResponseItemsList),
841
+ nextPageId: S.optional(S.String),
842
+ }),
843
+ ).annotate({
844
+ identifier: "ListCustomRuleGroupResponse",
845
+ }) as any as S.Schema<ListCustomRuleGroupResponse>;
846
+
847
+ export interface ListManagedRuleSetsRequest {
848
+ projectId: string;
849
+ region: string;
850
+ /** page_size specifies how many rule configurations should be returned on this page. Must be a positive number <= 1000 */
851
+ pageSize?: string;
852
+ /** page_id is a page identifier returned by the previous response and is used to request the next page */
853
+ pageId?: string;
854
+ }
855
+ export const ListManagedRuleSetsRequest = /*@__PURE__*/ S.suspend(() =>
856
+ S.Struct({
857
+ projectId: S.String.pipe(T.Label()),
858
+ region: S.String.pipe(T.Label()),
859
+ pageSize: S.optional(S.String.pipe(T.Query())),
860
+ pageId: S.optional(S.String.pipe(T.Query())),
861
+ }).pipe(
862
+ T.Http({
863
+ method: "GET",
864
+ uri: "/v1/projects/{projectId}/regions/{region}/managed-rule-sets",
865
+ code: 200,
866
+ baseUrl: "https://alb-waf.api.stackit.cloud",
867
+ }),
868
+ ),
869
+ ).annotate({
870
+ identifier: "ListManagedRuleSetsRequest",
871
+ }) as any as S.Schema<ListManagedRuleSetsRequest>;
872
+
873
+ export interface GetLimitedManagedRuleSetResponse {
874
+ /** Managed rule set configuration name. */
875
+ name: string;
876
+ type: Type;
877
+ usage?: MRSUsage;
878
+ /** Managed rule set version. */
879
+ version: string;
880
+ }
881
+ export const GetLimitedManagedRuleSetResponse = /*@__PURE__*/ S.suspend(() =>
882
+ S.Struct({
883
+ name: S.String,
884
+ type: Type,
885
+ usage: S.optional(MRSUsage),
886
+ version: S.String,
887
+ }),
888
+ ).annotate({
889
+ identifier: "GetLimitedManagedRuleSetResponse",
890
+ }) as any as S.Schema<GetLimitedManagedRuleSetResponse>;
891
+
892
+ export type ListManagedRuleSetResponseItemsList =
893
+ Array<GetLimitedManagedRuleSetResponse>;
894
+ export const ListManagedRuleSetResponseItemsList = /*@__PURE__*/ S.Array(
895
+ GetLimitedManagedRuleSetResponse,
896
+ ) as any as S.Schema<ListManagedRuleSetResponseItemsList>;
897
+
898
+ /** ListManagedRuleSetResponse returns a list of rule configuration responses. */
899
+ export interface ListManagedRuleSetResponse {
900
+ items?: ListManagedRuleSetResponseItemsList;
901
+ /** Continue token from the ListManagedRuleSetResponse with Limit option */
902
+ nextPageId?: string;
903
+ }
904
+ export const ListManagedRuleSetResponse = /*@__PURE__*/ S.suspend(() =>
905
+ S.Struct({
906
+ items: S.optional(ListManagedRuleSetResponseItemsList),
907
+ nextPageId: S.optional(S.String),
908
+ }),
909
+ ).annotate({
910
+ identifier: "ListManagedRuleSetResponse",
911
+ }) as any as S.Schema<ListManagedRuleSetResponse>;
912
+
913
+ export interface ListWAFRequest {
914
+ projectId: string;
915
+ region: string;
916
+ /** page_size specifies how many WAFs should be returned on this page. Must be a positive number <= 1000 */
917
+ pageSize?: string;
918
+ /** page_id is a page identifier returned by the previous response and is used to request the next page */
919
+ pageId?: string;
920
+ }
921
+ export const ListWAFRequest = /*@__PURE__*/ S.suspend(() =>
922
+ S.Struct({
923
+ projectId: S.String.pipe(T.Label()),
924
+ region: S.String.pipe(T.Label()),
925
+ pageSize: S.optional(S.String.pipe(T.Query())),
926
+ pageId: S.optional(S.String.pipe(T.Query())),
927
+ }).pipe(
928
+ T.Http({
929
+ method: "GET",
930
+ uri: "/v1/projects/{projectId}/regions/{region}/wafs",
931
+ code: 200,
932
+ baseUrl: "https://alb-waf.api.stackit.cloud",
933
+ }),
934
+ ),
935
+ ).annotate({ identifier: "ListWAFRequest" }) as any as S.Schema<ListWAFRequest>;
936
+
937
+ export type ListWAFResponseItemsList = Array<GetWAFResponse>;
938
+ export const ListWAFResponseItemsList = /*@__PURE__*/ S.Array(
939
+ GetWAFResponse,
940
+ ) as any as S.Schema<ListWAFResponseItemsList>;
941
+
942
+ /** ListWAFResponse returns a list of WAF responses. */
943
+ export interface ListWAFResponse {
944
+ items?: ListWAFResponseItemsList;
945
+ /** Continue token from the ListWAFResponse with Limit option */
946
+ nextPageId?: string;
947
+ }
948
+ export const ListWAFResponse = /*@__PURE__*/ S.suspend(() =>
949
+ S.Struct({
950
+ items: S.optional(ListWAFResponseItemsList),
951
+ nextPageId: S.optional(S.String),
952
+ }),
953
+ ).annotate({
954
+ identifier: "ListWAFResponse",
955
+ }) as any as S.Schema<ListWAFResponse>;
956
+
957
+ export interface PatchMRSRule {
958
+ mode?: Mode | (string & {});
959
+ }
960
+ export const PatchMRSRule = /*@__PURE__*/ S.suspend(() =>
961
+ S.Struct({
962
+ mode: S.optional(Mode),
963
+ }),
964
+ ).annotate({ identifier: "PatchMRSRule" }) as any as S.Schema<PatchMRSRule>;
965
+
966
+ export type PatchMRSRuleGroupRulesMap = {
967
+ [key: string]: PatchMRSRule | undefined;
968
+ };
969
+ export const PatchMRSRuleGroupRulesMap = /*@__PURE__*/ S.Record(
970
+ S.String,
971
+ PatchMRSRule,
972
+ ) as any as S.Schema<PatchMRSRuleGroupRulesMap>;
973
+
974
+ export interface PatchMRSRuleGroup {
975
+ rules: PatchMRSRuleGroupRulesMap;
976
+ }
977
+ export const PatchMRSRuleGroup = /*@__PURE__*/ S.suspend(() =>
978
+ S.Struct({
979
+ rules: PatchMRSRuleGroupRulesMap,
980
+ }),
981
+ ).annotate({
982
+ identifier: "PatchMRSRuleGroup",
983
+ }) as any as S.Schema<PatchMRSRuleGroup>;
984
+
985
+ /** Map of Managed Rule Set groups to be patched. The key is the Group ID (e.g., 942 for SQL Injection). Only provided rules within the group will be updated; others remain unchanged. */
986
+ export type PatchManagedRuleSetRequestGroupsMap = {
987
+ [key: string]: PatchMRSRuleGroup | undefined;
988
+ };
989
+ export const PatchManagedRuleSetRequestGroupsMap = /*@__PURE__*/ S.Record(
990
+ S.String,
991
+ PatchMRSRuleGroup,
992
+ ) as any as S.Schema<PatchManagedRuleSetRequestGroupsMap>;
993
+
994
+ export interface PatchManagedRuleSetRequest {
995
+ projectId: string;
996
+ region: string;
997
+ name: string;
998
+ /** Map of Managed Rule Set groups to be patched. The key is the Group ID (e.g., 942 for SQL Injection). Only provided rules within the group will be updated; others remain unchanged. */
999
+ groups: PatchManagedRuleSetRequestGroupsMap;
1000
+ }
1001
+ export const PatchManagedRuleSetRequest = /*@__PURE__*/ S.suspend(() =>
1002
+ S.Struct({
1003
+ projectId: S.String.pipe(T.Label()),
1004
+ region: S.String.pipe(T.Label()),
1005
+ name: S.String.pipe(T.Label()),
1006
+ groups: PatchManagedRuleSetRequestGroupsMap,
1007
+ }).pipe(
1008
+ T.Http({
1009
+ method: "PATCH",
1010
+ uri: "/v1/projects/{projectId}/regions/{region}/managed-rule-sets/{name}",
1011
+ code: 200,
1012
+ baseUrl: "https://alb-waf.api.stackit.cloud",
1013
+ }),
1014
+ ),
1015
+ ).annotate({
1016
+ identifier: "PatchManagedRuleSetRequest",
1017
+ }) as any as S.Schema<PatchManagedRuleSetRequest>;
1018
+
1019
+ /** The collection of custom rule group SecLang parameters forming this execution group. Replaces the existing rules atomically. */
1020
+ export type UpdateCustomRuleGroupRequestRulesList = Array<CreateCustomRule>;
1021
+ export const UpdateCustomRuleGroupRequestRulesList = /*@__PURE__*/ S.Array(
1022
+ CreateCustomRule,
1023
+ ) as any as S.Schema<UpdateCustomRuleGroupRequestRulesList>;
1024
+
1025
+ export interface UpdateCustomRuleGroupRequest {
1026
+ projectId: string;
1027
+ region: string;
1028
+ name: string;
1029
+ /** The collection of custom rule group SecLang parameters forming this execution group. Replaces the existing rules atomically. */
1030
+ rules: UpdateCustomRuleGroupRequestRulesList;
1031
+ }
1032
+ export const UpdateCustomRuleGroupRequest = /*@__PURE__*/ S.suspend(() =>
1033
+ S.Struct({
1034
+ projectId: S.String.pipe(T.Label()),
1035
+ region: S.String.pipe(T.Label()),
1036
+ name: S.String.pipe(T.Label()),
1037
+ rules: UpdateCustomRuleGroupRequestRulesList,
1038
+ }).pipe(
1039
+ T.Http({
1040
+ method: "PUT",
1041
+ uri: "/v1/projects/{projectId}/regions/{region}/custom-rule-groups/{name}",
1042
+ code: 200,
1043
+ baseUrl: "https://alb-waf.api.stackit.cloud",
1044
+ }),
1045
+ ),
1046
+ ).annotate({
1047
+ identifier: "UpdateCustomRuleGroupRequest",
1048
+ }) as any as S.Schema<UpdateCustomRuleGroupRequest>;
1049
+
1050
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
1051
+ export type UpdateWAFRequestLabelsMap = { [key: string]: string | undefined };
1052
+ export const UpdateWAFRequestLabelsMap = /*@__PURE__*/ S.Record(
1053
+ S.String,
1054
+ S.String,
1055
+ ) as any as S.Schema<UpdateWAFRequestLabelsMap>;
1056
+
1057
+ export interface UpdateWAFRequest {
1058
+ projectId: string;
1059
+ region: string;
1060
+ name: string;
1061
+ /** Name of the CRG configuration for that WAF. */
1062
+ customRuleGroupName?: string;
1063
+ /** Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per WAF. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. */
1064
+ labels?: UpdateWAFRequestLabelsMap;
1065
+ /** Name of the managed rule set configuration for that WAF. */
1066
+ managedRuleSetName?: string;
1067
+ }
1068
+ export const UpdateWAFRequest = /*@__PURE__*/ S.suspend(() =>
1069
+ S.Struct({
1070
+ projectId: S.String.pipe(T.Label()),
1071
+ region: S.String.pipe(T.Label()),
1072
+ name: S.String.pipe(T.Label()),
1073
+ customRuleGroupName: S.optional(S.String),
1074
+ labels: S.optional(UpdateWAFRequestLabelsMap),
1075
+ managedRuleSetName: S.optional(S.String),
1076
+ }).pipe(
1077
+ T.Http({
1078
+ method: "PUT",
1079
+ uri: "/v1/projects/{projectId}/regions/{region}/wafs/{name}",
1080
+ code: 200,
1081
+ baseUrl: "https://alb-waf.api.stackit.cloud",
1082
+ }),
1083
+ ),
1084
+ ).annotate({
1085
+ identifier: "UpdateWAFRequest",
1086
+ }) as any as S.Schema<UpdateWAFRequest>;
1087
+
1088
+ export type CreateCustomRuleGroupError =
1089
+ | BadRequest
1090
+ | Forbidden
1091
+ | StackitOpError;
1092
+ /** Create a CRG configuration Creates a structured rule configuration using the abstract CRG. It can be referenced by any number of WAF configurations in the same project. */
1093
+ export const createCustomRuleGroup: API.OperationMethod<
1094
+ CreateCustomRuleGroupRequest,
1095
+ GetCustomRuleGroupResponse,
1096
+ CreateCustomRuleGroupError,
1097
+ StackitOpContext
1098
+ > = /*@__PURE__*/ API.make(() => ({
1099
+ input: CreateCustomRuleGroupRequest,
1100
+ output: GetCustomRuleGroupResponse,
1101
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1102
+ protocol: StackitProtocol,
1103
+ retry: Retry.Retry,
1104
+ }));
1105
+
1106
+ export type CreateManagedRuleSetError = BadRequest | Forbidden | StackitOpError;
1107
+ /** Create a MRS configuration With this endpoint a managed rule set (MRS) configuration is created and stored in this project. Currently it is only possible to enable it. This rule configuration is supposed to be referenced by a WAF configuration. It can be referenced by any number of WAF configurations in the same project. */
1108
+ export const createManagedRuleSet: API.OperationMethod<
1109
+ CreateManagedRuleSetRequest,
1110
+ GetManagedRuleSetResponse,
1111
+ CreateManagedRuleSetError,
1112
+ StackitOpContext
1113
+ > = /*@__PURE__*/ API.make(() => ({
1114
+ input: CreateManagedRuleSetRequest,
1115
+ output: GetManagedRuleSetResponse,
1116
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1117
+ protocol: StackitProtocol,
1118
+ retry: Retry.Retry,
1119
+ }));
1120
+
1121
+ export type CreateWAFError = BadRequest | Forbidden | StackitOpError;
1122
+ /** Create a WAF configuration This endpoint will create and store a WAF configuration in a project. The name of this WAF configuration is supposed to be used in the listener of an Application Load Balancer, which will activate this configuration and in addition it is possible to enable the managed rule set. This WAF configuration can be used by any number of Application Load Balancers in the same project. The configuration has a reference to a rule configuration. This rule configuration has to exist when trying to create a WAF configuration. Later other configuration references will be added to this object. */
1123
+ export const createWAF: API.OperationMethod<
1124
+ CreateWAFRequest,
1125
+ GetWAFResponse,
1126
+ CreateWAFError,
1127
+ StackitOpContext
1128
+ > = /*@__PURE__*/ API.make(() => ({
1129
+ input: CreateWAFRequest,
1130
+ output: GetWAFResponse,
1131
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1132
+ protocol: StackitProtocol,
1133
+ retry: Retry.Retry,
1134
+ }));
1135
+
1136
+ export type DeleteCustomRuleGroupError =
1137
+ | BadRequest
1138
+ | Forbidden
1139
+ | StackitOpError;
1140
+ /** Delete a CRG configuration To delete a custom rule group configuration this endpoint is used, but it is only possible to delete it if no WAF configuration is referencing it. */
1141
+ export const deleteCustomRuleGroup: API.OperationMethod<
1142
+ DeleteCustomRuleGroupRequest,
1143
+ DeleteCustomRuleGroupResponse2,
1144
+ DeleteCustomRuleGroupError,
1145
+ StackitOpContext
1146
+ > = /*@__PURE__*/ API.make(() => ({
1147
+ input: DeleteCustomRuleGroupRequest,
1148
+ output: DeleteCustomRuleGroupResponse2,
1149
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1150
+ protocol: StackitProtocol,
1151
+ retry: Retry.Retry,
1152
+ }));
1153
+
1154
+ export type DeleteManagedRuleSetError = BadRequest | Forbidden | StackitOpError;
1155
+ /** Delete a MRS configuration To delete a managed rule set (MRS) configuration this endpoint is used, but it is only possible to delete it if no WAF configuration is referencing it. */
1156
+ export const deleteManagedRuleSet: API.OperationMethod<
1157
+ DeleteManagedRuleSetRequest,
1158
+ DeleteManagedRuleSetResponse2,
1159
+ DeleteManagedRuleSetError,
1160
+ StackitOpContext
1161
+ > = /*@__PURE__*/ API.make(() => ({
1162
+ input: DeleteManagedRuleSetRequest,
1163
+ output: DeleteManagedRuleSetResponse2,
1164
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1165
+ protocol: StackitProtocol,
1166
+ retry: Retry.Retry,
1167
+ }));
1168
+
1169
+ export type DeleteWAFError = BadRequest | Forbidden | StackitOpError;
1170
+ /** Delete a WAF configuration This will delete the specified WAF configuration, but only if it is not used by any Application Load Balancer in the project. */
1171
+ export const deleteWAF: API.OperationMethod<
1172
+ DeleteWAFRequest,
1173
+ DeleteWAFResponse2,
1174
+ DeleteWAFError,
1175
+ StackitOpContext
1176
+ > = /*@__PURE__*/ API.make(() => ({
1177
+ input: DeleteWAFRequest,
1178
+ output: DeleteWAFResponse2,
1179
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1180
+ protocol: StackitProtocol,
1181
+ retry: Retry.Retry,
1182
+ }));
1183
+
1184
+ export type GetCustomRuleGroupError =
1185
+ | BadRequest
1186
+ | Forbidden
1187
+ | NotFound
1188
+ | StackitOpError;
1189
+ /** Retrieve a CRG configuration Retrieves the specified SecLang custom rule configuration (CRG) structure. */
1190
+ export const getCustomRuleGroup: API.OperationMethod<
1191
+ GetCustomRuleGroupRequest,
1192
+ GetCustomRuleGroupResponse,
1193
+ GetCustomRuleGroupError,
1194
+ StackitOpContext
1195
+ > = /*@__PURE__*/ API.make(() => ({
1196
+ input: GetCustomRuleGroupRequest,
1197
+ output: GetCustomRuleGroupResponse,
1198
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1199
+ protocol: StackitProtocol,
1200
+ retry: Retry.Retry,
1201
+ }));
1202
+
1203
+ export type GetManagedRuleSetError =
1204
+ | BadRequest
1205
+ | Forbidden
1206
+ | NotFound
1207
+ | StackitOpError;
1208
+ /** Retrieve a MRS configuration To retrieve an existing managed rule set (MRS) configuration this endpoint can be used. */
1209
+ export const getManagedRuleSet: API.OperationMethod<
1210
+ GetManagedRuleSetRequest,
1211
+ GetManagedRuleSetResponse,
1212
+ GetManagedRuleSetError,
1213
+ StackitOpContext
1214
+ > = /*@__PURE__*/ API.make(() => ({
1215
+ input: GetManagedRuleSetRequest,
1216
+ output: GetManagedRuleSetResponse,
1217
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1218
+ protocol: StackitProtocol,
1219
+ retry: Retry.Retry,
1220
+ }));
1221
+
1222
+ export type GetQuotaError = BadRequest | Forbidden | StackitOpError;
1223
+ /** Get the quota for WAF resources in a project. Retrieves the configured WAF resource quotas for the project. Limit can be changed via service request. */
1224
+ export const getQuota: API.OperationMethod<
1225
+ GetQuotaRequest,
1226
+ GetQuotaResponse,
1227
+ GetQuotaError,
1228
+ StackitOpContext
1229
+ > = /*@__PURE__*/ API.make(() => ({
1230
+ input: GetQuotaRequest,
1231
+ output: GetQuotaResponse,
1232
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1233
+ protocol: StackitProtocol,
1234
+ retry: Retry.Retry,
1235
+ }));
1236
+
1237
+ export type GetWAFError = BadRequest | Forbidden | NotFound | StackitOpError;
1238
+ /** Retrieve a WAF configuration This endpoint will return the specified WAF configuration. */
1239
+ export const getWAF: API.OperationMethod<
1240
+ GetWAFRequest,
1241
+ GetWAFResponse,
1242
+ GetWAFError,
1243
+ StackitOpContext
1244
+ > = /*@__PURE__*/ API.make(() => ({
1245
+ input: GetWAFRequest,
1246
+ output: GetWAFResponse,
1247
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1248
+ protocol: StackitProtocol,
1249
+ retry: Retry.Retry,
1250
+ }));
1251
+
1252
+ export type ListCustomRuleGroupError = BadRequest | Forbidden | StackitOpError;
1253
+ /** List of CRG configurations List all existing Custom Rule Groups that are stored in the project. */
1254
+ export const listCustomRuleGroup: API.OperationMethod<
1255
+ ListCustomRuleGroupRequest,
1256
+ ListCustomRuleGroupResponse,
1257
+ ListCustomRuleGroupError,
1258
+ StackitOpContext
1259
+ > = /*@__PURE__*/ API.make(() => ({
1260
+ input: ListCustomRuleGroupRequest,
1261
+ output: ListCustomRuleGroupResponse,
1262
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1263
+ protocol: StackitProtocol,
1264
+ retry: Retry.Retry,
1265
+ }));
1266
+
1267
+ export type ListManagedRuleSetsError = BadRequest | Forbidden | StackitOpError;
1268
+ /** List of MRS configurations List all existing managed rule set (MRS) configurations that are stored in the project. */
1269
+ export const listManagedRuleSets: API.OperationMethod<
1270
+ ListManagedRuleSetsRequest,
1271
+ ListManagedRuleSetResponse,
1272
+ ListManagedRuleSetsError,
1273
+ StackitOpContext
1274
+ > = /*@__PURE__*/ API.make(() => ({
1275
+ input: ListManagedRuleSetsRequest,
1276
+ output: ListManagedRuleSetResponse,
1277
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1278
+ protocol: StackitProtocol,
1279
+ retry: Retry.Retry,
1280
+ }));
1281
+
1282
+ export type ListWAFError = BadRequest | Forbidden | StackitOpError;
1283
+ /** List of WAF configurations To list all WAF configurations stored in a project, use this endpoint. */
1284
+ export const listWAF: API.OperationMethod<
1285
+ ListWAFRequest,
1286
+ ListWAFResponse,
1287
+ ListWAFError,
1288
+ StackitOpContext
1289
+ > = /*@__PURE__*/ API.make(() => ({
1290
+ input: ListWAFRequest,
1291
+ output: ListWAFResponse,
1292
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1293
+ protocol: StackitProtocol,
1294
+ retry: Retry.Retry,
1295
+ }));
1296
+
1297
+ export type PatchManagedRuleSetError =
1298
+ | BadRequest
1299
+ | Forbidden
1300
+ | NotFound
1301
+ | StackitOpError;
1302
+ /** Granularly update a MRS configuration Accepts the same structure as the GET response. Only fields provided with values will be updated. */
1303
+ export const patchManagedRuleSet: API.OperationMethod<
1304
+ PatchManagedRuleSetRequest,
1305
+ GetManagedRuleSetResponse,
1306
+ PatchManagedRuleSetError,
1307
+ StackitOpContext
1308
+ > = /*@__PURE__*/ API.make(() => ({
1309
+ input: PatchManagedRuleSetRequest,
1310
+ output: GetManagedRuleSetResponse,
1311
+ errors: [BadRequest, Forbidden, NotFound, UnknownStackitError],
1312
+ protocol: StackitProtocol,
1313
+ retry: Retry.Retry,
1314
+ }));
1315
+
1316
+ export type UpdateCustomRuleGroupError =
1317
+ | BadRequest
1318
+ | Forbidden
1319
+ | StackitOpError;
1320
+ /** Update a CRG configuration Replaces the rules array of an existing CRG. The CRG name is immutable and used as the resource key. Send the complete desired rule set; per-rule partial merge is not supported. */
1321
+ export const updateCustomRuleGroup: API.OperationMethod<
1322
+ UpdateCustomRuleGroupRequest,
1323
+ GetCustomRuleGroupResponse,
1324
+ UpdateCustomRuleGroupError,
1325
+ StackitOpContext
1326
+ > = /*@__PURE__*/ API.make(() => ({
1327
+ input: UpdateCustomRuleGroupRequest,
1328
+ output: GetCustomRuleGroupResponse,
1329
+ errors: [BadRequest, Forbidden, UnknownStackitError],
1330
+ protocol: StackitProtocol,
1331
+ retry: Retry.Retry,
1332
+ }));
1333
+
1334
+ export type UpdateWAFError = BadRequest | Forbidden | Conflict | StackitOpError;
1335
+ /** Update a WAF configuration The update endpoint will update a stored WAF configuration in project and also for all the Load Balancers that have it referenced. */
1336
+ export const updateWAF: API.OperationMethod<
1337
+ UpdateWAFRequest,
1338
+ GetWAFResponse,
1339
+ UpdateWAFError,
1340
+ StackitOpContext
1341
+ > = /*@__PURE__*/ API.make(() => ({
1342
+ input: UpdateWAFRequest,
1343
+ output: GetWAFResponse,
1344
+ errors: [BadRequest, Forbidden, Conflict, UnknownStackitError],
1345
+ protocol: StackitProtocol,
1346
+ retry: Retry.Retry,
1347
+ }));