@robinmordasiewicz/f5xc-api-mcp 1.0.82-2512312028

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 (329) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +415 -0
  3. package/dist/auth/credential-manager.d.ts +151 -0
  4. package/dist/auth/credential-manager.d.ts.map +1 -0
  5. package/dist/auth/credential-manager.js +330 -0
  6. package/dist/auth/credential-manager.js.map +1 -0
  7. package/dist/auth/http-client.d.ts +81 -0
  8. package/dist/auth/http-client.d.ts.map +1 -0
  9. package/dist/auth/http-client.js +197 -0
  10. package/dist/auth/http-client.js.map +1 -0
  11. package/dist/auth/index.d.ts +8 -0
  12. package/dist/auth/index.d.ts.map +1 -0
  13. package/dist/auth/index.js +6 -0
  14. package/dist/auth/index.js.map +1 -0
  15. package/dist/config/config-manager.d.ts +72 -0
  16. package/dist/config/config-manager.d.ts.map +1 -0
  17. package/dist/config/config-manager.js +247 -0
  18. package/dist/config/config-manager.js.map +1 -0
  19. package/dist/config/index.d.ts +7 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +7 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/schema.d.ts +74 -0
  24. package/dist/config/schema.d.ts.map +1 -0
  25. package/dist/config/schema.js +75 -0
  26. package/dist/config/schema.js.map +1 -0
  27. package/dist/config/types.d.ts +77 -0
  28. package/dist/config/types.d.ts.map +1 -0
  29. package/dist/config/types.js +31 -0
  30. package/dist/config/types.js.map +1 -0
  31. package/dist/generator/dependency-extractor.d.ts +103 -0
  32. package/dist/generator/dependency-extractor.d.ts.map +1 -0
  33. package/dist/generator/dependency-extractor.js +473 -0
  34. package/dist/generator/dependency-extractor.js.map +1 -0
  35. package/dist/generator/dependency-graph.d.ts +67 -0
  36. package/dist/generator/dependency-graph.d.ts.map +1 -0
  37. package/dist/generator/dependency-graph.js +330 -0
  38. package/dist/generator/dependency-graph.js.map +1 -0
  39. package/dist/generator/dependency-types.d.ts +206 -0
  40. package/dist/generator/dependency-types.d.ts.map +1 -0
  41. package/dist/generator/dependency-types.js +37 -0
  42. package/dist/generator/dependency-types.js.map +1 -0
  43. package/dist/generator/index.d.ts +7 -0
  44. package/dist/generator/index.d.ts.map +1 -0
  45. package/dist/generator/index.js +7 -0
  46. package/dist/generator/index.js.map +1 -0
  47. package/dist/generator/naming/acronyms.d.ts +81 -0
  48. package/dist/generator/naming/acronyms.d.ts.map +1 -0
  49. package/dist/generator/naming/acronyms.js +253 -0
  50. package/dist/generator/naming/acronyms.js.map +1 -0
  51. package/dist/generator/naming/index.d.ts +6 -0
  52. package/dist/generator/naming/index.d.ts.map +1 -0
  53. package/dist/generator/naming/index.js +6 -0
  54. package/dist/generator/naming/index.js.map +1 -0
  55. package/dist/generator/naming/volterra-mapping.d.ts +102 -0
  56. package/dist/generator/naming/volterra-mapping.d.ts.map +1 -0
  57. package/dist/generator/naming/volterra-mapping.js +259 -0
  58. package/dist/generator/naming/volterra-mapping.js.map +1 -0
  59. package/dist/generator/openapi-parser.d.ts +701 -0
  60. package/dist/generator/openapi-parser.d.ts.map +1 -0
  61. package/dist/generator/openapi-parser.js +704 -0
  62. package/dist/generator/openapi-parser.js.map +1 -0
  63. package/dist/generator/tool-generator.d.ts +118 -0
  64. package/dist/generator/tool-generator.d.ts.map +1 -0
  65. package/dist/generator/tool-generator.js +529 -0
  66. package/dist/generator/tool-generator.js.map +1 -0
  67. package/dist/generator/transformers/index.d.ts +7 -0
  68. package/dist/generator/transformers/index.d.ts.map +1 -0
  69. package/dist/generator/transformers/index.js +7 -0
  70. package/dist/generator/transformers/index.js.map +1 -0
  71. package/dist/generator/transformers/normalize-examples.d.ts +48 -0
  72. package/dist/generator/transformers/normalize-examples.d.ts.map +1 -0
  73. package/dist/generator/transformers/normalize-examples.js +66 -0
  74. package/dist/generator/transformers/normalize-examples.js.map +1 -0
  75. package/dist/index.d.ts +22 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +101 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/prompts/error-resolution.d.ts +70 -0
  80. package/dist/prompts/error-resolution.d.ts.map +1 -0
  81. package/dist/prompts/error-resolution.js +350 -0
  82. package/dist/prompts/error-resolution.js.map +1 -0
  83. package/dist/prompts/index.d.ts +8 -0
  84. package/dist/prompts/index.d.ts.map +1 -0
  85. package/dist/prompts/index.js +7 -0
  86. package/dist/prompts/index.js.map +1 -0
  87. package/dist/prompts/workflows.d.ts +59 -0
  88. package/dist/prompts/workflows.d.ts.map +1 -0
  89. package/dist/prompts/workflows.js +441 -0
  90. package/dist/prompts/workflows.js.map +1 -0
  91. package/dist/resources/handlers.d.ts +70 -0
  92. package/dist/resources/handlers.d.ts.map +1 -0
  93. package/dist/resources/handlers.js +270 -0
  94. package/dist/resources/handlers.js.map +1 -0
  95. package/dist/resources/index.d.ts +8 -0
  96. package/dist/resources/index.d.ts.map +1 -0
  97. package/dist/resources/index.js +6 -0
  98. package/dist/resources/index.js.map +1 -0
  99. package/dist/resources/templates.d.ts +86 -0
  100. package/dist/resources/templates.d.ts.map +1 -0
  101. package/dist/resources/templates.js +248 -0
  102. package/dist/resources/templates.js.map +1 -0
  103. package/dist/server.d.ts +78 -0
  104. package/dist/server.d.ts.map +1 -0
  105. package/dist/server.js +721 -0
  106. package/dist/server.js.map +1 -0
  107. package/dist/tools/discovery/best-practices.d.ts +140 -0
  108. package/dist/tools/discovery/best-practices.d.ts.map +1 -0
  109. package/dist/tools/discovery/best-practices.js +499 -0
  110. package/dist/tools/discovery/best-practices.js.map +1 -0
  111. package/dist/tools/discovery/consolidate.d.ts +97 -0
  112. package/dist/tools/discovery/consolidate.d.ts.map +1 -0
  113. package/dist/tools/discovery/consolidate.js +200 -0
  114. package/dist/tools/discovery/consolidate.js.map +1 -0
  115. package/dist/tools/discovery/cost-estimator.d.ts +114 -0
  116. package/dist/tools/discovery/cost-estimator.d.ts.map +1 -0
  117. package/dist/tools/discovery/cost-estimator.js +273 -0
  118. package/dist/tools/discovery/cost-estimator.js.map +1 -0
  119. package/dist/tools/discovery/dependencies.d.ts +113 -0
  120. package/dist/tools/discovery/dependencies.d.ts.map +1 -0
  121. package/dist/tools/discovery/dependencies.js +258 -0
  122. package/dist/tools/discovery/dependencies.js.map +1 -0
  123. package/dist/tools/discovery/describe.d.ts +133 -0
  124. package/dist/tools/discovery/describe.d.ts.map +1 -0
  125. package/dist/tools/discovery/describe.js +208 -0
  126. package/dist/tools/discovery/describe.js.map +1 -0
  127. package/dist/tools/discovery/execute.d.ts +96 -0
  128. package/dist/tools/discovery/execute.d.ts.map +1 -0
  129. package/dist/tools/discovery/execute.js +220 -0
  130. package/dist/tools/discovery/execute.js.map +1 -0
  131. package/dist/tools/discovery/index-loader.d.ts +28 -0
  132. package/dist/tools/discovery/index-loader.d.ts.map +1 -0
  133. package/dist/tools/discovery/index-loader.js +72 -0
  134. package/dist/tools/discovery/index-loader.js.map +1 -0
  135. package/dist/tools/discovery/index.d.ts +363 -0
  136. package/dist/tools/discovery/index.d.ts.map +1 -0
  137. package/dist/tools/discovery/index.js +361 -0
  138. package/dist/tools/discovery/index.js.map +1 -0
  139. package/dist/tools/discovery/resolver.d.ts +119 -0
  140. package/dist/tools/discovery/resolver.d.ts.map +1 -0
  141. package/dist/tools/discovery/resolver.js +369 -0
  142. package/dist/tools/discovery/resolver.js.map +1 -0
  143. package/dist/tools/discovery/search.d.ts +41 -0
  144. package/dist/tools/discovery/search.d.ts.map +1 -0
  145. package/dist/tools/discovery/search.js +176 -0
  146. package/dist/tools/discovery/search.js.map +1 -0
  147. package/dist/tools/discovery/types.d.ts +91 -0
  148. package/dist/tools/discovery/types.d.ts.map +1 -0
  149. package/dist/tools/discovery/types.js +9 -0
  150. package/dist/tools/discovery/types.js.map +1 -0
  151. package/dist/tools/discovery/validate.d.ts +63 -0
  152. package/dist/tools/discovery/validate.d.ts.map +1 -0
  153. package/dist/tools/discovery/validate.js +239 -0
  154. package/dist/tools/discovery/validate.js.map +1 -0
  155. package/dist/tools/generated/admin_console_and_ui/index.d.ts +8 -0
  156. package/dist/tools/generated/admin_console_and_ui/index.d.ts.map +1 -0
  157. package/dist/tools/generated/admin_console_and_ui/index.js +265 -0
  158. package/dist/tools/generated/admin_console_and_ui/index.js.map +1 -0
  159. package/dist/tools/generated/api/index.d.ts +8 -0
  160. package/dist/tools/generated/api/index.d.ts.map +1 -0
  161. package/dist/tools/generated/api/index.js +7016 -0
  162. package/dist/tools/generated/api/index.js.map +1 -0
  163. package/dist/tools/generated/authentication/index.d.ts +8 -0
  164. package/dist/tools/generated/authentication/index.d.ts.map +1 -0
  165. package/dist/tools/generated/authentication/index.js +907 -0
  166. package/dist/tools/generated/authentication/index.js.map +1 -0
  167. package/dist/tools/generated/bigip/index.d.ts +8 -0
  168. package/dist/tools/generated/bigip/index.d.ts.map +1 -0
  169. package/dist/tools/generated/bigip/index.js +3152 -0
  170. package/dist/tools/generated/bigip/index.js.map +1 -0
  171. package/dist/tools/generated/billing_and_usage/index.d.ts +8 -0
  172. package/dist/tools/generated/billing_and_usage/index.d.ts.map +1 -0
  173. package/dist/tools/generated/billing_and_usage/index.js +2452 -0
  174. package/dist/tools/generated/billing_and_usage/index.js.map +1 -0
  175. package/dist/tools/generated/blindfold/index.d.ts +8 -0
  176. package/dist/tools/generated/blindfold/index.d.ts.map +1 -0
  177. package/dist/tools/generated/blindfold/index.js +3790 -0
  178. package/dist/tools/generated/blindfold/index.js.map +1 -0
  179. package/dist/tools/generated/bot_and_threat_defense/index.d.ts +8 -0
  180. package/dist/tools/generated/bot_and_threat_defense/index.d.ts.map +1 -0
  181. package/dist/tools/generated/bot_and_threat_defense/index.js +2746 -0
  182. package/dist/tools/generated/bot_and_threat_defense/index.js.map +1 -0
  183. package/dist/tools/generated/cdn/index.d.ts +8 -0
  184. package/dist/tools/generated/cdn/index.d.ts.map +1 -0
  185. package/dist/tools/generated/cdn/index.js +2686 -0
  186. package/dist/tools/generated/cdn/index.js.map +1 -0
  187. package/dist/tools/generated/ce_management/index.d.ts +8 -0
  188. package/dist/tools/generated/ce_management/index.d.ts.map +1 -0
  189. package/dist/tools/generated/ce_management/index.js +3812 -0
  190. package/dist/tools/generated/ce_management/index.js.map +1 -0
  191. package/dist/tools/generated/certificates/index.d.ts +8 -0
  192. package/dist/tools/generated/certificates/index.d.ts.map +1 -0
  193. package/dist/tools/generated/certificates/index.js +2547 -0
  194. package/dist/tools/generated/certificates/index.js.map +1 -0
  195. package/dist/tools/generated/cloud_infrastructure/index.d.ts +8 -0
  196. package/dist/tools/generated/cloud_infrastructure/index.d.ts.map +1 -0
  197. package/dist/tools/generated/cloud_infrastructure/index.js +3959 -0
  198. package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -0
  199. package/dist/tools/generated/container_services/index.d.ts +8 -0
  200. package/dist/tools/generated/container_services/index.d.ts.map +1 -0
  201. package/dist/tools/generated/container_services/index.js +2018 -0
  202. package/dist/tools/generated/container_services/index.js.map +1 -0
  203. package/dist/tools/generated/data_and_privacy_security/index.d.ts +8 -0
  204. package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -0
  205. package/dist/tools/generated/data_and_privacy_security/index.js +1662 -0
  206. package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -0
  207. package/dist/tools/generated/data_intelligence/index.d.ts +8 -0
  208. package/dist/tools/generated/data_intelligence/index.d.ts.map +1 -0
  209. package/dist/tools/generated/data_intelligence/index.js +1600 -0
  210. package/dist/tools/generated/data_intelligence/index.js.map +1 -0
  211. package/dist/tools/generated/ddos/index.d.ts +8 -0
  212. package/dist/tools/generated/ddos/index.d.ts.map +1 -0
  213. package/dist/tools/generated/ddos/index.js +8091 -0
  214. package/dist/tools/generated/ddos/index.js.map +1 -0
  215. package/dist/tools/generated/dependency-graph.json +26358 -0
  216. package/dist/tools/generated/dns/index.d.ts +8 -0
  217. package/dist/tools/generated/dns/index.d.ts.map +1 -0
  218. package/dist/tools/generated/dns/index.js +6096 -0
  219. package/dist/tools/generated/dns/index.js.map +1 -0
  220. package/dist/tools/generated/generative_ai/index.d.ts +8 -0
  221. package/dist/tools/generated/generative_ai/index.d.ts.map +1 -0
  222. package/dist/tools/generated/generative_ai/index.js +1019 -0
  223. package/dist/tools/generated/generative_ai/index.js.map +1 -0
  224. package/dist/tools/generated/managed_kubernetes/index.d.ts +8 -0
  225. package/dist/tools/generated/managed_kubernetes/index.d.ts.map +1 -0
  226. package/dist/tools/generated/managed_kubernetes/index.js +3368 -0
  227. package/dist/tools/generated/managed_kubernetes/index.js.map +1 -0
  228. package/dist/tools/generated/marketplace/index.d.ts +8 -0
  229. package/dist/tools/generated/marketplace/index.d.ts.map +1 -0
  230. package/dist/tools/generated/marketplace/index.js +4329 -0
  231. package/dist/tools/generated/marketplace/index.js.map +1 -0
  232. package/dist/tools/generated/network/index.d.ts +8 -0
  233. package/dist/tools/generated/network/index.d.ts.map +1 -0
  234. package/dist/tools/generated/network/index.js +12424 -0
  235. package/dist/tools/generated/network/index.js.map +1 -0
  236. package/dist/tools/generated/network_security/index.d.ts +8 -0
  237. package/dist/tools/generated/network_security/index.d.ts.map +1 -0
  238. package/dist/tools/generated/network_security/index.js +9637 -0
  239. package/dist/tools/generated/network_security/index.js.map +1 -0
  240. package/dist/tools/generated/nginx_one/index.d.ts +8 -0
  241. package/dist/tools/generated/nginx_one/index.d.ts.map +1 -0
  242. package/dist/tools/generated/nginx_one/index.js +1692 -0
  243. package/dist/tools/generated/nginx_one/index.js.map +1 -0
  244. package/dist/tools/generated/object_storage/index.d.ts +8 -0
  245. package/dist/tools/generated/object_storage/index.d.ts.map +1 -0
  246. package/dist/tools/generated/object_storage/index.js +996 -0
  247. package/dist/tools/generated/object_storage/index.js.map +1 -0
  248. package/dist/tools/generated/observability/index.d.ts +8 -0
  249. package/dist/tools/generated/observability/index.d.ts.map +1 -0
  250. package/dist/tools/generated/observability/index.js +5285 -0
  251. package/dist/tools/generated/observability/index.js.map +1 -0
  252. package/dist/tools/generated/rate_limiting/index.d.ts +8 -0
  253. package/dist/tools/generated/rate_limiting/index.d.ts.map +1 -0
  254. package/dist/tools/generated/rate_limiting/index.js +2108 -0
  255. package/dist/tools/generated/rate_limiting/index.js.map +1 -0
  256. package/dist/tools/generated/secops_and_incident_response/index.d.ts +8 -0
  257. package/dist/tools/generated/secops_and_incident_response/index.d.ts.map +1 -0
  258. package/dist/tools/generated/secops_and_incident_response/index.js +710 -0
  259. package/dist/tools/generated/secops_and_incident_response/index.js.map +1 -0
  260. package/dist/tools/generated/service_mesh/index.d.ts +8 -0
  261. package/dist/tools/generated/service_mesh/index.d.ts.map +1 -0
  262. package/dist/tools/generated/service_mesh/index.js +6062 -0
  263. package/dist/tools/generated/service_mesh/index.js.map +1 -0
  264. package/dist/tools/generated/shape/index.d.ts +8 -0
  265. package/dist/tools/generated/shape/index.d.ts.map +1 -0
  266. package/dist/tools/generated/shape/index.js +19381 -0
  267. package/dist/tools/generated/shape/index.js.map +1 -0
  268. package/dist/tools/generated/sites/index.d.ts +8 -0
  269. package/dist/tools/generated/sites/index.d.ts.map +1 -0
  270. package/dist/tools/generated/sites/index.js +13160 -0
  271. package/dist/tools/generated/sites/index.js.map +1 -0
  272. package/dist/tools/generated/statistics/index.d.ts +8 -0
  273. package/dist/tools/generated/statistics/index.d.ts.map +1 -0
  274. package/dist/tools/generated/statistics/index.js +8131 -0
  275. package/dist/tools/generated/statistics/index.js.map +1 -0
  276. package/dist/tools/generated/support/index.d.ts +8 -0
  277. package/dist/tools/generated/support/index.d.ts.map +1 -0
  278. package/dist/tools/generated/support/index.js +5608 -0
  279. package/dist/tools/generated/support/index.js.map +1 -0
  280. package/dist/tools/generated/telemetry_and_insights/index.d.ts +8 -0
  281. package/dist/tools/generated/telemetry_and_insights/index.d.ts.map +1 -0
  282. package/dist/tools/generated/telemetry_and_insights/index.js +2404 -0
  283. package/dist/tools/generated/telemetry_and_insights/index.js.map +1 -0
  284. package/dist/tools/generated/tenant_and_identity/index.d.ts +8 -0
  285. package/dist/tools/generated/tenant_and_identity/index.d.ts.map +1 -0
  286. package/dist/tools/generated/tenant_and_identity/index.js +18938 -0
  287. package/dist/tools/generated/tenant_and_identity/index.js.map +1 -0
  288. package/dist/tools/generated/threat_campaign/index.d.ts +8 -0
  289. package/dist/tools/generated/threat_campaign/index.d.ts.map +1 -0
  290. package/dist/tools/generated/threat_campaign/index.js +102 -0
  291. package/dist/tools/generated/threat_campaign/index.js.map +1 -0
  292. package/dist/tools/generated/users/index.d.ts +8 -0
  293. package/dist/tools/generated/users/index.d.ts.map +1 -0
  294. package/dist/tools/generated/users/index.js +1515 -0
  295. package/dist/tools/generated/users/index.js.map +1 -0
  296. package/dist/tools/generated/virtual/index.d.ts +8 -0
  297. package/dist/tools/generated/virtual/index.d.ts.map +1 -0
  298. package/dist/tools/generated/virtual/index.js +11263 -0
  299. package/dist/tools/generated/virtual/index.js.map +1 -0
  300. package/dist/tools/generated/vpm_and_node_management/index.d.ts +8 -0
  301. package/dist/tools/generated/vpm_and_node_management/index.d.ts.map +1 -0
  302. package/dist/tools/generated/vpm_and_node_management/index.js +88 -0
  303. package/dist/tools/generated/vpm_and_node_management/index.js.map +1 -0
  304. package/dist/tools/generated/waf/index.d.ts +8 -0
  305. package/dist/tools/generated/waf/index.d.ts.map +1 -0
  306. package/dist/tools/generated/waf/index.js +4586 -0
  307. package/dist/tools/generated/waf/index.js.map +1 -0
  308. package/dist/tools/index.d.ts +7 -0
  309. package/dist/tools/index.d.ts.map +1 -0
  310. package/dist/tools/index.js +6 -0
  311. package/dist/tools/index.js.map +1 -0
  312. package/dist/tools/registry.d.ts +27 -0
  313. package/dist/tools/registry.d.ts.map +1 -0
  314. package/dist/tools/registry.js +115 -0
  315. package/dist/tools/registry.js.map +1 -0
  316. package/dist/utils/error-handling.d.ts +109 -0
  317. package/dist/utils/error-handling.d.ts.map +1 -0
  318. package/dist/utils/error-handling.js +239 -0
  319. package/dist/utils/error-handling.js.map +1 -0
  320. package/dist/utils/index.d.ts +7 -0
  321. package/dist/utils/index.d.ts.map +1 -0
  322. package/dist/utils/index.js +6 -0
  323. package/dist/utils/index.js.map +1 -0
  324. package/dist/utils/logging.d.ts +75 -0
  325. package/dist/utils/logging.d.ts.map +1 -0
  326. package/dist/utils/logging.js +131 -0
  327. package/dist/utils/logging.js.map +1 -0
  328. package/manifest.json +143 -0
  329. package/package.json +110 -0
@@ -0,0 +1,4586 @@
1
+ /**
2
+ * Generated tool definitions for waf domain
3
+ * DO NOT EDIT - This file is auto-generated by scripts/generate.ts
4
+ */
5
+ export const wafTools = [
6
+ {
7
+ toolName: "f5xc-api-waf-active-staged-signature-list",
8
+ method: "GET",
9
+ path: "/api/config/namespaces/{namespace}/virtual_hosts/{vh_name}/active_staged_signatures",
10
+ operation: "list",
11
+ domain: "waf",
12
+ resource: "active-staged-signature",
13
+ summary: "Active Staged Signatures.",
14
+ description: "API to GET active Staged Signatures.",
15
+ pathParameters: [
16
+ {
17
+ description: "Namespace\nFetch WAF signatures changelog for the given namespace.",
18
+ in: "path",
19
+ name: "namespace",
20
+ required: true,
21
+ schema: {
22
+ type: "string",
23
+ },
24
+ "x-displayname": "Namespace",
25
+ "x-ves-example": "Shared",
26
+ },
27
+ {
28
+ description: "Vh_name\nVirtual Host for current request.",
29
+ in: "path",
30
+ name: "vh_name",
31
+ required: true,
32
+ schema: {
33
+ type: "string",
34
+ },
35
+ "x-displayname": "Virtual Host Name.",
36
+ "x-ves-example": "Blogging-app.",
37
+ },
38
+ ],
39
+ queryParameters: [],
40
+ requestBodySchema: null,
41
+ responseSchema: {
42
+ $ref: "#/components/schemas/waf_signatures_changelogReleasedSignaturesRsp",
43
+ },
44
+ requiredParams: ["namespace", "vh_name"],
45
+ operationId: "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetActiveStagedSignatures",
46
+ tags: ["Other"],
47
+ sourceFile: "domains/waf.json",
48
+ displayName: null,
49
+ dangerLevel: "low",
50
+ sideEffects: null,
51
+ requiredFields: ["path.namespace", "path.vh_name"],
52
+ confirmationRequired: false,
53
+ parameterExamples: {
54
+ namespace: "Shared",
55
+ vh_name: "Blogging-app.",
56
+ },
57
+ validationRules: {},
58
+ operationMetadata: {
59
+ common_errors: [
60
+ {
61
+ code: 401,
62
+ message: "Authentication required",
63
+ solution: "Provide valid API credentials",
64
+ },
65
+ {
66
+ code: 403,
67
+ message: "Permission denied",
68
+ solution: "Check access permissions for this operation",
69
+ },
70
+ {
71
+ code: 404,
72
+ message: "Resource not found",
73
+ solution: "Verify resource name, namespace, and path",
74
+ },
75
+ {
76
+ code: 409,
77
+ message: "Resource already exists",
78
+ solution: "Use different name or update existing resource",
79
+ },
80
+ {
81
+ code: 429,
82
+ message: "Rate limit exceeded",
83
+ solution: "Wait before retrying the operation",
84
+ },
85
+ {
86
+ code: 500,
87
+ message: "Server error",
88
+ solution: "Retry operation or contact support",
89
+ },
90
+ ],
91
+ conditions: {
92
+ postconditions: [],
93
+ prerequisites: ["Active namespace"],
94
+ },
95
+ confirmation_required: false,
96
+ danger_level: "low",
97
+ field_docs: {},
98
+ optional_fields: [],
99
+ performance_impact: {
100
+ latency: "moderate",
101
+ resource_usage: "moderate",
102
+ },
103
+ purpose: "List all active-staged-signatures",
104
+ required_fields: ["path.namespace", "path.vh_name"],
105
+ side_effects: {},
106
+ },
107
+ curlExample: null,
108
+ dependencies: [],
109
+ oneOfGroups: [],
110
+ subscriptionRequirements: [
111
+ {
112
+ addonService: "f5xc_waap_standard",
113
+ displayName: "F5XC WAAP Standard",
114
+ required: false,
115
+ tier: "standard",
116
+ },
117
+ {
118
+ addonService: "f5xc_waap_advanced",
119
+ displayName: "F5XC WAAP Advanced",
120
+ required: false,
121
+ tier: "advanced",
122
+ },
123
+ ],
124
+ },
125
+ {
126
+ toolName: "f5xc-api-waf-aggregation-create",
127
+ method: "POST",
128
+ path: "/api/data/namespaces/system/app_security/all_ns_events/aggregation",
129
+ operation: "create",
130
+ domain: "waf",
131
+ resource: "aggregation",
132
+ summary: "Security Events Aggregation Query All Namespaces.",
133
+ description: "GET summary/aggregation data for security events in the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be considered for aggregation. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.",
134
+ pathParameters: [],
135
+ queryParameters: [],
136
+ requestBodySchema: null,
137
+ responseSchema: {
138
+ $ref: "#/components/schemas/app_securitySecurityEventsAggregationResponse",
139
+ },
140
+ requiredParams: [],
141
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsAggregationQueryAllNamespaces",
142
+ tags: ["Other"],
143
+ sourceFile: "domains/waf.json",
144
+ displayName: null,
145
+ dangerLevel: "medium",
146
+ sideEffects: {
147
+ creates: ["aggregation"],
148
+ },
149
+ requiredFields: ["metadata.name", "metadata.namespace"],
150
+ confirmationRequired: false,
151
+ parameterExamples: {},
152
+ validationRules: {},
153
+ operationMetadata: {
154
+ common_errors: [
155
+ {
156
+ code: 401,
157
+ message: "Authentication required",
158
+ solution: "Provide valid API credentials",
159
+ },
160
+ {
161
+ code: 403,
162
+ message: "Permission denied",
163
+ solution: "Check access permissions for this operation",
164
+ },
165
+ {
166
+ code: 404,
167
+ message: "Resource not found",
168
+ solution: "Verify resource name, namespace, and path",
169
+ },
170
+ {
171
+ code: 409,
172
+ message: "Resource already exists",
173
+ solution: "Use different name or update existing resource",
174
+ },
175
+ {
176
+ code: 429,
177
+ message: "Rate limit exceeded",
178
+ solution: "Wait before retrying the operation",
179
+ },
180
+ {
181
+ code: 500,
182
+ message: "Server error",
183
+ solution: "Retry operation or contact support",
184
+ },
185
+ ],
186
+ conditions: {
187
+ postconditions: ["Aggregation resource created", "Resource assigned unique identifier"],
188
+ prerequisites: ["Active namespace"],
189
+ },
190
+ confirmation_required: false,
191
+ danger_level: "medium",
192
+ field_docs: {},
193
+ optional_fields: [],
194
+ performance_impact: {
195
+ latency: "low",
196
+ resource_usage: "low",
197
+ },
198
+ purpose: "Create new aggregation",
199
+ required_fields: ["metadata.name", "metadata.namespace"],
200
+ side_effects: {
201
+ creates: ["aggregation"],
202
+ },
203
+ },
204
+ curlExample: null,
205
+ dependencies: [],
206
+ oneOfGroups: [],
207
+ subscriptionRequirements: [
208
+ {
209
+ addonService: "f5xc_waap_standard",
210
+ displayName: "F5XC WAAP Standard",
211
+ required: false,
212
+ tier: "standard",
213
+ },
214
+ {
215
+ addonService: "f5xc_waap_advanced",
216
+ displayName: "F5XC WAAP Advanced",
217
+ required: false,
218
+ tier: "advanced",
219
+ },
220
+ ],
221
+ },
222
+ {
223
+ toolName: "f5xc-api-waf-all-ns-event-create",
224
+ method: "POST",
225
+ path: "/api/data/namespaces/system/app_security/all_ns_events",
226
+ operation: "create",
227
+ domain: "waf",
228
+ resource: "all-ns-event",
229
+ summary: "Security Events Query All Namespaces.",
230
+ description: "GET security events for the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be returned in the response. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.\nThis API is specific to system namespace.",
231
+ pathParameters: [],
232
+ queryParameters: [],
233
+ requestBodySchema: null,
234
+ responseSchema: {
235
+ $ref: "#/components/schemas/app_securitySecurityEventsResponse",
236
+ },
237
+ requiredParams: [],
238
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQueryAllNamespaces",
239
+ tags: ["Other"],
240
+ sourceFile: "domains/waf.json",
241
+ displayName: null,
242
+ dangerLevel: "medium",
243
+ sideEffects: {
244
+ creates: ["all-ns-event"],
245
+ },
246
+ requiredFields: ["metadata.name", "metadata.namespace"],
247
+ confirmationRequired: false,
248
+ parameterExamples: {},
249
+ validationRules: {},
250
+ operationMetadata: {
251
+ common_errors: [
252
+ {
253
+ code: 401,
254
+ message: "Authentication required",
255
+ solution: "Provide valid API credentials",
256
+ },
257
+ {
258
+ code: 403,
259
+ message: "Permission denied",
260
+ solution: "Check access permissions for this operation",
261
+ },
262
+ {
263
+ code: 404,
264
+ message: "Resource not found",
265
+ solution: "Verify resource name, namespace, and path",
266
+ },
267
+ {
268
+ code: 409,
269
+ message: "Resource already exists",
270
+ solution: "Use different name or update existing resource",
271
+ },
272
+ {
273
+ code: 429,
274
+ message: "Rate limit exceeded",
275
+ solution: "Wait before retrying the operation",
276
+ },
277
+ {
278
+ code: 500,
279
+ message: "Server error",
280
+ solution: "Retry operation or contact support",
281
+ },
282
+ ],
283
+ conditions: {
284
+ postconditions: ["All-ns-event resource created", "Resource assigned unique identifier"],
285
+ prerequisites: ["Active namespace"],
286
+ },
287
+ confirmation_required: false,
288
+ danger_level: "medium",
289
+ field_docs: {},
290
+ optional_fields: [],
291
+ performance_impact: {
292
+ latency: "low",
293
+ resource_usage: "low",
294
+ },
295
+ purpose: "Create new all-ns-event",
296
+ required_fields: ["metadata.name", "metadata.namespace"],
297
+ side_effects: {
298
+ creates: ["all-ns-event"],
299
+ },
300
+ },
301
+ curlExample: null,
302
+ dependencies: [],
303
+ oneOfGroups: [],
304
+ subscriptionRequirements: [
305
+ {
306
+ addonService: "f5xc_waap_standard",
307
+ displayName: "F5XC WAAP Standard",
308
+ required: false,
309
+ tier: "standard",
310
+ },
311
+ {
312
+ addonService: "f5xc_waap_advanced",
313
+ displayName: "F5XC WAAP Advanced",
314
+ required: false,
315
+ tier: "advanced",
316
+ },
317
+ ],
318
+ },
319
+ {
320
+ toolName: "f5xc-api-waf-all-ns-metric-create",
321
+ method: "POST",
322
+ path: "/api/data/namespaces/system/app_firewall/all_ns_metrics",
323
+ operation: "create",
324
+ domain: "waf",
325
+ resource: "all-ns-metric",
326
+ summary: "MetricsAllNamespaces.",
327
+ description: "App Firewall metrics.",
328
+ pathParameters: [],
329
+ queryParameters: [],
330
+ requestBodySchema: null,
331
+ responseSchema: {
332
+ $ref: "#/components/schemas/app_firewallMetricsResponse",
333
+ },
334
+ requiredParams: [],
335
+ operationId: "ves.io.schema.app_firewall.CustomDataAPI.MetricsAllNamespaces",
336
+ tags: ["Security"],
337
+ sourceFile: "domains/waf.json",
338
+ displayName: null,
339
+ dangerLevel: "medium",
340
+ sideEffects: {
341
+ creates: ["all-ns-metric"],
342
+ },
343
+ requiredFields: ["metadata.name", "metadata.namespace"],
344
+ confirmationRequired: false,
345
+ parameterExamples: {},
346
+ validationRules: {},
347
+ operationMetadata: {
348
+ common_errors: [
349
+ {
350
+ code: 401,
351
+ message: "Authentication required",
352
+ solution: "Provide valid API credentials",
353
+ },
354
+ {
355
+ code: 403,
356
+ message: "Permission denied",
357
+ solution: "Check access permissions for this operation",
358
+ },
359
+ {
360
+ code: 404,
361
+ message: "Resource not found",
362
+ solution: "Verify resource name, namespace, and path",
363
+ },
364
+ {
365
+ code: 409,
366
+ message: "Resource already exists",
367
+ solution: "Use different name or update existing resource",
368
+ },
369
+ {
370
+ code: 429,
371
+ message: "Rate limit exceeded",
372
+ solution: "Wait before retrying the operation",
373
+ },
374
+ {
375
+ code: 500,
376
+ message: "Server error",
377
+ solution: "Retry operation or contact support",
378
+ },
379
+ ],
380
+ conditions: {
381
+ postconditions: ["All-ns-metric resource created", "Resource assigned unique identifier"],
382
+ prerequisites: ["Active namespace"],
383
+ },
384
+ confirmation_required: false,
385
+ danger_level: "medium",
386
+ field_docs: {},
387
+ optional_fields: [],
388
+ performance_impact: {
389
+ latency: "low",
390
+ resource_usage: "low",
391
+ },
392
+ purpose: "Create new all-ns-metric",
393
+ required_fields: ["metadata.name", "metadata.namespace"],
394
+ side_effects: {
395
+ creates: ["all-ns-metric"],
396
+ },
397
+ },
398
+ curlExample: null,
399
+ dependencies: [],
400
+ oneOfGroups: [],
401
+ subscriptionRequirements: [
402
+ {
403
+ addonService: "f5xc_waap_standard",
404
+ displayName: "F5XC WAAP Standard",
405
+ required: false,
406
+ tier: "standard",
407
+ },
408
+ {
409
+ addonService: "f5xc_waap_advanced",
410
+ displayName: "F5XC WAAP Advanced",
411
+ required: false,
412
+ tier: "advanced",
413
+ },
414
+ ],
415
+ },
416
+ {
417
+ toolName: "f5xc-api-waf-app-firewall-create",
418
+ method: "POST",
419
+ path: "/api/config/namespaces/{metadata.namespace}/app_firewalls",
420
+ operation: "create",
421
+ domain: "waf",
422
+ resource: "app-firewall",
423
+ summary: "Create Application Firewall.",
424
+ description: "Create Application Firewall.",
425
+ pathParameters: [
426
+ {
427
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
428
+ in: "path",
429
+ name: "metadata.namespace",
430
+ required: true,
431
+ schema: {
432
+ type: "string",
433
+ },
434
+ "x-displayname": "Namespace",
435
+ "x-ves-example": "Staging",
436
+ },
437
+ ],
438
+ queryParameters: [],
439
+ requestBodySchema: {
440
+ $ref: "#/components/schemas/app_firewallCreateRequest",
441
+ },
442
+ responseSchema: {
443
+ $ref: "#/components/schemas/app_firewallCreateResponse",
444
+ },
445
+ requiredParams: ["body", "metadata.namespace"],
446
+ operationId: "ves.io.schema.app_firewall.API.Create",
447
+ tags: ["Other"],
448
+ sourceFile: "domains/waf.json",
449
+ displayName: null,
450
+ dangerLevel: "medium",
451
+ sideEffects: {
452
+ creates: ["app-firewall"],
453
+ },
454
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
455
+ confirmationRequired: false,
456
+ parameterExamples: {
457
+ "metadata.namespace": "Staging",
458
+ },
459
+ validationRules: {},
460
+ operationMetadata: {
461
+ common_errors: [
462
+ {
463
+ code: 401,
464
+ message: "Authentication required",
465
+ solution: "Provide valid API credentials",
466
+ },
467
+ {
468
+ code: 403,
469
+ message: "Permission denied",
470
+ solution: "Check access permissions for this operation",
471
+ },
472
+ {
473
+ code: 404,
474
+ message: "Resource not found",
475
+ solution: "Verify resource name, namespace, and path",
476
+ },
477
+ {
478
+ code: 409,
479
+ message: "Resource already exists",
480
+ solution: "Use different name or update existing resource",
481
+ },
482
+ {
483
+ code: 429,
484
+ message: "Rate limit exceeded",
485
+ solution: "Wait before retrying the operation",
486
+ },
487
+ {
488
+ code: 500,
489
+ message: "Server error",
490
+ solution: "Retry operation or contact support",
491
+ },
492
+ ],
493
+ conditions: {
494
+ postconditions: ["App-firewall resource created", "Resource assigned unique identifier"],
495
+ prerequisites: ["Active namespace"],
496
+ },
497
+ confirmation_required: false,
498
+ danger_level: "medium",
499
+ field_docs: {},
500
+ optional_fields: [],
501
+ performance_impact: {
502
+ latency: "low",
503
+ resource_usage: "low",
504
+ },
505
+ purpose: "Create new app-firewall",
506
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
507
+ side_effects: {
508
+ creates: ["app-firewall"],
509
+ },
510
+ },
511
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/app_firewalls" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @waf-policy.json\n',
512
+ dependencies: [
513
+ {
514
+ domain: "waf",
515
+ fieldPath: "",
516
+ inline: false,
517
+ required: false,
518
+ resourceType: "app-firewall",
519
+ },
520
+ {
521
+ domain: "",
522
+ fieldPath: "metadata",
523
+ inline: false,
524
+ required: false,
525
+ resourceType: "schema-object-create-meta",
526
+ },
527
+ {
528
+ domain: "",
529
+ fieldPath: "spec",
530
+ inline: false,
531
+ required: false,
532
+ resourceType: "app-firewall-create",
533
+ },
534
+ ],
535
+ oneOfGroups: [],
536
+ subscriptionRequirements: [
537
+ {
538
+ addonService: "f5xc_waap_standard",
539
+ displayName: "F5XC WAAP Standard",
540
+ required: false,
541
+ tier: "standard",
542
+ },
543
+ {
544
+ addonService: "f5xc_waap_advanced",
545
+ displayName: "F5XC WAAP Advanced",
546
+ required: false,
547
+ tier: "advanced",
548
+ },
549
+ ],
550
+ },
551
+ {
552
+ toolName: "f5xc-api-waf-app-firewall-delete",
553
+ method: "DELETE",
554
+ path: "/api/config/namespaces/{namespace}/app_firewalls/{name}",
555
+ operation: "delete",
556
+ domain: "waf",
557
+ resource: "app-firewall",
558
+ summary: "DELETE Application Firewall.",
559
+ description: "DELETE the specified app_firewall.",
560
+ pathParameters: [
561
+ {
562
+ description: "Name\nName of the configuration object.",
563
+ in: "path",
564
+ name: "name",
565
+ required: true,
566
+ schema: {
567
+ type: "string",
568
+ },
569
+ "x-displayname": "Name",
570
+ "x-ves-example": "Name",
571
+ },
572
+ {
573
+ description: "Namespace\nNamespace in which the configuration object is present.",
574
+ in: "path",
575
+ name: "namespace",
576
+ required: true,
577
+ schema: {
578
+ type: "string",
579
+ },
580
+ "x-displayname": "Namespace",
581
+ "x-ves-example": "Ns1",
582
+ },
583
+ ],
584
+ queryParameters: [],
585
+ requestBodySchema: {
586
+ $ref: "#/components/schemas/app_firewallDeleteRequest",
587
+ },
588
+ responseSchema: {},
589
+ requiredParams: ["body", "name", "namespace"],
590
+ operationId: "ves.io.schema.app_firewall.API.Delete",
591
+ tags: ["Other"],
592
+ sourceFile: "domains/waf.json",
593
+ displayName: null,
594
+ dangerLevel: "high",
595
+ sideEffects: {
596
+ deletes: ["app-firewall", "contained_resources"],
597
+ },
598
+ requiredFields: ["path.name", "path.namespace"],
599
+ confirmationRequired: true,
600
+ parameterExamples: {
601
+ name: "Name",
602
+ namespace: "Ns1",
603
+ },
604
+ validationRules: {},
605
+ operationMetadata: {
606
+ common_errors: [
607
+ {
608
+ code: 401,
609
+ message: "Authentication required",
610
+ solution: "Provide valid API credentials",
611
+ },
612
+ {
613
+ code: 403,
614
+ message: "Permission denied",
615
+ solution: "Check access permissions for this operation",
616
+ },
617
+ {
618
+ code: 404,
619
+ message: "Resource not found",
620
+ solution: "Verify resource name, namespace, and path",
621
+ },
622
+ {
623
+ code: 409,
624
+ message: "Resource already exists",
625
+ solution: "Use different name or update existing resource",
626
+ },
627
+ {
628
+ code: 429,
629
+ message: "Rate limit exceeded",
630
+ solution: "Wait before retrying the operation",
631
+ },
632
+ {
633
+ code: 500,
634
+ message: "Server error",
635
+ solution: "Retry operation or contact support",
636
+ },
637
+ ],
638
+ conditions: {
639
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
640
+ prerequisites: ["Active namespace"],
641
+ },
642
+ confirmation_required: true,
643
+ danger_level: "high",
644
+ field_docs: {},
645
+ optional_fields: [],
646
+ performance_impact: {
647
+ latency: "high",
648
+ resource_usage: "moderate",
649
+ },
650
+ purpose: "Delete app-firewall",
651
+ required_fields: ["path.name", "path.namespace"],
652
+ side_effects: {
653
+ deletes: ["app-firewall", "contained_resources"],
654
+ },
655
+ },
656
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/app_firewalls" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @waf-policy.json\n',
657
+ dependencies: [
658
+ {
659
+ domain: "waf",
660
+ fieldPath: "",
661
+ inline: false,
662
+ required: false,
663
+ resourceType: "app-firewall",
664
+ },
665
+ ],
666
+ oneOfGroups: [],
667
+ subscriptionRequirements: [
668
+ {
669
+ addonService: "f5xc_waap_standard",
670
+ displayName: "F5XC WAAP Standard",
671
+ required: false,
672
+ tier: "standard",
673
+ },
674
+ {
675
+ addonService: "f5xc_waap_advanced",
676
+ displayName: "F5XC WAAP Advanced",
677
+ required: false,
678
+ tier: "advanced",
679
+ },
680
+ ],
681
+ },
682
+ {
683
+ toolName: "f5xc-api-waf-app-firewall-get",
684
+ method: "GET",
685
+ path: "/api/config/namespaces/{namespace}/app_firewalls/{name}",
686
+ operation: "get",
687
+ domain: "waf",
688
+ resource: "app-firewall",
689
+ summary: "GET Application Firewall.",
690
+ description: "GET Application Firewall.",
691
+ pathParameters: [
692
+ {
693
+ description: "Name\nThe name of the configuration object to be fetched.",
694
+ in: "path",
695
+ name: "name",
696
+ required: true,
697
+ schema: {
698
+ type: "string",
699
+ },
700
+ "x-displayname": "Name",
701
+ "x-ves-example": "Name",
702
+ },
703
+ {
704
+ description: "Namespace\nThe namespace in which the configuration object is present.",
705
+ in: "path",
706
+ name: "namespace",
707
+ required: true,
708
+ schema: {
709
+ type: "string",
710
+ },
711
+ "x-displayname": "Namespace",
712
+ "x-ves-example": "Ns1",
713
+ },
714
+ ],
715
+ queryParameters: [
716
+ {
717
+ description: "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referrred by this object.",
718
+ in: "query",
719
+ name: "response_format",
720
+ required: false,
721
+ schema: {
722
+ default: "GET_RSP_FORMAT_DEFAULT",
723
+ enum: [
724
+ "GET_RSP_FORMAT_DEFAULT",
725
+ "GET_RSP_FORMAT_FOR_CREATE",
726
+ "GET_RSP_FORMAT_FOR_REPLACE",
727
+ "GET_RSP_FORMAT_STATUS",
728
+ "GET_RSP_FORMAT_READ",
729
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
730
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
731
+ ],
732
+ type: "string",
733
+ },
734
+ "x-displayname": "Broken Referred Objects.",
735
+ },
736
+ ],
737
+ requestBodySchema: null,
738
+ responseSchema: {
739
+ $ref: "#/components/schemas/app_firewallGetResponse",
740
+ },
741
+ requiredParams: ["name", "namespace"],
742
+ operationId: "ves.io.schema.app_firewall.API.Get",
743
+ tags: ["Other"],
744
+ sourceFile: "domains/waf.json",
745
+ displayName: null,
746
+ dangerLevel: "low",
747
+ sideEffects: null,
748
+ requiredFields: ["path.name", "path.namespace"],
749
+ confirmationRequired: false,
750
+ parameterExamples: {
751
+ name: "Name",
752
+ namespace: "Ns1",
753
+ },
754
+ validationRules: {},
755
+ operationMetadata: {
756
+ common_errors: [
757
+ {
758
+ code: 401,
759
+ message: "Authentication required",
760
+ solution: "Provide valid API credentials",
761
+ },
762
+ {
763
+ code: 403,
764
+ message: "Permission denied",
765
+ solution: "Check access permissions for this operation",
766
+ },
767
+ {
768
+ code: 404,
769
+ message: "Resource not found",
770
+ solution: "Verify resource name, namespace, and path",
771
+ },
772
+ {
773
+ code: 409,
774
+ message: "Resource already exists",
775
+ solution: "Use different name or update existing resource",
776
+ },
777
+ {
778
+ code: 429,
779
+ message: "Rate limit exceeded",
780
+ solution: "Wait before retrying the operation",
781
+ },
782
+ {
783
+ code: 500,
784
+ message: "Server error",
785
+ solution: "Retry operation or contact support",
786
+ },
787
+ ],
788
+ conditions: {
789
+ postconditions: [],
790
+ prerequisites: ["Active namespace"],
791
+ },
792
+ confirmation_required: false,
793
+ danger_level: "low",
794
+ field_docs: {},
795
+ optional_fields: [],
796
+ performance_impact: {
797
+ latency: "low",
798
+ resource_usage: "low",
799
+ },
800
+ purpose: "Retrieve specific app-firewall",
801
+ required_fields: ["path.name", "path.namespace"],
802
+ side_effects: {},
803
+ },
804
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/app_firewalls" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @waf-policy.json\n',
805
+ dependencies: [],
806
+ oneOfGroups: [],
807
+ subscriptionRequirements: [
808
+ {
809
+ addonService: "f5xc_waap_standard",
810
+ displayName: "F5XC WAAP Standard",
811
+ required: false,
812
+ tier: "standard",
813
+ },
814
+ {
815
+ addonService: "f5xc_waap_advanced",
816
+ displayName: "F5XC WAAP Advanced",
817
+ required: false,
818
+ tier: "advanced",
819
+ },
820
+ ],
821
+ },
822
+ {
823
+ toolName: "f5xc-api-waf-app-firewall-list",
824
+ method: "GET",
825
+ path: "/api/config/namespaces/{namespace}/app_firewalls",
826
+ operation: "list",
827
+ domain: "waf",
828
+ resource: "app-firewall",
829
+ summary: "List Application Firewall.",
830
+ description: "List the set of app_firewall in a namespace.",
831
+ pathParameters: [
832
+ {
833
+ description: "Namespace\nNamespace to scope the listing of app_firewall.",
834
+ in: "path",
835
+ name: "namespace",
836
+ required: true,
837
+ schema: {
838
+ type: "string",
839
+ },
840
+ "x-displayname": "Namespace",
841
+ "x-ves-example": "Ns1",
842
+ },
843
+ ],
844
+ queryParameters: [
845
+ {
846
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
847
+ in: "query",
848
+ name: "label_filter",
849
+ required: false,
850
+ schema: {
851
+ type: "string",
852
+ },
853
+ "x-displayname": "Label Filter.",
854
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
855
+ },
856
+ {
857
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
858
+ in: "query",
859
+ name: "report_fields",
860
+ required: false,
861
+ schema: {
862
+ items: {
863
+ type: "string",
864
+ },
865
+ type: "array",
866
+ },
867
+ "x-displayname": "Report Fields.",
868
+ },
869
+ {
870
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
871
+ in: "query",
872
+ name: "report_status_fields",
873
+ required: false,
874
+ schema: {
875
+ items: {
876
+ type: "string",
877
+ },
878
+ type: "array",
879
+ },
880
+ "x-displayname": "Report Status Fields.",
881
+ },
882
+ ],
883
+ requestBodySchema: null,
884
+ responseSchema: {
885
+ $ref: "#/components/schemas/app_firewallListResponse",
886
+ },
887
+ requiredParams: ["namespace"],
888
+ operationId: "ves.io.schema.app_firewall.API.List",
889
+ tags: ["Other"],
890
+ sourceFile: "domains/waf.json",
891
+ displayName: null,
892
+ dangerLevel: "low",
893
+ sideEffects: null,
894
+ requiredFields: ["path.namespace"],
895
+ confirmationRequired: false,
896
+ parameterExamples: {
897
+ label_filter: "Env in (staging, testing), tier in (web, db)",
898
+ namespace: "Ns1",
899
+ },
900
+ validationRules: {},
901
+ operationMetadata: {
902
+ common_errors: [
903
+ {
904
+ code: 401,
905
+ message: "Authentication required",
906
+ solution: "Provide valid API credentials",
907
+ },
908
+ {
909
+ code: 403,
910
+ message: "Permission denied",
911
+ solution: "Check access permissions for this operation",
912
+ },
913
+ {
914
+ code: 404,
915
+ message: "Resource not found",
916
+ solution: "Verify resource name, namespace, and path",
917
+ },
918
+ {
919
+ code: 409,
920
+ message: "Resource already exists",
921
+ solution: "Use different name or update existing resource",
922
+ },
923
+ {
924
+ code: 429,
925
+ message: "Rate limit exceeded",
926
+ solution: "Wait before retrying the operation",
927
+ },
928
+ {
929
+ code: 500,
930
+ message: "Server error",
931
+ solution: "Retry operation or contact support",
932
+ },
933
+ ],
934
+ conditions: {
935
+ postconditions: [],
936
+ prerequisites: ["Active namespace"],
937
+ },
938
+ confirmation_required: false,
939
+ danger_level: "low",
940
+ field_docs: {},
941
+ optional_fields: [],
942
+ performance_impact: {
943
+ latency: "moderate",
944
+ resource_usage: "moderate",
945
+ },
946
+ purpose: "List all app-firewalls",
947
+ required_fields: ["path.namespace"],
948
+ side_effects: {},
949
+ },
950
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/app_firewalls" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @waf-policy.json\n',
951
+ dependencies: [],
952
+ oneOfGroups: [],
953
+ subscriptionRequirements: [
954
+ {
955
+ addonService: "f5xc_waap_standard",
956
+ displayName: "F5XC WAAP Standard",
957
+ required: false,
958
+ tier: "standard",
959
+ },
960
+ {
961
+ addonService: "f5xc_waap_advanced",
962
+ displayName: "F5XC WAAP Advanced",
963
+ required: false,
964
+ tier: "advanced",
965
+ },
966
+ ],
967
+ },
968
+ {
969
+ toolName: "f5xc-api-waf-app-firewall-update",
970
+ method: "PUT",
971
+ path: "/api/config/namespaces/{metadata.namespace}/app_firewalls/{metadata.name}",
972
+ operation: "update",
973
+ domain: "waf",
974
+ resource: "app-firewall",
975
+ summary: "Replace Application Firewall.",
976
+ description: "Replace Application Firewall.",
977
+ pathParameters: [
978
+ {
979
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
980
+ in: "path",
981
+ name: "metadata.name",
982
+ required: true,
983
+ schema: {
984
+ type: "string",
985
+ },
986
+ "x-displayname": "Name",
987
+ "x-ves-example": "Example-corp-web.",
988
+ },
989
+ {
990
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
991
+ in: "path",
992
+ name: "metadata.namespace",
993
+ required: true,
994
+ schema: {
995
+ type: "string",
996
+ },
997
+ "x-displayname": "Namespace",
998
+ "x-ves-example": "Staging",
999
+ },
1000
+ ],
1001
+ queryParameters: [],
1002
+ requestBodySchema: {
1003
+ $ref: "#/components/schemas/app_firewallReplaceRequest",
1004
+ },
1005
+ responseSchema: {
1006
+ $ref: "#/components/schemas/app_firewallReplaceResponse",
1007
+ },
1008
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
1009
+ operationId: "ves.io.schema.app_firewall.API.Replace",
1010
+ tags: ["Other"],
1011
+ sourceFile: "domains/waf.json",
1012
+ displayName: null,
1013
+ dangerLevel: "medium",
1014
+ sideEffects: {
1015
+ modifies: ["app-firewall"],
1016
+ },
1017
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
1018
+ confirmationRequired: false,
1019
+ parameterExamples: {
1020
+ "metadata.name": "Example-corp-web.",
1021
+ "metadata.namespace": "Staging",
1022
+ },
1023
+ validationRules: {},
1024
+ operationMetadata: {
1025
+ common_errors: [
1026
+ {
1027
+ code: 401,
1028
+ message: "Authentication required",
1029
+ solution: "Provide valid API credentials",
1030
+ },
1031
+ {
1032
+ code: 403,
1033
+ message: "Permission denied",
1034
+ solution: "Check access permissions for this operation",
1035
+ },
1036
+ {
1037
+ code: 404,
1038
+ message: "Resource not found",
1039
+ solution: "Verify resource name, namespace, and path",
1040
+ },
1041
+ {
1042
+ code: 409,
1043
+ message: "Resource already exists",
1044
+ solution: "Use different name or update existing resource",
1045
+ },
1046
+ {
1047
+ code: 429,
1048
+ message: "Rate limit exceeded",
1049
+ solution: "Wait before retrying the operation",
1050
+ },
1051
+ {
1052
+ code: 500,
1053
+ message: "Server error",
1054
+ solution: "Retry operation or contact support",
1055
+ },
1056
+ ],
1057
+ conditions: {
1058
+ postconditions: ["Resource updated with new values"],
1059
+ prerequisites: ["Active namespace"],
1060
+ },
1061
+ confirmation_required: false,
1062
+ danger_level: "medium",
1063
+ field_docs: {},
1064
+ optional_fields: [],
1065
+ performance_impact: {
1066
+ latency: "low",
1067
+ resource_usage: "low",
1068
+ },
1069
+ purpose: "Replace existing app-firewall",
1070
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
1071
+ side_effects: {
1072
+ modifies: ["app-firewall"],
1073
+ },
1074
+ },
1075
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/app_firewalls" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @waf-policy.json\n',
1076
+ dependencies: [
1077
+ {
1078
+ domain: "waf",
1079
+ fieldPath: "",
1080
+ inline: false,
1081
+ required: false,
1082
+ resourceType: "app-firewall",
1083
+ },
1084
+ {
1085
+ domain: "",
1086
+ fieldPath: "metadata",
1087
+ inline: false,
1088
+ required: false,
1089
+ resourceType: "schema-object-replace-meta",
1090
+ },
1091
+ {
1092
+ domain: "",
1093
+ fieldPath: "spec",
1094
+ inline: false,
1095
+ required: false,
1096
+ resourceType: "app-firewall-replace",
1097
+ },
1098
+ ],
1099
+ oneOfGroups: [],
1100
+ subscriptionRequirements: [
1101
+ {
1102
+ addonService: "f5xc_waap_standard",
1103
+ displayName: "F5XC WAAP Standard",
1104
+ required: false,
1105
+ tier: "standard",
1106
+ },
1107
+ {
1108
+ addonService: "f5xc_waap_advanced",
1109
+ displayName: "F5XC WAAP Advanced",
1110
+ required: false,
1111
+ tier: "advanced",
1112
+ },
1113
+ ],
1114
+ },
1115
+ {
1116
+ toolName: "f5xc-api-waf-enhanced-firewall-policy-create",
1117
+ method: "POST",
1118
+ path: "/api/config/namespaces/{metadata.namespace}/enhanced_firewall_policys",
1119
+ operation: "create",
1120
+ domain: "waf",
1121
+ resource: "enhanced-firewall-policy",
1122
+ summary: "Create Enhanced Firewall Policy.",
1123
+ description: "Shape of Enhanced Firewall Policy specification.",
1124
+ pathParameters: [
1125
+ {
1126
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
1127
+ in: "path",
1128
+ name: "metadata.namespace",
1129
+ required: true,
1130
+ schema: {
1131
+ type: "string",
1132
+ },
1133
+ "x-displayname": "Namespace",
1134
+ "x-ves-example": "Staging",
1135
+ },
1136
+ ],
1137
+ queryParameters: [],
1138
+ requestBodySchema: {
1139
+ $ref: "#/components/schemas/enhanced_firewall_policyCreateRequest",
1140
+ },
1141
+ responseSchema: {
1142
+ $ref: "#/components/schemas/enhanced_firewall_policyCreateResponse",
1143
+ },
1144
+ requiredParams: ["body", "metadata.namespace"],
1145
+ operationId: "ves.io.schema.enhanced_firewall_policy.API.Create",
1146
+ tags: ["Other"],
1147
+ sourceFile: "domains/waf.json",
1148
+ displayName: null,
1149
+ dangerLevel: "medium",
1150
+ sideEffects: {
1151
+ creates: ["enhanced-firewall-policy"],
1152
+ },
1153
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
1154
+ confirmationRequired: false,
1155
+ parameterExamples: {
1156
+ "metadata.namespace": "Staging",
1157
+ },
1158
+ validationRules: {},
1159
+ operationMetadata: {
1160
+ common_errors: [
1161
+ {
1162
+ code: 401,
1163
+ message: "Authentication required",
1164
+ solution: "Provide valid API credentials",
1165
+ },
1166
+ {
1167
+ code: 403,
1168
+ message: "Permission denied",
1169
+ solution: "Check access permissions for this operation",
1170
+ },
1171
+ {
1172
+ code: 404,
1173
+ message: "Resource not found",
1174
+ solution: "Verify resource name, namespace, and path",
1175
+ },
1176
+ {
1177
+ code: 409,
1178
+ message: "Resource already exists",
1179
+ solution: "Use different name or update existing resource",
1180
+ },
1181
+ {
1182
+ code: 429,
1183
+ message: "Rate limit exceeded",
1184
+ solution: "Wait before retrying the operation",
1185
+ },
1186
+ {
1187
+ code: 500,
1188
+ message: "Server error",
1189
+ solution: "Retry operation or contact support",
1190
+ },
1191
+ ],
1192
+ conditions: {
1193
+ postconditions: [
1194
+ "Enhanced-firewall-policy resource created",
1195
+ "Resource assigned unique identifier",
1196
+ ],
1197
+ prerequisites: ["Active namespace", "Policy parameters defined"],
1198
+ },
1199
+ confirmation_required: false,
1200
+ danger_level: "medium",
1201
+ field_docs: {},
1202
+ optional_fields: [],
1203
+ performance_impact: {
1204
+ latency: "low",
1205
+ resource_usage: "low",
1206
+ },
1207
+ purpose: "Create new enhanced-firewall-policy",
1208
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
1209
+ side_effects: {
1210
+ creates: ["enhanced-firewall-policy"],
1211
+ },
1212
+ },
1213
+ curlExample: null,
1214
+ dependencies: [
1215
+ {
1216
+ domain: "",
1217
+ fieldPath: "",
1218
+ inline: false,
1219
+ required: false,
1220
+ resourceType: "enhanced-firewall-policy",
1221
+ },
1222
+ {
1223
+ domain: "",
1224
+ fieldPath: "metadata",
1225
+ inline: false,
1226
+ required: false,
1227
+ resourceType: "schema-object-create-meta",
1228
+ },
1229
+ {
1230
+ domain: "",
1231
+ fieldPath: "spec",
1232
+ inline: false,
1233
+ required: false,
1234
+ resourceType: "schemaenhanced-firewall-policy-create",
1235
+ },
1236
+ ],
1237
+ oneOfGroups: [],
1238
+ subscriptionRequirements: [
1239
+ {
1240
+ addonService: "f5xc_waap_standard",
1241
+ displayName: "F5XC WAAP Standard",
1242
+ required: false,
1243
+ tier: "standard",
1244
+ },
1245
+ {
1246
+ addonService: "f5xc_waap_advanced",
1247
+ displayName: "F5XC WAAP Advanced",
1248
+ required: false,
1249
+ tier: "advanced",
1250
+ },
1251
+ ],
1252
+ },
1253
+ {
1254
+ toolName: "f5xc-api-waf-enhanced-firewall-policy-delete",
1255
+ method: "DELETE",
1256
+ path: "/api/config/namespaces/{namespace}/enhanced_firewall_policys/{name}",
1257
+ operation: "delete",
1258
+ domain: "waf",
1259
+ resource: "enhanced-firewall-policy",
1260
+ summary: "DELETE Enhanced Firewall Policy.",
1261
+ description: "DELETE the specified enhanced_firewall_policy.",
1262
+ pathParameters: [
1263
+ {
1264
+ description: "Name\nName of the configuration object.",
1265
+ in: "path",
1266
+ name: "name",
1267
+ required: true,
1268
+ schema: {
1269
+ type: "string",
1270
+ },
1271
+ "x-displayname": "Name",
1272
+ "x-ves-example": "Name",
1273
+ },
1274
+ {
1275
+ description: "Namespace\nNamespace in which the configuration object is present.",
1276
+ in: "path",
1277
+ name: "namespace",
1278
+ required: true,
1279
+ schema: {
1280
+ type: "string",
1281
+ },
1282
+ "x-displayname": "Namespace",
1283
+ "x-ves-example": "Ns1",
1284
+ },
1285
+ ],
1286
+ queryParameters: [],
1287
+ requestBodySchema: {
1288
+ $ref: "#/components/schemas/enhanced_firewall_policyDeleteRequest",
1289
+ },
1290
+ responseSchema: {},
1291
+ requiredParams: ["body", "name", "namespace"],
1292
+ operationId: "ves.io.schema.enhanced_firewall_policy.API.Delete",
1293
+ tags: ["Other"],
1294
+ sourceFile: "domains/waf.json",
1295
+ displayName: null,
1296
+ dangerLevel: "high",
1297
+ sideEffects: {
1298
+ deletes: ["enhanced-firewall-policy", "contained_resources"],
1299
+ },
1300
+ requiredFields: ["path.name", "path.namespace"],
1301
+ confirmationRequired: true,
1302
+ parameterExamples: {
1303
+ name: "Name",
1304
+ namespace: "Ns1",
1305
+ },
1306
+ validationRules: {},
1307
+ operationMetadata: {
1308
+ common_errors: [
1309
+ {
1310
+ code: 401,
1311
+ message: "Authentication required",
1312
+ solution: "Provide valid API credentials",
1313
+ },
1314
+ {
1315
+ code: 403,
1316
+ message: "Permission denied",
1317
+ solution: "Check access permissions for this operation",
1318
+ },
1319
+ {
1320
+ code: 404,
1321
+ message: "Resource not found",
1322
+ solution: "Verify resource name, namespace, and path",
1323
+ },
1324
+ {
1325
+ code: 409,
1326
+ message: "Resource already exists",
1327
+ solution: "Use different name or update existing resource",
1328
+ },
1329
+ {
1330
+ code: 429,
1331
+ message: "Rate limit exceeded",
1332
+ solution: "Wait before retrying the operation",
1333
+ },
1334
+ {
1335
+ code: 500,
1336
+ message: "Server error",
1337
+ solution: "Retry operation or contact support",
1338
+ },
1339
+ ],
1340
+ conditions: {
1341
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
1342
+ prerequisites: ["Active namespace", "Policy parameters defined"],
1343
+ },
1344
+ confirmation_required: true,
1345
+ danger_level: "high",
1346
+ field_docs: {},
1347
+ optional_fields: [],
1348
+ performance_impact: {
1349
+ latency: "high",
1350
+ resource_usage: "moderate",
1351
+ },
1352
+ purpose: "Delete enhanced-firewall-policy",
1353
+ required_fields: ["path.name", "path.namespace"],
1354
+ side_effects: {
1355
+ deletes: ["enhanced-firewall-policy", "contained_resources"],
1356
+ },
1357
+ },
1358
+ curlExample: null,
1359
+ dependencies: [
1360
+ {
1361
+ domain: "",
1362
+ fieldPath: "",
1363
+ inline: false,
1364
+ required: false,
1365
+ resourceType: "enhanced-firewall-policy",
1366
+ },
1367
+ ],
1368
+ oneOfGroups: [],
1369
+ subscriptionRequirements: [
1370
+ {
1371
+ addonService: "f5xc_waap_standard",
1372
+ displayName: "F5XC WAAP Standard",
1373
+ required: false,
1374
+ tier: "standard",
1375
+ },
1376
+ {
1377
+ addonService: "f5xc_waap_advanced",
1378
+ displayName: "F5XC WAAP Advanced",
1379
+ required: false,
1380
+ tier: "advanced",
1381
+ },
1382
+ ],
1383
+ },
1384
+ {
1385
+ toolName: "f5xc-api-waf-enhanced-firewall-policy-get",
1386
+ method: "GET",
1387
+ path: "/api/config/namespaces/{namespace}/enhanced_firewall_policys/{name}",
1388
+ operation: "get",
1389
+ domain: "waf",
1390
+ resource: "enhanced-firewall-policy",
1391
+ summary: "GET Enhanced Firewall Policy.",
1392
+ description: "Shape of the Enhanced Firewall Policy specification.",
1393
+ pathParameters: [
1394
+ {
1395
+ description: "Name\nThe name of the configuration object to be fetched.",
1396
+ in: "path",
1397
+ name: "name",
1398
+ required: true,
1399
+ schema: {
1400
+ type: "string",
1401
+ },
1402
+ "x-displayname": "Name",
1403
+ "x-ves-example": "Name",
1404
+ },
1405
+ {
1406
+ description: "Namespace\nThe namespace in which the configuration object is present.",
1407
+ in: "path",
1408
+ name: "namespace",
1409
+ required: true,
1410
+ schema: {
1411
+ type: "string",
1412
+ },
1413
+ "x-displayname": "Namespace",
1414
+ "x-ves-example": "Ns1",
1415
+ },
1416
+ ],
1417
+ queryParameters: [
1418
+ {
1419
+ description: "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referrred by this object.",
1420
+ in: "query",
1421
+ name: "response_format",
1422
+ required: false,
1423
+ schema: {
1424
+ default: "GET_RSP_FORMAT_DEFAULT",
1425
+ enum: [
1426
+ "GET_RSP_FORMAT_DEFAULT",
1427
+ "GET_RSP_FORMAT_FOR_CREATE",
1428
+ "GET_RSP_FORMAT_FOR_REPLACE",
1429
+ "GET_RSP_FORMAT_STATUS",
1430
+ "GET_RSP_FORMAT_READ",
1431
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
1432
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
1433
+ ],
1434
+ type: "string",
1435
+ },
1436
+ "x-displayname": "Broken Referred Objects.",
1437
+ },
1438
+ ],
1439
+ requestBodySchema: null,
1440
+ responseSchema: {
1441
+ $ref: "#/components/schemas/enhanced_firewall_policyGetResponse",
1442
+ },
1443
+ requiredParams: ["name", "namespace"],
1444
+ operationId: "ves.io.schema.enhanced_firewall_policy.API.Get",
1445
+ tags: ["Other"],
1446
+ sourceFile: "domains/waf.json",
1447
+ displayName: null,
1448
+ dangerLevel: "low",
1449
+ sideEffects: null,
1450
+ requiredFields: ["path.name", "path.namespace"],
1451
+ confirmationRequired: false,
1452
+ parameterExamples: {
1453
+ name: "Name",
1454
+ namespace: "Ns1",
1455
+ },
1456
+ validationRules: {},
1457
+ operationMetadata: {
1458
+ common_errors: [
1459
+ {
1460
+ code: 401,
1461
+ message: "Authentication required",
1462
+ solution: "Provide valid API credentials",
1463
+ },
1464
+ {
1465
+ code: 403,
1466
+ message: "Permission denied",
1467
+ solution: "Check access permissions for this operation",
1468
+ },
1469
+ {
1470
+ code: 404,
1471
+ message: "Resource not found",
1472
+ solution: "Verify resource name, namespace, and path",
1473
+ },
1474
+ {
1475
+ code: 409,
1476
+ message: "Resource already exists",
1477
+ solution: "Use different name or update existing resource",
1478
+ },
1479
+ {
1480
+ code: 429,
1481
+ message: "Rate limit exceeded",
1482
+ solution: "Wait before retrying the operation",
1483
+ },
1484
+ {
1485
+ code: 500,
1486
+ message: "Server error",
1487
+ solution: "Retry operation or contact support",
1488
+ },
1489
+ ],
1490
+ conditions: {
1491
+ postconditions: [],
1492
+ prerequisites: ["Active namespace", "Policy parameters defined"],
1493
+ },
1494
+ confirmation_required: false,
1495
+ danger_level: "low",
1496
+ field_docs: {},
1497
+ optional_fields: [],
1498
+ performance_impact: {
1499
+ latency: "low",
1500
+ resource_usage: "low",
1501
+ },
1502
+ purpose: "Retrieve specific enhanced-firewall-policy",
1503
+ required_fields: ["path.name", "path.namespace"],
1504
+ side_effects: {},
1505
+ },
1506
+ curlExample: null,
1507
+ dependencies: [],
1508
+ oneOfGroups: [],
1509
+ subscriptionRequirements: [
1510
+ {
1511
+ addonService: "f5xc_waap_standard",
1512
+ displayName: "F5XC WAAP Standard",
1513
+ required: false,
1514
+ tier: "standard",
1515
+ },
1516
+ {
1517
+ addonService: "f5xc_waap_advanced",
1518
+ displayName: "F5XC WAAP Advanced",
1519
+ required: false,
1520
+ tier: "advanced",
1521
+ },
1522
+ ],
1523
+ },
1524
+ {
1525
+ toolName: "f5xc-api-waf-enhanced-firewall-policy-list",
1526
+ method: "GET",
1527
+ path: "/api/config/namespaces/{namespace}/enhanced_firewall_policys",
1528
+ operation: "list",
1529
+ domain: "waf",
1530
+ resource: "enhanced-firewall-policy",
1531
+ summary: "List Enhanced Firewall Policy.",
1532
+ description: "List the set of enhanced_firewall_policy in a namespace.",
1533
+ pathParameters: [
1534
+ {
1535
+ description: "Namespace\nNamespace to scope the listing of enhanced_firewall_policy.",
1536
+ in: "path",
1537
+ name: "namespace",
1538
+ required: true,
1539
+ schema: {
1540
+ type: "string",
1541
+ },
1542
+ "x-displayname": "Namespace",
1543
+ "x-ves-example": "Ns1",
1544
+ },
1545
+ ],
1546
+ queryParameters: [
1547
+ {
1548
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
1549
+ in: "query",
1550
+ name: "label_filter",
1551
+ required: false,
1552
+ schema: {
1553
+ type: "string",
1554
+ },
1555
+ "x-displayname": "Label Filter.",
1556
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
1557
+ },
1558
+ {
1559
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
1560
+ in: "query",
1561
+ name: "report_fields",
1562
+ required: false,
1563
+ schema: {
1564
+ items: {
1565
+ type: "string",
1566
+ },
1567
+ type: "array",
1568
+ },
1569
+ "x-displayname": "Report Fields.",
1570
+ },
1571
+ {
1572
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
1573
+ in: "query",
1574
+ name: "report_status_fields",
1575
+ required: false,
1576
+ schema: {
1577
+ items: {
1578
+ type: "string",
1579
+ },
1580
+ type: "array",
1581
+ },
1582
+ "x-displayname": "Report Status Fields.",
1583
+ },
1584
+ ],
1585
+ requestBodySchema: null,
1586
+ responseSchema: {
1587
+ $ref: "#/components/schemas/enhanced_firewall_policyListResponse",
1588
+ },
1589
+ requiredParams: ["namespace"],
1590
+ operationId: "ves.io.schema.enhanced_firewall_policy.API.List",
1591
+ tags: ["Other"],
1592
+ sourceFile: "domains/waf.json",
1593
+ displayName: null,
1594
+ dangerLevel: "low",
1595
+ sideEffects: null,
1596
+ requiredFields: ["path.namespace"],
1597
+ confirmationRequired: false,
1598
+ parameterExamples: {
1599
+ label_filter: "Env in (staging, testing), tier in (web, db)",
1600
+ namespace: "Ns1",
1601
+ },
1602
+ validationRules: {},
1603
+ operationMetadata: {
1604
+ common_errors: [
1605
+ {
1606
+ code: 401,
1607
+ message: "Authentication required",
1608
+ solution: "Provide valid API credentials",
1609
+ },
1610
+ {
1611
+ code: 403,
1612
+ message: "Permission denied",
1613
+ solution: "Check access permissions for this operation",
1614
+ },
1615
+ {
1616
+ code: 404,
1617
+ message: "Resource not found",
1618
+ solution: "Verify resource name, namespace, and path",
1619
+ },
1620
+ {
1621
+ code: 409,
1622
+ message: "Resource already exists",
1623
+ solution: "Use different name or update existing resource",
1624
+ },
1625
+ {
1626
+ code: 429,
1627
+ message: "Rate limit exceeded",
1628
+ solution: "Wait before retrying the operation",
1629
+ },
1630
+ {
1631
+ code: 500,
1632
+ message: "Server error",
1633
+ solution: "Retry operation or contact support",
1634
+ },
1635
+ ],
1636
+ conditions: {
1637
+ postconditions: [],
1638
+ prerequisites: ["Active namespace", "Policy parameters defined"],
1639
+ },
1640
+ confirmation_required: false,
1641
+ danger_level: "low",
1642
+ field_docs: {},
1643
+ optional_fields: [],
1644
+ performance_impact: {
1645
+ latency: "moderate",
1646
+ resource_usage: "moderate",
1647
+ },
1648
+ purpose: "List all enhanced-firewall-policys",
1649
+ required_fields: ["path.namespace"],
1650
+ side_effects: {},
1651
+ },
1652
+ curlExample: null,
1653
+ dependencies: [],
1654
+ oneOfGroups: [],
1655
+ subscriptionRequirements: [
1656
+ {
1657
+ addonService: "f5xc_waap_standard",
1658
+ displayName: "F5XC WAAP Standard",
1659
+ required: false,
1660
+ tier: "standard",
1661
+ },
1662
+ {
1663
+ addonService: "f5xc_waap_advanced",
1664
+ displayName: "F5XC WAAP Advanced",
1665
+ required: false,
1666
+ tier: "advanced",
1667
+ },
1668
+ ],
1669
+ },
1670
+ {
1671
+ toolName: "f5xc-api-waf-enhanced-firewall-policy-update",
1672
+ method: "PUT",
1673
+ path: "/api/config/namespaces/{metadata.namespace}/enhanced_firewall_policys/{metadata.name}",
1674
+ operation: "update",
1675
+ domain: "waf",
1676
+ resource: "enhanced-firewall-policy",
1677
+ summary: "Replace Enhanced Firewall Policy.",
1678
+ description: "Shape of Enhanced Firewall Policy replace specification.",
1679
+ pathParameters: [
1680
+ {
1681
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
1682
+ in: "path",
1683
+ name: "metadata.name",
1684
+ required: true,
1685
+ schema: {
1686
+ type: "string",
1687
+ },
1688
+ "x-displayname": "Name",
1689
+ "x-ves-example": "Example-corp-web.",
1690
+ },
1691
+ {
1692
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
1693
+ in: "path",
1694
+ name: "metadata.namespace",
1695
+ required: true,
1696
+ schema: {
1697
+ type: "string",
1698
+ },
1699
+ "x-displayname": "Namespace",
1700
+ "x-ves-example": "Staging",
1701
+ },
1702
+ ],
1703
+ queryParameters: [],
1704
+ requestBodySchema: {
1705
+ $ref: "#/components/schemas/enhanced_firewall_policyReplaceRequest",
1706
+ },
1707
+ responseSchema: {
1708
+ $ref: "#/components/schemas/enhanced_firewall_policyReplaceResponse",
1709
+ },
1710
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
1711
+ operationId: "ves.io.schema.enhanced_firewall_policy.API.Replace",
1712
+ tags: ["Other"],
1713
+ sourceFile: "domains/waf.json",
1714
+ displayName: null,
1715
+ dangerLevel: "medium",
1716
+ sideEffects: {
1717
+ modifies: ["enhanced-firewall-policy"],
1718
+ },
1719
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
1720
+ confirmationRequired: false,
1721
+ parameterExamples: {
1722
+ "metadata.name": "Example-corp-web.",
1723
+ "metadata.namespace": "Staging",
1724
+ },
1725
+ validationRules: {},
1726
+ operationMetadata: {
1727
+ common_errors: [
1728
+ {
1729
+ code: 401,
1730
+ message: "Authentication required",
1731
+ solution: "Provide valid API credentials",
1732
+ },
1733
+ {
1734
+ code: 403,
1735
+ message: "Permission denied",
1736
+ solution: "Check access permissions for this operation",
1737
+ },
1738
+ {
1739
+ code: 404,
1740
+ message: "Resource not found",
1741
+ solution: "Verify resource name, namespace, and path",
1742
+ },
1743
+ {
1744
+ code: 409,
1745
+ message: "Resource already exists",
1746
+ solution: "Use different name or update existing resource",
1747
+ },
1748
+ {
1749
+ code: 429,
1750
+ message: "Rate limit exceeded",
1751
+ solution: "Wait before retrying the operation",
1752
+ },
1753
+ {
1754
+ code: 500,
1755
+ message: "Server error",
1756
+ solution: "Retry operation or contact support",
1757
+ },
1758
+ ],
1759
+ conditions: {
1760
+ postconditions: ["Resource updated with new values"],
1761
+ prerequisites: ["Active namespace", "Policy parameters defined"],
1762
+ },
1763
+ confirmation_required: false,
1764
+ danger_level: "medium",
1765
+ field_docs: {},
1766
+ optional_fields: [],
1767
+ performance_impact: {
1768
+ latency: "low",
1769
+ resource_usage: "low",
1770
+ },
1771
+ purpose: "Replace existing enhanced-firewall-policy",
1772
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
1773
+ side_effects: {
1774
+ modifies: ["enhanced-firewall-policy"],
1775
+ },
1776
+ },
1777
+ curlExample: null,
1778
+ dependencies: [
1779
+ {
1780
+ domain: "",
1781
+ fieldPath: "",
1782
+ inline: false,
1783
+ required: false,
1784
+ resourceType: "enhanced-firewall-policy",
1785
+ },
1786
+ {
1787
+ domain: "",
1788
+ fieldPath: "metadata",
1789
+ inline: false,
1790
+ required: false,
1791
+ resourceType: "schema-object-replace-meta",
1792
+ },
1793
+ {
1794
+ domain: "",
1795
+ fieldPath: "spec",
1796
+ inline: false,
1797
+ required: false,
1798
+ resourceType: "schemaenhanced-firewall-policy-replace",
1799
+ },
1800
+ ],
1801
+ oneOfGroups: [],
1802
+ subscriptionRequirements: [
1803
+ {
1804
+ addonService: "f5xc_waap_standard",
1805
+ displayName: "F5XC WAAP Standard",
1806
+ required: false,
1807
+ tier: "standard",
1808
+ },
1809
+ {
1810
+ addonService: "f5xc_waap_advanced",
1811
+ displayName: "F5XC WAAP Advanced",
1812
+ required: false,
1813
+ tier: "advanced",
1814
+ },
1815
+ ],
1816
+ },
1817
+ {
1818
+ toolName: "f5xc-api-waf-event-create",
1819
+ method: "POST",
1820
+ path: "/api/data/namespaces/{namespace}/app_security/events",
1821
+ operation: "create",
1822
+ domain: "waf",
1823
+ resource: "event",
1824
+ summary: "Security Events Query.",
1825
+ description: "GET security events for the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be returned in the response. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.",
1826
+ pathParameters: [
1827
+ {
1828
+ description: "Namespace\n\nfetch security events for a given namespace.",
1829
+ in: "path",
1830
+ name: "namespace",
1831
+ required: true,
1832
+ schema: {
1833
+ type: "string",
1834
+ },
1835
+ "x-displayname": "Namespace",
1836
+ "x-ves-example": "Bloggin-app-namespace-1.",
1837
+ },
1838
+ ],
1839
+ queryParameters: [],
1840
+ requestBodySchema: null,
1841
+ responseSchema: {
1842
+ $ref: "#/components/schemas/app_securitySecurityEventsResponse",
1843
+ },
1844
+ requiredParams: ["namespace"],
1845
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQuery",
1846
+ tags: ["Other"],
1847
+ sourceFile: "domains/waf.json",
1848
+ displayName: null,
1849
+ dangerLevel: "medium",
1850
+ sideEffects: {
1851
+ creates: ["event"],
1852
+ },
1853
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
1854
+ confirmationRequired: false,
1855
+ parameterExamples: {
1856
+ namespace: "Bloggin-app-namespace-1.",
1857
+ },
1858
+ validationRules: {},
1859
+ operationMetadata: {
1860
+ common_errors: [
1861
+ {
1862
+ code: 401,
1863
+ message: "Authentication required",
1864
+ solution: "Provide valid API credentials",
1865
+ },
1866
+ {
1867
+ code: 403,
1868
+ message: "Permission denied",
1869
+ solution: "Check access permissions for this operation",
1870
+ },
1871
+ {
1872
+ code: 404,
1873
+ message: "Resource not found",
1874
+ solution: "Verify resource name, namespace, and path",
1875
+ },
1876
+ {
1877
+ code: 409,
1878
+ message: "Resource already exists",
1879
+ solution: "Use different name or update existing resource",
1880
+ },
1881
+ {
1882
+ code: 429,
1883
+ message: "Rate limit exceeded",
1884
+ solution: "Wait before retrying the operation",
1885
+ },
1886
+ {
1887
+ code: 500,
1888
+ message: "Server error",
1889
+ solution: "Retry operation or contact support",
1890
+ },
1891
+ ],
1892
+ conditions: {
1893
+ postconditions: ["Event resource created", "Resource assigned unique identifier"],
1894
+ prerequisites: ["Active namespace"],
1895
+ },
1896
+ confirmation_required: false,
1897
+ danger_level: "medium",
1898
+ field_docs: {},
1899
+ optional_fields: [],
1900
+ performance_impact: {
1901
+ latency: "low",
1902
+ resource_usage: "low",
1903
+ },
1904
+ purpose: "Create new event",
1905
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
1906
+ side_effects: {
1907
+ creates: ["event"],
1908
+ },
1909
+ },
1910
+ curlExample: null,
1911
+ dependencies: [],
1912
+ oneOfGroups: [],
1913
+ subscriptionRequirements: [
1914
+ {
1915
+ addonService: "f5xc_waap_standard",
1916
+ displayName: "F5XC WAAP Standard",
1917
+ required: false,
1918
+ tier: "standard",
1919
+ },
1920
+ {
1921
+ addonService: "f5xc_waap_advanced",
1922
+ displayName: "F5XC WAAP Advanced",
1923
+ required: false,
1924
+ tier: "advanced",
1925
+ },
1926
+ ],
1927
+ },
1928
+ {
1929
+ toolName: "f5xc-api-waf-hit-create",
1930
+ method: "POST",
1931
+ path: "/api/data/namespaces/{namespace}/enhanced_firewall_policy/hits",
1932
+ operation: "create",
1933
+ domain: "waf",
1934
+ resource: "hit",
1935
+ summary: "Enhanced Firewall Policy Hits.",
1936
+ description: "GET the counter for Enhanced Firewall Policy hits for a given namespace.",
1937
+ pathParameters: [
1938
+ {
1939
+ description: "Namespace\nNamespace is used to scope Enhanced Firewall Policy hits for the given namespace.",
1940
+ in: "path",
1941
+ name: "namespace",
1942
+ required: true,
1943
+ schema: {
1944
+ type: "string",
1945
+ },
1946
+ "x-displayname": "Namespace",
1947
+ "x-ves-example": "Ns1",
1948
+ },
1949
+ ],
1950
+ queryParameters: [],
1951
+ requestBodySchema: {
1952
+ $ref: "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHitsRequest",
1953
+ },
1954
+ responseSchema: {
1955
+ $ref: "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHitsResponse",
1956
+ },
1957
+ requiredParams: ["body", "namespace"],
1958
+ operationId: "ves.io.schema.enhanced_firewall_policy.CustomDataAPI.EnhancedFirewallPolicyHits",
1959
+ tags: ["Other"],
1960
+ sourceFile: "domains/waf.json",
1961
+ displayName: null,
1962
+ dangerLevel: "medium",
1963
+ sideEffects: {
1964
+ creates: ["hit"],
1965
+ },
1966
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
1967
+ confirmationRequired: false,
1968
+ parameterExamples: {
1969
+ namespace: "Ns1",
1970
+ },
1971
+ validationRules: {},
1972
+ operationMetadata: {
1973
+ common_errors: [
1974
+ {
1975
+ code: 401,
1976
+ message: "Authentication required",
1977
+ solution: "Provide valid API credentials",
1978
+ },
1979
+ {
1980
+ code: 403,
1981
+ message: "Permission denied",
1982
+ solution: "Check access permissions for this operation",
1983
+ },
1984
+ {
1985
+ code: 404,
1986
+ message: "Resource not found",
1987
+ solution: "Verify resource name, namespace, and path",
1988
+ },
1989
+ {
1990
+ code: 409,
1991
+ message: "Resource already exists",
1992
+ solution: "Use different name or update existing resource",
1993
+ },
1994
+ {
1995
+ code: 429,
1996
+ message: "Rate limit exceeded",
1997
+ solution: "Wait before retrying the operation",
1998
+ },
1999
+ {
2000
+ code: 500,
2001
+ message: "Server error",
2002
+ solution: "Retry operation or contact support",
2003
+ },
2004
+ ],
2005
+ conditions: {
2006
+ postconditions: ["Hit resource created", "Resource assigned unique identifier"],
2007
+ prerequisites: ["Active namespace", "Policy parameters defined"],
2008
+ },
2009
+ confirmation_required: false,
2010
+ danger_level: "medium",
2011
+ field_docs: {},
2012
+ optional_fields: [],
2013
+ performance_impact: {
2014
+ latency: "low",
2015
+ resource_usage: "low",
2016
+ },
2017
+ purpose: "Create new hit",
2018
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
2019
+ side_effects: {
2020
+ creates: ["hit"],
2021
+ },
2022
+ },
2023
+ curlExample: null,
2024
+ dependencies: [],
2025
+ oneOfGroups: [],
2026
+ subscriptionRequirements: [
2027
+ {
2028
+ addonService: "f5xc_waap_standard",
2029
+ displayName: "F5XC WAAP Standard",
2030
+ required: false,
2031
+ tier: "standard",
2032
+ },
2033
+ {
2034
+ addonService: "f5xc_waap_advanced",
2035
+ displayName: "F5XC WAAP Advanced",
2036
+ required: false,
2037
+ tier: "advanced",
2038
+ },
2039
+ ],
2040
+ },
2041
+ {
2042
+ toolName: "f5xc-api-waf-incident-create",
2043
+ method: "POST",
2044
+ path: "/api/data/namespaces/{namespace}/app_security/incidents",
2045
+ operation: "create",
2046
+ domain: "waf",
2047
+ resource: "incident",
2048
+ summary: "Security Incidents Query.",
2049
+ description: "GET security incidents for the given namespace.\nFor `system` namespace, all security incidents for the tenant matching the query specified\nin the request will be returned in the response. User may query security incidents that matches various\nfields such as `vh_name`, `intent`, `city`, `country`.",
2050
+ pathParameters: [
2051
+ {
2052
+ description: "Namespace\nFetch security incidents for a given namespace.",
2053
+ in: "path",
2054
+ name: "namespace",
2055
+ required: true,
2056
+ schema: {
2057
+ type: "string",
2058
+ },
2059
+ "x-displayname": "Namespace",
2060
+ "x-ves-example": "Bloggin-app-namespace-1.",
2061
+ },
2062
+ ],
2063
+ queryParameters: [],
2064
+ requestBodySchema: {
2065
+ $ref: "#/components/schemas/app_securitySecurityIncidentsRequest",
2066
+ },
2067
+ responseSchema: {
2068
+ $ref: "#/components/schemas/app_securitySecurityIncidentsResponse",
2069
+ },
2070
+ requiredParams: ["body", "namespace"],
2071
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsQuery",
2072
+ tags: ["Other"],
2073
+ sourceFile: "domains/waf.json",
2074
+ displayName: null,
2075
+ dangerLevel: "medium",
2076
+ sideEffects: {
2077
+ creates: ["incident"],
2078
+ },
2079
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
2080
+ confirmationRequired: false,
2081
+ parameterExamples: {
2082
+ namespace: "Bloggin-app-namespace-1.",
2083
+ },
2084
+ validationRules: {},
2085
+ operationMetadata: {
2086
+ common_errors: [
2087
+ {
2088
+ code: 401,
2089
+ message: "Authentication required",
2090
+ solution: "Provide valid API credentials",
2091
+ },
2092
+ {
2093
+ code: 403,
2094
+ message: "Permission denied",
2095
+ solution: "Check access permissions for this operation",
2096
+ },
2097
+ {
2098
+ code: 404,
2099
+ message: "Resource not found",
2100
+ solution: "Verify resource name, namespace, and path",
2101
+ },
2102
+ {
2103
+ code: 409,
2104
+ message: "Resource already exists",
2105
+ solution: "Use different name or update existing resource",
2106
+ },
2107
+ {
2108
+ code: 429,
2109
+ message: "Rate limit exceeded",
2110
+ solution: "Wait before retrying the operation",
2111
+ },
2112
+ {
2113
+ code: 500,
2114
+ message: "Server error",
2115
+ solution: "Retry operation or contact support",
2116
+ },
2117
+ ],
2118
+ conditions: {
2119
+ postconditions: ["Incident resource created", "Resource assigned unique identifier"],
2120
+ prerequisites: ["Active namespace"],
2121
+ },
2122
+ confirmation_required: false,
2123
+ danger_level: "medium",
2124
+ field_docs: {},
2125
+ optional_fields: [],
2126
+ performance_impact: {
2127
+ latency: "low",
2128
+ resource_usage: "low",
2129
+ },
2130
+ purpose: "Create new incident",
2131
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
2132
+ side_effects: {
2133
+ creates: ["incident"],
2134
+ },
2135
+ },
2136
+ curlExample: null,
2137
+ dependencies: [],
2138
+ oneOfGroups: [],
2139
+ subscriptionRequirements: [
2140
+ {
2141
+ addonService: "f5xc_waap_standard",
2142
+ displayName: "F5XC WAAP Standard",
2143
+ required: false,
2144
+ tier: "standard",
2145
+ },
2146
+ {
2147
+ addonService: "f5xc_waap_advanced",
2148
+ displayName: "F5XC WAAP Advanced",
2149
+ required: false,
2150
+ tier: "advanced",
2151
+ },
2152
+ ],
2153
+ },
2154
+ {
2155
+ toolName: "f5xc-api-waf-loadbalancer-create",
2156
+ method: "POST",
2157
+ path: "/api/data/namespaces/system/app_security/all_ns_search/loadbalancers",
2158
+ operation: "create",
2159
+ domain: "waf",
2160
+ resource: "loadbalancer",
2161
+ summary: "Search load balancers All Namespaces.",
2162
+ description: "GET list of virtual hosts matching label filter.",
2163
+ pathParameters: [],
2164
+ queryParameters: [],
2165
+ requestBodySchema: null,
2166
+ responseSchema: {
2167
+ $ref: "#/components/schemas/app_securitySearchLoadBalancersResponse",
2168
+ },
2169
+ requiredParams: [],
2170
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SearchLoadBalancersAllNamespaces",
2171
+ tags: ["Other"],
2172
+ sourceFile: "domains/waf.json",
2173
+ displayName: null,
2174
+ dangerLevel: "medium",
2175
+ sideEffects: {
2176
+ creates: ["loadbalancer"],
2177
+ },
2178
+ requiredFields: ["metadata.name", "metadata.namespace"],
2179
+ confirmationRequired: false,
2180
+ parameterExamples: {},
2181
+ validationRules: {},
2182
+ operationMetadata: {
2183
+ common_errors: [
2184
+ {
2185
+ code: 401,
2186
+ message: "Authentication required",
2187
+ solution: "Provide valid API credentials",
2188
+ },
2189
+ {
2190
+ code: 403,
2191
+ message: "Permission denied",
2192
+ solution: "Check access permissions for this operation",
2193
+ },
2194
+ {
2195
+ code: 404,
2196
+ message: "Resource not found",
2197
+ solution: "Verify resource name, namespace, and path",
2198
+ },
2199
+ {
2200
+ code: 409,
2201
+ message: "Resource already exists",
2202
+ solution: "Use different name or update existing resource",
2203
+ },
2204
+ {
2205
+ code: 429,
2206
+ message: "Rate limit exceeded",
2207
+ solution: "Wait before retrying the operation",
2208
+ },
2209
+ {
2210
+ code: 500,
2211
+ message: "Server error",
2212
+ solution: "Retry operation or contact support",
2213
+ },
2214
+ ],
2215
+ conditions: {
2216
+ postconditions: ["Loadbalancer resource created", "Resource assigned unique identifier"],
2217
+ prerequisites: ["Active namespace"],
2218
+ },
2219
+ confirmation_required: false,
2220
+ danger_level: "medium",
2221
+ field_docs: {},
2222
+ optional_fields: [],
2223
+ performance_impact: {
2224
+ latency: "low",
2225
+ resource_usage: "low",
2226
+ },
2227
+ purpose: "Create new loadbalancer",
2228
+ required_fields: ["metadata.name", "metadata.namespace"],
2229
+ side_effects: {
2230
+ creates: ["loadbalancer"],
2231
+ },
2232
+ },
2233
+ curlExample: null,
2234
+ dependencies: [],
2235
+ oneOfGroups: [],
2236
+ subscriptionRequirements: [
2237
+ {
2238
+ addonService: "f5xc_waap_standard",
2239
+ displayName: "F5XC WAAP Standard",
2240
+ required: false,
2241
+ tier: "standard",
2242
+ },
2243
+ {
2244
+ addonService: "f5xc_waap_advanced",
2245
+ displayName: "F5XC WAAP Advanced",
2246
+ required: false,
2247
+ tier: "advanced",
2248
+ },
2249
+ ],
2250
+ },
2251
+ {
2252
+ toolName: "f5xc-api-waf-metric-create",
2253
+ method: "POST",
2254
+ path: "/api/data/namespaces/{namespace}/app_firewall/metrics",
2255
+ operation: "create",
2256
+ domain: "waf",
2257
+ resource: "metric",
2258
+ summary: "Metrics",
2259
+ description: "App Firewall metrics.",
2260
+ pathParameters: [
2261
+ {
2262
+ description: "Namespace",
2263
+ in: "path",
2264
+ name: "namespace",
2265
+ required: true,
2266
+ schema: {
2267
+ type: "string",
2268
+ },
2269
+ "x-displayname": "Namespace",
2270
+ "x-ves-example": "System",
2271
+ },
2272
+ ],
2273
+ queryParameters: [],
2274
+ requestBodySchema: null,
2275
+ responseSchema: {
2276
+ $ref: "#/components/schemas/app_firewallMetricsResponse",
2277
+ },
2278
+ requiredParams: ["namespace"],
2279
+ operationId: "ves.io.schema.app_firewall.CustomDataAPI.Metrics",
2280
+ tags: ["Security"],
2281
+ sourceFile: "domains/waf.json",
2282
+ displayName: null,
2283
+ dangerLevel: "medium",
2284
+ sideEffects: {
2285
+ creates: ["metric"],
2286
+ },
2287
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
2288
+ confirmationRequired: false,
2289
+ parameterExamples: {
2290
+ namespace: "System",
2291
+ },
2292
+ validationRules: {},
2293
+ operationMetadata: {
2294
+ common_errors: [
2295
+ {
2296
+ code: 401,
2297
+ message: "Authentication required",
2298
+ solution: "Provide valid API credentials",
2299
+ },
2300
+ {
2301
+ code: 403,
2302
+ message: "Permission denied",
2303
+ solution: "Check access permissions for this operation",
2304
+ },
2305
+ {
2306
+ code: 404,
2307
+ message: "Resource not found",
2308
+ solution: "Verify resource name, namespace, and path",
2309
+ },
2310
+ {
2311
+ code: 409,
2312
+ message: "Resource already exists",
2313
+ solution: "Use different name or update existing resource",
2314
+ },
2315
+ {
2316
+ code: 429,
2317
+ message: "Rate limit exceeded",
2318
+ solution: "Wait before retrying the operation",
2319
+ },
2320
+ {
2321
+ code: 500,
2322
+ message: "Server error",
2323
+ solution: "Retry operation or contact support",
2324
+ },
2325
+ ],
2326
+ conditions: {
2327
+ postconditions: ["Metric resource created", "Resource assigned unique identifier"],
2328
+ prerequisites: ["Active namespace"],
2329
+ },
2330
+ confirmation_required: false,
2331
+ danger_level: "medium",
2332
+ field_docs: {},
2333
+ optional_fields: [],
2334
+ performance_impact: {
2335
+ latency: "low",
2336
+ resource_usage: "low",
2337
+ },
2338
+ purpose: "Create new metric",
2339
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
2340
+ side_effects: {
2341
+ creates: ["metric"],
2342
+ },
2343
+ },
2344
+ curlExample: null,
2345
+ dependencies: [],
2346
+ oneOfGroups: [],
2347
+ subscriptionRequirements: [
2348
+ {
2349
+ addonService: "f5xc_waap_standard",
2350
+ displayName: "F5XC WAAP Standard",
2351
+ required: false,
2352
+ tier: "standard",
2353
+ },
2354
+ {
2355
+ addonService: "f5xc_waap_advanced",
2356
+ displayName: "F5XC WAAP Advanced",
2357
+ required: false,
2358
+ tier: "advanced",
2359
+ },
2360
+ ],
2361
+ },
2362
+ {
2363
+ toolName: "f5xc-api-waf-protocol-inspection-create",
2364
+ method: "POST",
2365
+ path: "/api/config/namespaces/{metadata.namespace}/protocol_inspections",
2366
+ operation: "create",
2367
+ domain: "waf",
2368
+ resource: "protocol-inspection",
2369
+ summary: "Create Protocol Inspection.",
2370
+ description: "Create Protocol Inspection Specification in a given namespace. If one already exists it will give an error.",
2371
+ pathParameters: [
2372
+ {
2373
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
2374
+ in: "path",
2375
+ name: "metadata.namespace",
2376
+ required: true,
2377
+ schema: {
2378
+ type: "string",
2379
+ },
2380
+ "x-displayname": "Namespace",
2381
+ "x-ves-example": "Staging",
2382
+ },
2383
+ ],
2384
+ queryParameters: [],
2385
+ requestBodySchema: {
2386
+ $ref: "#/components/schemas/protocol_inspectionCreateRequest",
2387
+ },
2388
+ responseSchema: {
2389
+ $ref: "#/components/schemas/protocol_inspectionCreateResponse",
2390
+ },
2391
+ requiredParams: ["body", "metadata.namespace"],
2392
+ operationId: "ves.io.schema.protocol_inspection.API.Create",
2393
+ tags: ["Other"],
2394
+ sourceFile: "domains/waf.json",
2395
+ displayName: null,
2396
+ dangerLevel: "medium",
2397
+ sideEffects: {
2398
+ creates: ["protocol-inspection"],
2399
+ },
2400
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
2401
+ confirmationRequired: false,
2402
+ parameterExamples: {
2403
+ "metadata.namespace": "Staging",
2404
+ },
2405
+ validationRules: {},
2406
+ operationMetadata: {
2407
+ common_errors: [
2408
+ {
2409
+ code: 401,
2410
+ message: "Authentication required",
2411
+ solution: "Provide valid API credentials",
2412
+ },
2413
+ {
2414
+ code: 403,
2415
+ message: "Permission denied",
2416
+ solution: "Check access permissions for this operation",
2417
+ },
2418
+ {
2419
+ code: 404,
2420
+ message: "Resource not found",
2421
+ solution: "Verify resource name, namespace, and path",
2422
+ },
2423
+ {
2424
+ code: 409,
2425
+ message: "Resource already exists",
2426
+ solution: "Use different name or update existing resource",
2427
+ },
2428
+ {
2429
+ code: 429,
2430
+ message: "Rate limit exceeded",
2431
+ solution: "Wait before retrying the operation",
2432
+ },
2433
+ {
2434
+ code: 500,
2435
+ message: "Server error",
2436
+ solution: "Retry operation or contact support",
2437
+ },
2438
+ ],
2439
+ conditions: {
2440
+ postconditions: [
2441
+ "Protocol-inspection resource created",
2442
+ "Resource assigned unique identifier",
2443
+ ],
2444
+ prerequisites: ["Active namespace"],
2445
+ },
2446
+ confirmation_required: false,
2447
+ danger_level: "medium",
2448
+ field_docs: {},
2449
+ optional_fields: [],
2450
+ performance_impact: {
2451
+ latency: "low",
2452
+ resource_usage: "low",
2453
+ },
2454
+ purpose: "Create new protocol-inspection",
2455
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
2456
+ side_effects: {
2457
+ creates: ["protocol-inspection"],
2458
+ },
2459
+ },
2460
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/protocol_inspections" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @example.json',
2461
+ dependencies: [
2462
+ {
2463
+ domain: "",
2464
+ fieldPath: "",
2465
+ inline: false,
2466
+ required: false,
2467
+ resourceType: "protocol-inspection",
2468
+ },
2469
+ {
2470
+ domain: "",
2471
+ fieldPath: "metadata",
2472
+ inline: false,
2473
+ required: false,
2474
+ resourceType: "schema-object-create-meta",
2475
+ },
2476
+ {
2477
+ domain: "",
2478
+ fieldPath: "spec",
2479
+ inline: false,
2480
+ required: false,
2481
+ resourceType: "protocol-inspection-create",
2482
+ },
2483
+ ],
2484
+ oneOfGroups: [],
2485
+ subscriptionRequirements: [
2486
+ {
2487
+ addonService: "f5xc_waap_standard",
2488
+ displayName: "F5XC WAAP Standard",
2489
+ required: false,
2490
+ tier: "standard",
2491
+ },
2492
+ {
2493
+ addonService: "f5xc_waap_advanced",
2494
+ displayName: "F5XC WAAP Advanced",
2495
+ required: false,
2496
+ tier: "advanced",
2497
+ },
2498
+ ],
2499
+ },
2500
+ {
2501
+ toolName: "f5xc-api-waf-protocol-inspection-delete",
2502
+ method: "DELETE",
2503
+ path: "/api/config/namespaces/{namespace}/protocol_inspections/{name}",
2504
+ operation: "delete",
2505
+ domain: "waf",
2506
+ resource: "protocol-inspection",
2507
+ summary: "DELETE Configure Protocol Inspection.",
2508
+ description: "DELETE the specified protocol_inspection.",
2509
+ pathParameters: [
2510
+ {
2511
+ description: "Name\nName of the configuration object.",
2512
+ in: "path",
2513
+ name: "name",
2514
+ required: true,
2515
+ schema: {
2516
+ type: "string",
2517
+ },
2518
+ "x-displayname": "Name",
2519
+ "x-ves-example": "Name",
2520
+ },
2521
+ {
2522
+ description: "Namespace\nNamespace in which the configuration object is present.",
2523
+ in: "path",
2524
+ name: "namespace",
2525
+ required: true,
2526
+ schema: {
2527
+ type: "string",
2528
+ },
2529
+ "x-displayname": "Namespace",
2530
+ "x-ves-example": "Ns1",
2531
+ },
2532
+ ],
2533
+ queryParameters: [],
2534
+ requestBodySchema: {
2535
+ $ref: "#/components/schemas/protocol_inspectionDeleteRequest",
2536
+ },
2537
+ responseSchema: {},
2538
+ requiredParams: ["body", "name", "namespace"],
2539
+ operationId: "ves.io.schema.protocol_inspection.API.Delete",
2540
+ tags: ["Other"],
2541
+ sourceFile: "domains/waf.json",
2542
+ displayName: null,
2543
+ dangerLevel: "high",
2544
+ sideEffects: {
2545
+ deletes: ["protocol-inspection", "contained_resources"],
2546
+ },
2547
+ requiredFields: ["path.name", "path.namespace"],
2548
+ confirmationRequired: true,
2549
+ parameterExamples: {
2550
+ name: "Name",
2551
+ namespace: "Ns1",
2552
+ },
2553
+ validationRules: {},
2554
+ operationMetadata: {
2555
+ common_errors: [
2556
+ {
2557
+ code: 401,
2558
+ message: "Authentication required",
2559
+ solution: "Provide valid API credentials",
2560
+ },
2561
+ {
2562
+ code: 403,
2563
+ message: "Permission denied",
2564
+ solution: "Check access permissions for this operation",
2565
+ },
2566
+ {
2567
+ code: 404,
2568
+ message: "Resource not found",
2569
+ solution: "Verify resource name, namespace, and path",
2570
+ },
2571
+ {
2572
+ code: 409,
2573
+ message: "Resource already exists",
2574
+ solution: "Use different name or update existing resource",
2575
+ },
2576
+ {
2577
+ code: 429,
2578
+ message: "Rate limit exceeded",
2579
+ solution: "Wait before retrying the operation",
2580
+ },
2581
+ {
2582
+ code: 500,
2583
+ message: "Server error",
2584
+ solution: "Retry operation or contact support",
2585
+ },
2586
+ ],
2587
+ conditions: {
2588
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
2589
+ prerequisites: ["Active namespace"],
2590
+ },
2591
+ confirmation_required: true,
2592
+ danger_level: "high",
2593
+ field_docs: {},
2594
+ optional_fields: [],
2595
+ performance_impact: {
2596
+ latency: "high",
2597
+ resource_usage: "moderate",
2598
+ },
2599
+ purpose: "Delete protocol-inspection",
2600
+ required_fields: ["path.name", "path.namespace"],
2601
+ side_effects: {
2602
+ deletes: ["protocol-inspection", "contained_resources"],
2603
+ },
2604
+ },
2605
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/protocol_inspections" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @example.json',
2606
+ dependencies: [
2607
+ {
2608
+ domain: "",
2609
+ fieldPath: "",
2610
+ inline: false,
2611
+ required: false,
2612
+ resourceType: "protocol-inspection",
2613
+ },
2614
+ ],
2615
+ oneOfGroups: [],
2616
+ subscriptionRequirements: [
2617
+ {
2618
+ addonService: "f5xc_waap_standard",
2619
+ displayName: "F5XC WAAP Standard",
2620
+ required: false,
2621
+ tier: "standard",
2622
+ },
2623
+ {
2624
+ addonService: "f5xc_waap_advanced",
2625
+ displayName: "F5XC WAAP Advanced",
2626
+ required: false,
2627
+ tier: "advanced",
2628
+ },
2629
+ ],
2630
+ },
2631
+ {
2632
+ toolName: "f5xc-api-waf-protocol-inspection-get",
2633
+ method: "GET",
2634
+ path: "/api/config/namespaces/{namespace}/protocol_inspections/{name}",
2635
+ operation: "get",
2636
+ domain: "waf",
2637
+ resource: "protocol-inspection",
2638
+ summary: "GET Protocol Inspection.",
2639
+ description: "GET Protocol Inspection details.",
2640
+ pathParameters: [
2641
+ {
2642
+ description: "Name\nThe name of the configuration object to be fetched.",
2643
+ in: "path",
2644
+ name: "name",
2645
+ required: true,
2646
+ schema: {
2647
+ type: "string",
2648
+ },
2649
+ "x-displayname": "Name",
2650
+ "x-ves-example": "Name",
2651
+ },
2652
+ {
2653
+ description: "Namespace\nThe namespace in which the configuration object is present.",
2654
+ in: "path",
2655
+ name: "namespace",
2656
+ required: true,
2657
+ schema: {
2658
+ type: "string",
2659
+ },
2660
+ "x-displayname": "Namespace",
2661
+ "x-ves-example": "Ns1",
2662
+ },
2663
+ ],
2664
+ queryParameters: [
2665
+ {
2666
+ description: "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referrred by this object.",
2667
+ in: "query",
2668
+ name: "response_format",
2669
+ required: false,
2670
+ schema: {
2671
+ default: "GET_RSP_FORMAT_DEFAULT",
2672
+ enum: [
2673
+ "GET_RSP_FORMAT_DEFAULT",
2674
+ "GET_RSP_FORMAT_FOR_CREATE",
2675
+ "GET_RSP_FORMAT_FOR_REPLACE",
2676
+ "GET_RSP_FORMAT_STATUS",
2677
+ "GET_RSP_FORMAT_READ",
2678
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
2679
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
2680
+ ],
2681
+ type: "string",
2682
+ },
2683
+ "x-displayname": "Broken Referred Objects.",
2684
+ },
2685
+ ],
2686
+ requestBodySchema: null,
2687
+ responseSchema: {
2688
+ $ref: "#/components/schemas/protocol_inspectionGetResponse",
2689
+ },
2690
+ requiredParams: ["name", "namespace"],
2691
+ operationId: "ves.io.schema.protocol_inspection.API.Get",
2692
+ tags: ["Other"],
2693
+ sourceFile: "domains/waf.json",
2694
+ displayName: null,
2695
+ dangerLevel: "low",
2696
+ sideEffects: null,
2697
+ requiredFields: ["path.name", "path.namespace"],
2698
+ confirmationRequired: false,
2699
+ parameterExamples: {
2700
+ name: "Name",
2701
+ namespace: "Ns1",
2702
+ },
2703
+ validationRules: {},
2704
+ operationMetadata: {
2705
+ common_errors: [
2706
+ {
2707
+ code: 401,
2708
+ message: "Authentication required",
2709
+ solution: "Provide valid API credentials",
2710
+ },
2711
+ {
2712
+ code: 403,
2713
+ message: "Permission denied",
2714
+ solution: "Check access permissions for this operation",
2715
+ },
2716
+ {
2717
+ code: 404,
2718
+ message: "Resource not found",
2719
+ solution: "Verify resource name, namespace, and path",
2720
+ },
2721
+ {
2722
+ code: 409,
2723
+ message: "Resource already exists",
2724
+ solution: "Use different name or update existing resource",
2725
+ },
2726
+ {
2727
+ code: 429,
2728
+ message: "Rate limit exceeded",
2729
+ solution: "Wait before retrying the operation",
2730
+ },
2731
+ {
2732
+ code: 500,
2733
+ message: "Server error",
2734
+ solution: "Retry operation or contact support",
2735
+ },
2736
+ ],
2737
+ conditions: {
2738
+ postconditions: [],
2739
+ prerequisites: ["Active namespace"],
2740
+ },
2741
+ confirmation_required: false,
2742
+ danger_level: "low",
2743
+ field_docs: {},
2744
+ optional_fields: [],
2745
+ performance_impact: {
2746
+ latency: "low",
2747
+ resource_usage: "low",
2748
+ },
2749
+ purpose: "Retrieve specific protocol-inspection",
2750
+ required_fields: ["path.name", "path.namespace"],
2751
+ side_effects: {},
2752
+ },
2753
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/protocol_inspections" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @example.json',
2754
+ dependencies: [],
2755
+ oneOfGroups: [],
2756
+ subscriptionRequirements: [
2757
+ {
2758
+ addonService: "f5xc_waap_standard",
2759
+ displayName: "F5XC WAAP Standard",
2760
+ required: false,
2761
+ tier: "standard",
2762
+ },
2763
+ {
2764
+ addonService: "f5xc_waap_advanced",
2765
+ displayName: "F5XC WAAP Advanced",
2766
+ required: false,
2767
+ tier: "advanced",
2768
+ },
2769
+ ],
2770
+ },
2771
+ {
2772
+ toolName: "f5xc-api-waf-protocol-inspection-list",
2773
+ method: "GET",
2774
+ path: "/api/config/namespaces/{namespace}/protocol_inspections",
2775
+ operation: "list",
2776
+ domain: "waf",
2777
+ resource: "protocol-inspection",
2778
+ summary: "List Configure Protocol Inspection.",
2779
+ description: "List the set of protocol_inspection in a namespace.",
2780
+ pathParameters: [
2781
+ {
2782
+ description: "Namespace\nNamespace to scope the listing of protocol_inspection.",
2783
+ in: "path",
2784
+ name: "namespace",
2785
+ required: true,
2786
+ schema: {
2787
+ type: "string",
2788
+ },
2789
+ "x-displayname": "Namespace",
2790
+ "x-ves-example": "Ns1",
2791
+ },
2792
+ ],
2793
+ queryParameters: [
2794
+ {
2795
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
2796
+ in: "query",
2797
+ name: "label_filter",
2798
+ required: false,
2799
+ schema: {
2800
+ type: "string",
2801
+ },
2802
+ "x-displayname": "Label Filter.",
2803
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
2804
+ },
2805
+ {
2806
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
2807
+ in: "query",
2808
+ name: "report_fields",
2809
+ required: false,
2810
+ schema: {
2811
+ items: {
2812
+ type: "string",
2813
+ },
2814
+ type: "array",
2815
+ },
2816
+ "x-displayname": "Report Fields.",
2817
+ },
2818
+ {
2819
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
2820
+ in: "query",
2821
+ name: "report_status_fields",
2822
+ required: false,
2823
+ schema: {
2824
+ items: {
2825
+ type: "string",
2826
+ },
2827
+ type: "array",
2828
+ },
2829
+ "x-displayname": "Report Status Fields.",
2830
+ },
2831
+ ],
2832
+ requestBodySchema: null,
2833
+ responseSchema: {
2834
+ $ref: "#/components/schemas/protocol_inspectionListResponse",
2835
+ },
2836
+ requiredParams: ["namespace"],
2837
+ operationId: "ves.io.schema.protocol_inspection.API.List",
2838
+ tags: ["Other"],
2839
+ sourceFile: "domains/waf.json",
2840
+ displayName: null,
2841
+ dangerLevel: "low",
2842
+ sideEffects: null,
2843
+ requiredFields: ["path.namespace"],
2844
+ confirmationRequired: false,
2845
+ parameterExamples: {
2846
+ label_filter: "Env in (staging, testing), tier in (web, db)",
2847
+ namespace: "Ns1",
2848
+ },
2849
+ validationRules: {},
2850
+ operationMetadata: {
2851
+ common_errors: [
2852
+ {
2853
+ code: 401,
2854
+ message: "Authentication required",
2855
+ solution: "Provide valid API credentials",
2856
+ },
2857
+ {
2858
+ code: 403,
2859
+ message: "Permission denied",
2860
+ solution: "Check access permissions for this operation",
2861
+ },
2862
+ {
2863
+ code: 404,
2864
+ message: "Resource not found",
2865
+ solution: "Verify resource name, namespace, and path",
2866
+ },
2867
+ {
2868
+ code: 409,
2869
+ message: "Resource already exists",
2870
+ solution: "Use different name or update existing resource",
2871
+ },
2872
+ {
2873
+ code: 429,
2874
+ message: "Rate limit exceeded",
2875
+ solution: "Wait before retrying the operation",
2876
+ },
2877
+ {
2878
+ code: 500,
2879
+ message: "Server error",
2880
+ solution: "Retry operation or contact support",
2881
+ },
2882
+ ],
2883
+ conditions: {
2884
+ postconditions: [],
2885
+ prerequisites: ["Active namespace"],
2886
+ },
2887
+ confirmation_required: false,
2888
+ danger_level: "low",
2889
+ field_docs: {},
2890
+ optional_fields: [],
2891
+ performance_impact: {
2892
+ latency: "moderate",
2893
+ resource_usage: "moderate",
2894
+ },
2895
+ purpose: "List all protocol-inspections",
2896
+ required_fields: ["path.namespace"],
2897
+ side_effects: {},
2898
+ },
2899
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/protocol_inspections" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @example.json',
2900
+ dependencies: [],
2901
+ oneOfGroups: [],
2902
+ subscriptionRequirements: [
2903
+ {
2904
+ addonService: "f5xc_waap_standard",
2905
+ displayName: "F5XC WAAP Standard",
2906
+ required: false,
2907
+ tier: "standard",
2908
+ },
2909
+ {
2910
+ addonService: "f5xc_waap_advanced",
2911
+ displayName: "F5XC WAAP Advanced",
2912
+ required: false,
2913
+ tier: "advanced",
2914
+ },
2915
+ ],
2916
+ },
2917
+ {
2918
+ toolName: "f5xc-api-waf-protocol-inspection-update",
2919
+ method: "PUT",
2920
+ path: "/api/config/namespaces/{metadata.namespace}/protocol_inspections/{metadata.name}",
2921
+ operation: "update",
2922
+ domain: "waf",
2923
+ resource: "protocol-inspection",
2924
+ summary: "Replace Protocol Inspection.",
2925
+ description: "Replace Protocol Inspection specification in a given namespace.",
2926
+ pathParameters: [
2927
+ {
2928
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
2929
+ in: "path",
2930
+ name: "metadata.name",
2931
+ required: true,
2932
+ schema: {
2933
+ type: "string",
2934
+ },
2935
+ "x-displayname": "Name",
2936
+ "x-ves-example": "Example-corp-web.",
2937
+ },
2938
+ {
2939
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
2940
+ in: "path",
2941
+ name: "metadata.namespace",
2942
+ required: true,
2943
+ schema: {
2944
+ type: "string",
2945
+ },
2946
+ "x-displayname": "Namespace",
2947
+ "x-ves-example": "Staging",
2948
+ },
2949
+ ],
2950
+ queryParameters: [],
2951
+ requestBodySchema: {
2952
+ $ref: "#/components/schemas/protocol_inspectionReplaceRequest",
2953
+ },
2954
+ responseSchema: {
2955
+ $ref: "#/components/schemas/protocol_inspectionReplaceResponse",
2956
+ },
2957
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
2958
+ operationId: "ves.io.schema.protocol_inspection.API.Replace",
2959
+ tags: ["Other"],
2960
+ sourceFile: "domains/waf.json",
2961
+ displayName: null,
2962
+ dangerLevel: "medium",
2963
+ sideEffects: {
2964
+ modifies: ["protocol-inspection"],
2965
+ },
2966
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
2967
+ confirmationRequired: false,
2968
+ parameterExamples: {
2969
+ "metadata.name": "Example-corp-web.",
2970
+ "metadata.namespace": "Staging",
2971
+ },
2972
+ validationRules: {},
2973
+ operationMetadata: {
2974
+ common_errors: [
2975
+ {
2976
+ code: 401,
2977
+ message: "Authentication required",
2978
+ solution: "Provide valid API credentials",
2979
+ },
2980
+ {
2981
+ code: 403,
2982
+ message: "Permission denied",
2983
+ solution: "Check access permissions for this operation",
2984
+ },
2985
+ {
2986
+ code: 404,
2987
+ message: "Resource not found",
2988
+ solution: "Verify resource name, namespace, and path",
2989
+ },
2990
+ {
2991
+ code: 409,
2992
+ message: "Resource already exists",
2993
+ solution: "Use different name or update existing resource",
2994
+ },
2995
+ {
2996
+ code: 429,
2997
+ message: "Rate limit exceeded",
2998
+ solution: "Wait before retrying the operation",
2999
+ },
3000
+ {
3001
+ code: 500,
3002
+ message: "Server error",
3003
+ solution: "Retry operation or contact support",
3004
+ },
3005
+ ],
3006
+ conditions: {
3007
+ postconditions: ["Resource updated with new values"],
3008
+ prerequisites: ["Active namespace"],
3009
+ },
3010
+ confirmation_required: false,
3011
+ danger_level: "medium",
3012
+ field_docs: {},
3013
+ optional_fields: [],
3014
+ performance_impact: {
3015
+ latency: "low",
3016
+ resource_usage: "low",
3017
+ },
3018
+ purpose: "Replace existing protocol-inspection",
3019
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
3020
+ side_effects: {
3021
+ modifies: ["protocol-inspection"],
3022
+ },
3023
+ },
3024
+ curlExample: 'curl -X POST "$F5XC_API_URL/api/config/namespaces/default/protocol_inspections" \\\n -H "Authorization: APIToken $F5XC_API_TOKEN" \\\n -H "Content-Type: application/json" \\\n -d @example.json',
3025
+ dependencies: [
3026
+ {
3027
+ domain: "",
3028
+ fieldPath: "",
3029
+ inline: false,
3030
+ required: false,
3031
+ resourceType: "protocol-inspection",
3032
+ },
3033
+ {
3034
+ domain: "",
3035
+ fieldPath: "metadata",
3036
+ inline: false,
3037
+ required: false,
3038
+ resourceType: "schema-object-replace-meta",
3039
+ },
3040
+ {
3041
+ domain: "",
3042
+ fieldPath: "spec",
3043
+ inline: false,
3044
+ required: false,
3045
+ resourceType: "protocol-inspection-replace",
3046
+ },
3047
+ ],
3048
+ oneOfGroups: [],
3049
+ subscriptionRequirements: [
3050
+ {
3051
+ addonService: "f5xc_waap_standard",
3052
+ displayName: "F5XC WAAP Standard",
3053
+ required: false,
3054
+ tier: "standard",
3055
+ },
3056
+ {
3057
+ addonService: "f5xc_waap_advanced",
3058
+ displayName: "F5XC WAAP Advanced",
3059
+ required: false,
3060
+ tier: "advanced",
3061
+ },
3062
+ ],
3063
+ },
3064
+ {
3065
+ toolName: "f5xc-api-waf-released-signature-list",
3066
+ method: "GET",
3067
+ path: "/api/config/namespaces/{namespace}/virtual_hosts/{vh_name}/released_signatures",
3068
+ operation: "list",
3069
+ domain: "waf",
3070
+ resource: "released-signature",
3071
+ summary: "Released Signatures.",
3072
+ description: "API to GET Released Signatures.",
3073
+ pathParameters: [
3074
+ {
3075
+ description: "Namespace\nFetch WAF signatures changelog for the given namespace.",
3076
+ in: "path",
3077
+ name: "namespace",
3078
+ required: true,
3079
+ schema: {
3080
+ type: "string",
3081
+ },
3082
+ "x-displayname": "Namespace",
3083
+ "x-ves-example": "Shared",
3084
+ },
3085
+ {
3086
+ description: "Vh_name\nVirtual Host for current request.",
3087
+ in: "path",
3088
+ name: "vh_name",
3089
+ required: true,
3090
+ schema: {
3091
+ type: "string",
3092
+ },
3093
+ "x-displayname": "Virtual Host Name.",
3094
+ "x-ves-example": "Blogging-app.",
3095
+ },
3096
+ ],
3097
+ queryParameters: [],
3098
+ requestBodySchema: null,
3099
+ responseSchema: {
3100
+ $ref: "#/components/schemas/waf_signatures_changelogReleasedSignaturesRsp",
3101
+ },
3102
+ requiredParams: ["namespace", "vh_name"],
3103
+ operationId: "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetReleasedSignatures",
3104
+ tags: ["Other"],
3105
+ sourceFile: "domains/waf.json",
3106
+ displayName: null,
3107
+ dangerLevel: "low",
3108
+ sideEffects: null,
3109
+ requiredFields: ["path.namespace", "path.vh_name"],
3110
+ confirmationRequired: false,
3111
+ parameterExamples: {
3112
+ namespace: "Shared",
3113
+ vh_name: "Blogging-app.",
3114
+ },
3115
+ validationRules: {},
3116
+ operationMetadata: {
3117
+ common_errors: [
3118
+ {
3119
+ code: 401,
3120
+ message: "Authentication required",
3121
+ solution: "Provide valid API credentials",
3122
+ },
3123
+ {
3124
+ code: 403,
3125
+ message: "Permission denied",
3126
+ solution: "Check access permissions for this operation",
3127
+ },
3128
+ {
3129
+ code: 404,
3130
+ message: "Resource not found",
3131
+ solution: "Verify resource name, namespace, and path",
3132
+ },
3133
+ {
3134
+ code: 409,
3135
+ message: "Resource already exists",
3136
+ solution: "Use different name or update existing resource",
3137
+ },
3138
+ {
3139
+ code: 429,
3140
+ message: "Rate limit exceeded",
3141
+ solution: "Wait before retrying the operation",
3142
+ },
3143
+ {
3144
+ code: 500,
3145
+ message: "Server error",
3146
+ solution: "Retry operation or contact support",
3147
+ },
3148
+ ],
3149
+ conditions: {
3150
+ postconditions: [],
3151
+ prerequisites: ["Active namespace"],
3152
+ },
3153
+ confirmation_required: false,
3154
+ danger_level: "low",
3155
+ field_docs: {},
3156
+ optional_fields: [],
3157
+ performance_impact: {
3158
+ latency: "moderate",
3159
+ resource_usage: "moderate",
3160
+ },
3161
+ purpose: "List all released-signatures",
3162
+ required_fields: ["path.namespace", "path.vh_name"],
3163
+ side_effects: {},
3164
+ },
3165
+ curlExample: null,
3166
+ dependencies: [],
3167
+ oneOfGroups: [],
3168
+ subscriptionRequirements: [
3169
+ {
3170
+ addonService: "f5xc_waap_standard",
3171
+ displayName: "F5XC WAAP Standard",
3172
+ required: false,
3173
+ tier: "standard",
3174
+ },
3175
+ {
3176
+ addonService: "f5xc_waap_advanced",
3177
+ displayName: "F5XC WAAP Advanced",
3178
+ required: false,
3179
+ tier: "advanced",
3180
+ },
3181
+ ],
3182
+ },
3183
+ {
3184
+ toolName: "f5xc-api-waf-rule-hit-create",
3185
+ method: "POST",
3186
+ path: "/api/data/namespaces/{namespace}/wafs/metrics/client/rule_hits",
3187
+ operation: "create",
3188
+ domain: "waf",
3189
+ resource: "rule-hit",
3190
+ summary: "Client Rule Hits Metrics.",
3191
+ description: "GET number of rule hits per client for a given namespace.\nThe rule hits counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG.",
3192
+ pathParameters: [
3193
+ {
3194
+ description: "Namespace\n\nnamespace is used to scope the WAF rule hits for the given namespace.",
3195
+ in: "path",
3196
+ name: "namespace",
3197
+ required: true,
3198
+ schema: {
3199
+ type: "string",
3200
+ },
3201
+ "x-displayname": "Namespace",
3202
+ "x-ves-example": "Bloggin-app-namespace-1.",
3203
+ },
3204
+ ],
3205
+ queryParameters: [],
3206
+ requestBodySchema: null,
3207
+ responseSchema: {
3208
+ $ref: "#/components/schemas/wafRuleHitsCountResponse",
3209
+ },
3210
+ requiredParams: ["namespace"],
3211
+ operationId: "ves.io.schema.waf.WAFMonitoringAPI.ClientRuleHitsMetrics",
3212
+ tags: ["Other"],
3213
+ sourceFile: "domains/waf.json",
3214
+ displayName: null,
3215
+ dangerLevel: "medium",
3216
+ sideEffects: {
3217
+ creates: ["rule-hit"],
3218
+ },
3219
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
3220
+ confirmationRequired: false,
3221
+ parameterExamples: {
3222
+ namespace: "Bloggin-app-namespace-1.",
3223
+ },
3224
+ validationRules: {},
3225
+ operationMetadata: {
3226
+ common_errors: [
3227
+ {
3228
+ code: 401,
3229
+ message: "Authentication required",
3230
+ solution: "Provide valid API credentials",
3231
+ },
3232
+ {
3233
+ code: 403,
3234
+ message: "Permission denied",
3235
+ solution: "Check access permissions for this operation",
3236
+ },
3237
+ {
3238
+ code: 404,
3239
+ message: "Resource not found",
3240
+ solution: "Verify resource name, namespace, and path",
3241
+ },
3242
+ {
3243
+ code: 409,
3244
+ message: "Resource already exists",
3245
+ solution: "Use different name or update existing resource",
3246
+ },
3247
+ {
3248
+ code: 429,
3249
+ message: "Rate limit exceeded",
3250
+ solution: "Wait before retrying the operation",
3251
+ },
3252
+ {
3253
+ code: 500,
3254
+ message: "Server error",
3255
+ solution: "Retry operation or contact support",
3256
+ },
3257
+ ],
3258
+ conditions: {
3259
+ postconditions: ["Rule-hit resource created", "Resource assigned unique identifier"],
3260
+ prerequisites: ["Active namespace", "Policy parameters defined"],
3261
+ },
3262
+ confirmation_required: false,
3263
+ danger_level: "medium",
3264
+ field_docs: {},
3265
+ optional_fields: [],
3266
+ performance_impact: {
3267
+ latency: "low",
3268
+ resource_usage: "low",
3269
+ },
3270
+ purpose: "Create new rule-hit",
3271
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
3272
+ side_effects: {
3273
+ creates: ["rule-hit"],
3274
+ },
3275
+ },
3276
+ curlExample: null,
3277
+ dependencies: [],
3278
+ oneOfGroups: [],
3279
+ subscriptionRequirements: [
3280
+ {
3281
+ addonService: "f5xc_waap_standard",
3282
+ displayName: "F5XC WAAP Standard",
3283
+ required: false,
3284
+ tier: "standard",
3285
+ },
3286
+ {
3287
+ addonService: "f5xc_waap_advanced",
3288
+ displayName: "F5XC WAAP Advanced",
3289
+ required: false,
3290
+ tier: "advanced",
3291
+ },
3292
+ ],
3293
+ },
3294
+ {
3295
+ toolName: "f5xc-api-waf-scroll-create",
3296
+ method: "POST",
3297
+ path: "/api/data/namespaces/{namespace}/app_security/events/scroll",
3298
+ operation: "create",
3299
+ domain: "waf",
3300
+ resource: "scroll",
3301
+ summary: "Security Event Scroll Query.",
3302
+ description: 'Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityEventScrollRequest. Use the scroll_id returned in the SecurityEventResponse to fetch the next batch of security events\nand one can continue this process till the scroll_id returned is "" which indicates no more events to scroll.',
3303
+ pathParameters: [
3304
+ {
3305
+ description: "Namespace\nfetch the WAF security events scoped by namespace.",
3306
+ in: "path",
3307
+ name: "namespace",
3308
+ required: true,
3309
+ schema: {
3310
+ type: "string",
3311
+ },
3312
+ "x-displayname": "Namespace",
3313
+ "x-ves-example": "Bloggin-app-namespace-1.",
3314
+ },
3315
+ ],
3316
+ queryParameters: [],
3317
+ requestBodySchema: {
3318
+ $ref: "#/components/schemas/app_securitySecurityEventsScrollRequest",
3319
+ },
3320
+ responseSchema: {
3321
+ $ref: "#/components/schemas/app_securitySecurityEventsResponse",
3322
+ },
3323
+ requiredParams: ["body", "namespace"],
3324
+ operationId: "docs_cloud_f5_com_0020_public_ves_io_schema_app_security_ves_swagger_ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery",
3325
+ tags: ["Other"],
3326
+ sourceFile: "domains/waf.json",
3327
+ displayName: null,
3328
+ dangerLevel: "medium",
3329
+ sideEffects: {
3330
+ creates: ["scroll"],
3331
+ },
3332
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
3333
+ confirmationRequired: false,
3334
+ parameterExamples: {
3335
+ namespace: "Bloggin-app-namespace-1.",
3336
+ },
3337
+ validationRules: {},
3338
+ operationMetadata: {
3339
+ common_errors: [
3340
+ {
3341
+ code: 401,
3342
+ message: "Authentication required",
3343
+ solution: "Provide valid API credentials",
3344
+ },
3345
+ {
3346
+ code: 403,
3347
+ message: "Permission denied",
3348
+ solution: "Check access permissions for this operation",
3349
+ },
3350
+ {
3351
+ code: 404,
3352
+ message: "Resource not found",
3353
+ solution: "Verify resource name, namespace, and path",
3354
+ },
3355
+ {
3356
+ code: 409,
3357
+ message: "Resource already exists",
3358
+ solution: "Use different name or update existing resource",
3359
+ },
3360
+ {
3361
+ code: 429,
3362
+ message: "Rate limit exceeded",
3363
+ solution: "Wait before retrying the operation",
3364
+ },
3365
+ {
3366
+ code: 500,
3367
+ message: "Server error",
3368
+ solution: "Retry operation or contact support",
3369
+ },
3370
+ ],
3371
+ conditions: {
3372
+ postconditions: ["Scroll resource created", "Resource assigned unique identifier"],
3373
+ prerequisites: ["Active namespace"],
3374
+ },
3375
+ confirmation_required: false,
3376
+ danger_level: "medium",
3377
+ field_docs: {},
3378
+ optional_fields: [],
3379
+ performance_impact: {
3380
+ latency: "low",
3381
+ resource_usage: "low",
3382
+ },
3383
+ purpose: "Create new scroll",
3384
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
3385
+ side_effects: {
3386
+ creates: ["scroll"],
3387
+ },
3388
+ },
3389
+ curlExample: null,
3390
+ dependencies: [],
3391
+ oneOfGroups: [],
3392
+ subscriptionRequirements: [
3393
+ {
3394
+ addonService: "f5xc_waap_standard",
3395
+ displayName: "F5XC WAAP Standard",
3396
+ required: false,
3397
+ tier: "standard",
3398
+ },
3399
+ {
3400
+ addonService: "f5xc_waap_advanced",
3401
+ displayName: "F5XC WAAP Advanced",
3402
+ required: false,
3403
+ tier: "advanced",
3404
+ },
3405
+ ],
3406
+ },
3407
+ {
3408
+ toolName: "f5xc-api-waf-scroll-list",
3409
+ method: "GET",
3410
+ path: "/api/data/namespaces/{namespace}/app_security/events/scroll",
3411
+ operation: "list",
3412
+ domain: "waf",
3413
+ resource: "scroll",
3414
+ summary: "Security Event Scroll Query.",
3415
+ description: 'Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityEventScrollRequest. Use the scroll_id returned in the SecurityEventResponse to fetch the next batch of security events\nand one can continue this process till the scroll_id returned is "" which indicates no more events to scroll.',
3416
+ pathParameters: [
3417
+ {
3418
+ description: "Namespace\nfetch the WAF security events scoped by namespace.",
3419
+ in: "path",
3420
+ name: "namespace",
3421
+ required: true,
3422
+ schema: {
3423
+ type: "string",
3424
+ },
3425
+ "x-displayname": "Namespace",
3426
+ "x-ves-example": "Bloggin-app-namespace-1.",
3427
+ },
3428
+ ],
3429
+ queryParameters: [
3430
+ {
3431
+ description: "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
3432
+ in: "query",
3433
+ name: "scroll_id",
3434
+ required: false,
3435
+ schema: {
3436
+ type: "string",
3437
+ },
3438
+ "x-displayname": "Scroll ID",
3439
+ "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
3440
+ },
3441
+ ],
3442
+ requestBodySchema: null,
3443
+ responseSchema: {
3444
+ $ref: "#/components/schemas/app_securitySecurityEventsResponse",
3445
+ },
3446
+ requiredParams: ["namespace"],
3447
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery",
3448
+ tags: ["Other"],
3449
+ sourceFile: "domains/waf.json",
3450
+ displayName: null,
3451
+ dangerLevel: "low",
3452
+ sideEffects: null,
3453
+ requiredFields: ["path.namespace"],
3454
+ confirmationRequired: false,
3455
+ parameterExamples: {
3456
+ namespace: "Bloggin-app-namespace-1.",
3457
+ scroll_id: "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
3458
+ },
3459
+ validationRules: {},
3460
+ operationMetadata: {
3461
+ common_errors: [
3462
+ {
3463
+ code: 401,
3464
+ message: "Authentication required",
3465
+ solution: "Provide valid API credentials",
3466
+ },
3467
+ {
3468
+ code: 403,
3469
+ message: "Permission denied",
3470
+ solution: "Check access permissions for this operation",
3471
+ },
3472
+ {
3473
+ code: 404,
3474
+ message: "Resource not found",
3475
+ solution: "Verify resource name, namespace, and path",
3476
+ },
3477
+ {
3478
+ code: 409,
3479
+ message: "Resource already exists",
3480
+ solution: "Use different name or update existing resource",
3481
+ },
3482
+ {
3483
+ code: 429,
3484
+ message: "Rate limit exceeded",
3485
+ solution: "Wait before retrying the operation",
3486
+ },
3487
+ {
3488
+ code: 500,
3489
+ message: "Server error",
3490
+ solution: "Retry operation or contact support",
3491
+ },
3492
+ ],
3493
+ conditions: {
3494
+ postconditions: [],
3495
+ prerequisites: ["Active namespace"],
3496
+ },
3497
+ confirmation_required: false,
3498
+ danger_level: "low",
3499
+ field_docs: {},
3500
+ optional_fields: [],
3501
+ performance_impact: {
3502
+ latency: "moderate",
3503
+ resource_usage: "moderate",
3504
+ },
3505
+ purpose: "List all scrolls",
3506
+ required_fields: ["path.namespace"],
3507
+ side_effects: {},
3508
+ },
3509
+ curlExample: null,
3510
+ dependencies: [],
3511
+ oneOfGroups: [],
3512
+ subscriptionRequirements: [
3513
+ {
3514
+ addonService: "f5xc_waap_standard",
3515
+ displayName: "F5XC WAAP Standard",
3516
+ required: false,
3517
+ tier: "standard",
3518
+ },
3519
+ {
3520
+ addonService: "f5xc_waap_advanced",
3521
+ displayName: "F5XC WAAP Advanced",
3522
+ required: false,
3523
+ tier: "advanced",
3524
+ },
3525
+ ],
3526
+ },
3527
+ {
3528
+ toolName: "f5xc-api-waf-security-event-create",
3529
+ method: "POST",
3530
+ path: "/api/data/namespaces/{namespace}/wafs/metrics/client/security_events",
3531
+ operation: "create",
3532
+ domain: "waf",
3533
+ resource: "security-event",
3534
+ summary: "Client Security Events Metrics.",
3535
+ description: "GET number of security events per client for a given namespace.\nThe security events counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.",
3536
+ pathParameters: [
3537
+ {
3538
+ description: "Namespace\nnamespace is used to scope the WAF security events for the given namespace.",
3539
+ in: "path",
3540
+ name: "namespace",
3541
+ required: true,
3542
+ schema: {
3543
+ type: "string",
3544
+ },
3545
+ "x-displayname": "Namespace",
3546
+ "x-ves-example": "Bloggin-app-namespace-1.",
3547
+ },
3548
+ ],
3549
+ queryParameters: [],
3550
+ requestBodySchema: null,
3551
+ responseSchema: {
3552
+ $ref: "#/components/schemas/wafSecurityEventsCountResponse",
3553
+ },
3554
+ requiredParams: ["namespace"],
3555
+ operationId: "ves.io.schema.waf.WAFMonitoringAPI.ClientSecurityEventsMetrics",
3556
+ tags: ["Other"],
3557
+ sourceFile: "domains/waf.json",
3558
+ displayName: null,
3559
+ dangerLevel: "medium",
3560
+ sideEffects: {
3561
+ creates: ["security-event"],
3562
+ },
3563
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
3564
+ confirmationRequired: false,
3565
+ parameterExamples: {
3566
+ namespace: "Bloggin-app-namespace-1.",
3567
+ },
3568
+ validationRules: {},
3569
+ operationMetadata: {
3570
+ common_errors: [
3571
+ {
3572
+ code: 401,
3573
+ message: "Authentication required",
3574
+ solution: "Provide valid API credentials",
3575
+ },
3576
+ {
3577
+ code: 403,
3578
+ message: "Permission denied",
3579
+ solution: "Check access permissions for this operation",
3580
+ },
3581
+ {
3582
+ code: 404,
3583
+ message: "Resource not found",
3584
+ solution: "Verify resource name, namespace, and path",
3585
+ },
3586
+ {
3587
+ code: 409,
3588
+ message: "Resource already exists",
3589
+ solution: "Use different name or update existing resource",
3590
+ },
3591
+ {
3592
+ code: 429,
3593
+ message: "Rate limit exceeded",
3594
+ solution: "Wait before retrying the operation",
3595
+ },
3596
+ {
3597
+ code: 500,
3598
+ message: "Server error",
3599
+ solution: "Retry operation or contact support",
3600
+ },
3601
+ ],
3602
+ conditions: {
3603
+ postconditions: ["Security-event resource created", "Resource assigned unique identifier"],
3604
+ prerequisites: ["Active namespace"],
3605
+ },
3606
+ confirmation_required: false,
3607
+ danger_level: "medium",
3608
+ field_docs: {},
3609
+ optional_fields: [],
3610
+ performance_impact: {
3611
+ latency: "low",
3612
+ resource_usage: "low",
3613
+ },
3614
+ purpose: "Create new security-event",
3615
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
3616
+ side_effects: {
3617
+ creates: ["security-event"],
3618
+ },
3619
+ },
3620
+ curlExample: null,
3621
+ dependencies: [],
3622
+ oneOfGroups: [],
3623
+ subscriptionRequirements: [
3624
+ {
3625
+ addonService: "f5xc_waap_standard",
3626
+ displayName: "F5XC WAAP Standard",
3627
+ required: false,
3628
+ tier: "standard",
3629
+ },
3630
+ {
3631
+ addonService: "f5xc_waap_advanced",
3632
+ displayName: "F5XC WAAP Advanced",
3633
+ required: false,
3634
+ tier: "advanced",
3635
+ },
3636
+ ],
3637
+ },
3638
+ {
3639
+ toolName: "f5xc-api-waf-staged-signature-create",
3640
+ method: "POST",
3641
+ path: "/api/ml/data/namespaces/{namespace}/virtual_hosts/{vh_name}/staged_signatures",
3642
+ operation: "create",
3643
+ domain: "waf",
3644
+ resource: "staged-signature",
3645
+ summary: "Staged Signatures.",
3646
+ description: "API to GET Staged Signatures.",
3647
+ pathParameters: [
3648
+ {
3649
+ description: "Namespace\nFetch staged signatures for the given namespace.",
3650
+ in: "path",
3651
+ name: "namespace",
3652
+ required: true,
3653
+ schema: {
3654
+ type: "string",
3655
+ },
3656
+ "x-displayname": "Namespace",
3657
+ "x-ves-example": "Shared",
3658
+ },
3659
+ {
3660
+ description: "Vh_name\nVirtual Host for current request.",
3661
+ in: "path",
3662
+ name: "vh_name",
3663
+ required: true,
3664
+ schema: {
3665
+ type: "string",
3666
+ },
3667
+ "x-displayname": "Virtual Host Name.",
3668
+ "x-ves-example": "Blogging-app.",
3669
+ },
3670
+ ],
3671
+ queryParameters: [],
3672
+ requestBodySchema: {
3673
+ $ref: "#/components/schemas/waf_signatures_changelogStagedSignaturesReq",
3674
+ },
3675
+ responseSchema: {
3676
+ $ref: "#/components/schemas/waf_signatures_changelogStagedSignaturesRsp",
3677
+ },
3678
+ requiredParams: ["body", "namespace", "vh_name"],
3679
+ operationId: "ves.io.schema.waf_signatures_changelog.SignatureCustomApi.GetStagedSignatures",
3680
+ tags: ["Other"],
3681
+ sourceFile: "domains/waf.json",
3682
+ displayName: null,
3683
+ dangerLevel: "medium",
3684
+ sideEffects: {
3685
+ creates: ["staged-signature"],
3686
+ },
3687
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace", "path.vh_name"],
3688
+ confirmationRequired: false,
3689
+ parameterExamples: {
3690
+ namespace: "Shared",
3691
+ vh_name: "Blogging-app.",
3692
+ },
3693
+ validationRules: {},
3694
+ operationMetadata: {
3695
+ common_errors: [
3696
+ {
3697
+ code: 401,
3698
+ message: "Authentication required",
3699
+ solution: "Provide valid API credentials",
3700
+ },
3701
+ {
3702
+ code: 403,
3703
+ message: "Permission denied",
3704
+ solution: "Check access permissions for this operation",
3705
+ },
3706
+ {
3707
+ code: 404,
3708
+ message: "Resource not found",
3709
+ solution: "Verify resource name, namespace, and path",
3710
+ },
3711
+ {
3712
+ code: 409,
3713
+ message: "Resource already exists",
3714
+ solution: "Use different name or update existing resource",
3715
+ },
3716
+ {
3717
+ code: 429,
3718
+ message: "Rate limit exceeded",
3719
+ solution: "Wait before retrying the operation",
3720
+ },
3721
+ {
3722
+ code: 500,
3723
+ message: "Server error",
3724
+ solution: "Retry operation or contact support",
3725
+ },
3726
+ ],
3727
+ conditions: {
3728
+ postconditions: [
3729
+ "Staged-signature resource created",
3730
+ "Resource assigned unique identifier",
3731
+ ],
3732
+ prerequisites: ["Active namespace"],
3733
+ },
3734
+ confirmation_required: false,
3735
+ danger_level: "medium",
3736
+ field_docs: {},
3737
+ optional_fields: [],
3738
+ performance_impact: {
3739
+ latency: "low",
3740
+ resource_usage: "low",
3741
+ },
3742
+ purpose: "Create new staged-signature",
3743
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace", "path.vh_name"],
3744
+ side_effects: {
3745
+ creates: ["staged-signature"],
3746
+ },
3747
+ },
3748
+ curlExample: null,
3749
+ dependencies: [],
3750
+ oneOfGroups: [],
3751
+ subscriptionRequirements: [
3752
+ {
3753
+ addonService: "f5xc_waap_standard",
3754
+ displayName: "F5XC WAAP Standard",
3755
+ required: false,
3756
+ tier: "standard",
3757
+ },
3758
+ {
3759
+ addonService: "f5xc_waap_advanced",
3760
+ displayName: "F5XC WAAP Advanced",
3761
+ required: false,
3762
+ tier: "advanced",
3763
+ },
3764
+ ],
3765
+ },
3766
+ {
3767
+ toolName: "f5xc-api-waf-suspicious-user-log-create",
3768
+ method: "POST",
3769
+ path: "/api/data/namespaces/{namespace}/app_security/suspicious_user_logs",
3770
+ operation: "create",
3771
+ domain: "waf",
3772
+ resource: "suspicious-user-log",
3773
+ summary: "Suspicious User Logs Query.",
3774
+ description: "GET suspicious user logs for the given namespace.\nFor `system` namespace, all suspicious users logs for the tenant matching the query specified\nin the request will be returned in the response. User may query suspicious user logs that matches various\nfields such as `vh_name`, `user`, `site`, `city`, `country`.",
3775
+ pathParameters: [
3776
+ {
3777
+ description: "Namespace\n\nfetch suspicious user logs for a given namespace.",
3778
+ in: "path",
3779
+ name: "namespace",
3780
+ required: true,
3781
+ schema: {
3782
+ type: "string",
3783
+ },
3784
+ "x-displayname": "Namespace",
3785
+ "x-ves-example": "Bloggin-app-namespace-1.",
3786
+ },
3787
+ ],
3788
+ queryParameters: [],
3789
+ requestBodySchema: {
3790
+ $ref: "#/components/schemas/app_securitySuspiciousUserLogsRequest",
3791
+ },
3792
+ responseSchema: {
3793
+ $ref: "#/components/schemas/app_securitySuspiciousUserLogsResponse",
3794
+ },
3795
+ requiredParams: ["body", "namespace"],
3796
+ operationId: "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsQuery",
3797
+ tags: ["Other"],
3798
+ sourceFile: "domains/waf.json",
3799
+ displayName: null,
3800
+ dangerLevel: "medium",
3801
+ sideEffects: {
3802
+ creates: ["suspicious-user-log"],
3803
+ },
3804
+ requiredFields: ["metadata.name", "metadata.namespace", "path.namespace"],
3805
+ confirmationRequired: false,
3806
+ parameterExamples: {
3807
+ namespace: "Bloggin-app-namespace-1.",
3808
+ },
3809
+ validationRules: {},
3810
+ operationMetadata: {
3811
+ common_errors: [
3812
+ {
3813
+ code: 401,
3814
+ message: "Authentication required",
3815
+ solution: "Provide valid API credentials",
3816
+ },
3817
+ {
3818
+ code: 403,
3819
+ message: "Permission denied",
3820
+ solution: "Check access permissions for this operation",
3821
+ },
3822
+ {
3823
+ code: 404,
3824
+ message: "Resource not found",
3825
+ solution: "Verify resource name, namespace, and path",
3826
+ },
3827
+ {
3828
+ code: 409,
3829
+ message: "Resource already exists",
3830
+ solution: "Use different name or update existing resource",
3831
+ },
3832
+ {
3833
+ code: 429,
3834
+ message: "Rate limit exceeded",
3835
+ solution: "Wait before retrying the operation",
3836
+ },
3837
+ {
3838
+ code: 500,
3839
+ message: "Server error",
3840
+ solution: "Retry operation or contact support",
3841
+ },
3842
+ ],
3843
+ conditions: {
3844
+ postconditions: [
3845
+ "Suspicious-user-log resource created",
3846
+ "Resource assigned unique identifier",
3847
+ ],
3848
+ prerequisites: ["Active namespace"],
3849
+ },
3850
+ confirmation_required: false,
3851
+ danger_level: "medium",
3852
+ field_docs: {},
3853
+ optional_fields: [],
3854
+ performance_impact: {
3855
+ latency: "low",
3856
+ resource_usage: "low",
3857
+ },
3858
+ purpose: "Create new suspicious-user-log",
3859
+ required_fields: ["metadata.name", "metadata.namespace", "path.namespace"],
3860
+ side_effects: {
3861
+ creates: ["suspicious-user-log"],
3862
+ },
3863
+ },
3864
+ curlExample: null,
3865
+ dependencies: [],
3866
+ oneOfGroups: [],
3867
+ subscriptionRequirements: [
3868
+ {
3869
+ addonService: "f5xc_waap_standard",
3870
+ displayName: "F5XC WAAP Standard",
3871
+ required: false,
3872
+ tier: "standard",
3873
+ },
3874
+ {
3875
+ addonService: "f5xc_waap_advanced",
3876
+ displayName: "F5XC WAAP Advanced",
3877
+ required: false,
3878
+ tier: "advanced",
3879
+ },
3880
+ ],
3881
+ },
3882
+ {
3883
+ toolName: "f5xc-api-waf-waf-exclusion-policy-create",
3884
+ method: "POST",
3885
+ path: "/api/config/namespaces/{metadata.namespace}/waf_exclusion_policys",
3886
+ operation: "create",
3887
+ domain: "waf",
3888
+ resource: "waf-exclusion-policy",
3889
+ summary: "Create WAF Exclusion Policy.",
3890
+ description: "Create a WAF exclusion policy.",
3891
+ pathParameters: [
3892
+ {
3893
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
3894
+ in: "path",
3895
+ name: "metadata.namespace",
3896
+ required: true,
3897
+ schema: {
3898
+ type: "string",
3899
+ },
3900
+ "x-displayname": "Namespace",
3901
+ "x-ves-example": "Staging",
3902
+ },
3903
+ ],
3904
+ queryParameters: [],
3905
+ requestBodySchema: {
3906
+ $ref: "#/components/schemas/waf_exclusion_policyCreateRequest",
3907
+ },
3908
+ responseSchema: {
3909
+ $ref: "#/components/schemas/waf_exclusion_policyCreateResponse",
3910
+ },
3911
+ requiredParams: ["body", "metadata.namespace"],
3912
+ operationId: "ves.io.schema.waf_exclusion_policy.API.Create",
3913
+ tags: ["Other"],
3914
+ sourceFile: "domains/waf.json",
3915
+ displayName: null,
3916
+ dangerLevel: "medium",
3917
+ sideEffects: {
3918
+ creates: ["waf-exclusion-policy"],
3919
+ },
3920
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
3921
+ confirmationRequired: false,
3922
+ parameterExamples: {
3923
+ "metadata.namespace": "Staging",
3924
+ },
3925
+ validationRules: {},
3926
+ operationMetadata: {
3927
+ common_errors: [
3928
+ {
3929
+ code: 401,
3930
+ message: "Authentication required",
3931
+ solution: "Provide valid API credentials",
3932
+ },
3933
+ {
3934
+ code: 403,
3935
+ message: "Permission denied",
3936
+ solution: "Check access permissions for this operation",
3937
+ },
3938
+ {
3939
+ code: 404,
3940
+ message: "Resource not found",
3941
+ solution: "Verify resource name, namespace, and path",
3942
+ },
3943
+ {
3944
+ code: 409,
3945
+ message: "Resource already exists",
3946
+ solution: "Use different name or update existing resource",
3947
+ },
3948
+ {
3949
+ code: 429,
3950
+ message: "Rate limit exceeded",
3951
+ solution: "Wait before retrying the operation",
3952
+ },
3953
+ {
3954
+ code: 500,
3955
+ message: "Server error",
3956
+ solution: "Retry operation or contact support",
3957
+ },
3958
+ ],
3959
+ conditions: {
3960
+ postconditions: [
3961
+ "Waf-exclusion-policy resource created",
3962
+ "Resource assigned unique identifier",
3963
+ ],
3964
+ prerequisites: ["Active namespace", "Policy parameters defined"],
3965
+ },
3966
+ confirmation_required: false,
3967
+ danger_level: "medium",
3968
+ field_docs: {},
3969
+ optional_fields: [],
3970
+ performance_impact: {
3971
+ latency: "low",
3972
+ resource_usage: "low",
3973
+ },
3974
+ purpose: "Create new waf-exclusion-policy",
3975
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
3976
+ side_effects: {
3977
+ creates: ["waf-exclusion-policy"],
3978
+ },
3979
+ },
3980
+ curlExample: null,
3981
+ dependencies: [
3982
+ {
3983
+ domain: "",
3984
+ fieldPath: "",
3985
+ inline: false,
3986
+ required: false,
3987
+ resourceType: "waf-exclusion-policy",
3988
+ },
3989
+ {
3990
+ domain: "",
3991
+ fieldPath: "metadata",
3992
+ inline: false,
3993
+ required: false,
3994
+ resourceType: "schema-object-create-meta",
3995
+ },
3996
+ {
3997
+ domain: "",
3998
+ fieldPath: "spec",
3999
+ inline: false,
4000
+ required: false,
4001
+ resourceType: "schemawaf-exclusion-policy-create",
4002
+ },
4003
+ ],
4004
+ oneOfGroups: [],
4005
+ subscriptionRequirements: [
4006
+ {
4007
+ addonService: "f5xc_waap_standard",
4008
+ displayName: "F5XC WAAP Standard",
4009
+ required: false,
4010
+ tier: "standard",
4011
+ },
4012
+ {
4013
+ addonService: "f5xc_waap_advanced",
4014
+ displayName: "F5XC WAAP Advanced",
4015
+ required: false,
4016
+ tier: "advanced",
4017
+ },
4018
+ ],
4019
+ },
4020
+ {
4021
+ toolName: "f5xc-api-waf-waf-exclusion-policy-delete",
4022
+ method: "DELETE",
4023
+ path: "/api/config/namespaces/{namespace}/waf_exclusion_policys/{name}",
4024
+ operation: "delete",
4025
+ domain: "waf",
4026
+ resource: "waf-exclusion-policy",
4027
+ summary: "DELETE WAF Exclusion Policy.",
4028
+ description: "DELETE the specified waf_exclusion_policy.",
4029
+ pathParameters: [
4030
+ {
4031
+ description: "Name\nName of the configuration object.",
4032
+ in: "path",
4033
+ name: "name",
4034
+ required: true,
4035
+ schema: {
4036
+ type: "string",
4037
+ },
4038
+ "x-displayname": "Name",
4039
+ "x-ves-example": "Name",
4040
+ },
4041
+ {
4042
+ description: "Namespace\nNamespace in which the configuration object is present.",
4043
+ in: "path",
4044
+ name: "namespace",
4045
+ required: true,
4046
+ schema: {
4047
+ type: "string",
4048
+ },
4049
+ "x-displayname": "Namespace",
4050
+ "x-ves-example": "Ns1",
4051
+ },
4052
+ ],
4053
+ queryParameters: [],
4054
+ requestBodySchema: {
4055
+ $ref: "#/components/schemas/waf_exclusion_policyDeleteRequest",
4056
+ },
4057
+ responseSchema: {},
4058
+ requiredParams: ["body", "name", "namespace"],
4059
+ operationId: "ves.io.schema.waf_exclusion_policy.API.Delete",
4060
+ tags: ["Other"],
4061
+ sourceFile: "domains/waf.json",
4062
+ displayName: null,
4063
+ dangerLevel: "high",
4064
+ sideEffects: {
4065
+ deletes: ["waf-exclusion-policy", "contained_resources"],
4066
+ },
4067
+ requiredFields: ["path.name", "path.namespace"],
4068
+ confirmationRequired: true,
4069
+ parameterExamples: {
4070
+ name: "Name",
4071
+ namespace: "Ns1",
4072
+ },
4073
+ validationRules: {},
4074
+ operationMetadata: {
4075
+ common_errors: [
4076
+ {
4077
+ code: 401,
4078
+ message: "Authentication required",
4079
+ solution: "Provide valid API credentials",
4080
+ },
4081
+ {
4082
+ code: 403,
4083
+ message: "Permission denied",
4084
+ solution: "Check access permissions for this operation",
4085
+ },
4086
+ {
4087
+ code: 404,
4088
+ message: "Resource not found",
4089
+ solution: "Verify resource name, namespace, and path",
4090
+ },
4091
+ {
4092
+ code: 409,
4093
+ message: "Resource already exists",
4094
+ solution: "Use different name or update existing resource",
4095
+ },
4096
+ {
4097
+ code: 429,
4098
+ message: "Rate limit exceeded",
4099
+ solution: "Wait before retrying the operation",
4100
+ },
4101
+ {
4102
+ code: 500,
4103
+ message: "Server error",
4104
+ solution: "Retry operation or contact support",
4105
+ },
4106
+ ],
4107
+ conditions: {
4108
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
4109
+ prerequisites: ["Active namespace", "Policy parameters defined"],
4110
+ },
4111
+ confirmation_required: true,
4112
+ danger_level: "high",
4113
+ field_docs: {},
4114
+ optional_fields: [],
4115
+ performance_impact: {
4116
+ latency: "high",
4117
+ resource_usage: "moderate",
4118
+ },
4119
+ purpose: "Delete waf-exclusion-policy",
4120
+ required_fields: ["path.name", "path.namespace"],
4121
+ side_effects: {
4122
+ deletes: ["waf-exclusion-policy", "contained_resources"],
4123
+ },
4124
+ },
4125
+ curlExample: null,
4126
+ dependencies: [
4127
+ {
4128
+ domain: "",
4129
+ fieldPath: "",
4130
+ inline: false,
4131
+ required: false,
4132
+ resourceType: "waf-exclusion-policy",
4133
+ },
4134
+ ],
4135
+ oneOfGroups: [],
4136
+ subscriptionRequirements: [
4137
+ {
4138
+ addonService: "f5xc_waap_standard",
4139
+ displayName: "F5XC WAAP Standard",
4140
+ required: false,
4141
+ tier: "standard",
4142
+ },
4143
+ {
4144
+ addonService: "f5xc_waap_advanced",
4145
+ displayName: "F5XC WAAP Advanced",
4146
+ required: false,
4147
+ tier: "advanced",
4148
+ },
4149
+ ],
4150
+ },
4151
+ {
4152
+ toolName: "f5xc-api-waf-waf-exclusion-policy-get",
4153
+ method: "GET",
4154
+ path: "/api/config/namespaces/{namespace}/waf_exclusion_policys/{name}",
4155
+ operation: "get",
4156
+ domain: "waf",
4157
+ resource: "waf-exclusion-policy",
4158
+ summary: "GET WAF Exclusion Policy.",
4159
+ description: "Retrieve a WAF exclusion policy.",
4160
+ pathParameters: [
4161
+ {
4162
+ description: "Name\nThe name of the configuration object to be fetched.",
4163
+ in: "path",
4164
+ name: "name",
4165
+ required: true,
4166
+ schema: {
4167
+ type: "string",
4168
+ },
4169
+ "x-displayname": "Name",
4170
+ "x-ves-example": "Name",
4171
+ },
4172
+ {
4173
+ description: "Namespace\nThe namespace in which the configuration object is present.",
4174
+ in: "path",
4175
+ name: "namespace",
4176
+ required: true,
4177
+ schema: {
4178
+ type: "string",
4179
+ },
4180
+ "x-displayname": "Namespace",
4181
+ "x-ves-example": "Ns1",
4182
+ },
4183
+ ],
4184
+ queryParameters: [
4185
+ {
4186
+ description: "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referrred by this object.",
4187
+ in: "query",
4188
+ name: "response_format",
4189
+ required: false,
4190
+ schema: {
4191
+ default: "GET_RSP_FORMAT_DEFAULT",
4192
+ enum: [
4193
+ "GET_RSP_FORMAT_DEFAULT",
4194
+ "GET_RSP_FORMAT_FOR_CREATE",
4195
+ "GET_RSP_FORMAT_FOR_REPLACE",
4196
+ "GET_RSP_FORMAT_STATUS",
4197
+ "GET_RSP_FORMAT_READ",
4198
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
4199
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
4200
+ ],
4201
+ type: "string",
4202
+ },
4203
+ "x-displayname": "Broken Referred Objects.",
4204
+ },
4205
+ ],
4206
+ requestBodySchema: null,
4207
+ responseSchema: {
4208
+ $ref: "#/components/schemas/waf_exclusion_policyGetResponse",
4209
+ },
4210
+ requiredParams: ["name", "namespace"],
4211
+ operationId: "ves.io.schema.waf_exclusion_policy.API.Get",
4212
+ tags: ["Other"],
4213
+ sourceFile: "domains/waf.json",
4214
+ displayName: null,
4215
+ dangerLevel: "low",
4216
+ sideEffects: null,
4217
+ requiredFields: ["path.name", "path.namespace"],
4218
+ confirmationRequired: false,
4219
+ parameterExamples: {
4220
+ name: "Name",
4221
+ namespace: "Ns1",
4222
+ },
4223
+ validationRules: {},
4224
+ operationMetadata: {
4225
+ common_errors: [
4226
+ {
4227
+ code: 401,
4228
+ message: "Authentication required",
4229
+ solution: "Provide valid API credentials",
4230
+ },
4231
+ {
4232
+ code: 403,
4233
+ message: "Permission denied",
4234
+ solution: "Check access permissions for this operation",
4235
+ },
4236
+ {
4237
+ code: 404,
4238
+ message: "Resource not found",
4239
+ solution: "Verify resource name, namespace, and path",
4240
+ },
4241
+ {
4242
+ code: 409,
4243
+ message: "Resource already exists",
4244
+ solution: "Use different name or update existing resource",
4245
+ },
4246
+ {
4247
+ code: 429,
4248
+ message: "Rate limit exceeded",
4249
+ solution: "Wait before retrying the operation",
4250
+ },
4251
+ {
4252
+ code: 500,
4253
+ message: "Server error",
4254
+ solution: "Retry operation or contact support",
4255
+ },
4256
+ ],
4257
+ conditions: {
4258
+ postconditions: [],
4259
+ prerequisites: ["Active namespace", "Policy parameters defined"],
4260
+ },
4261
+ confirmation_required: false,
4262
+ danger_level: "low",
4263
+ field_docs: {},
4264
+ optional_fields: [],
4265
+ performance_impact: {
4266
+ latency: "low",
4267
+ resource_usage: "low",
4268
+ },
4269
+ purpose: "Retrieve specific waf-exclusion-policy",
4270
+ required_fields: ["path.name", "path.namespace"],
4271
+ side_effects: {},
4272
+ },
4273
+ curlExample: null,
4274
+ dependencies: [],
4275
+ oneOfGroups: [],
4276
+ subscriptionRequirements: [
4277
+ {
4278
+ addonService: "f5xc_waap_standard",
4279
+ displayName: "F5XC WAAP Standard",
4280
+ required: false,
4281
+ tier: "standard",
4282
+ },
4283
+ {
4284
+ addonService: "f5xc_waap_advanced",
4285
+ displayName: "F5XC WAAP Advanced",
4286
+ required: false,
4287
+ tier: "advanced",
4288
+ },
4289
+ ],
4290
+ },
4291
+ {
4292
+ toolName: "f5xc-api-waf-waf-exclusion-policy-list",
4293
+ method: "GET",
4294
+ path: "/api/config/namespaces/{namespace}/waf_exclusion_policys",
4295
+ operation: "list",
4296
+ domain: "waf",
4297
+ resource: "waf-exclusion-policy",
4298
+ summary: "List WAF Exclusion Policy.",
4299
+ description: "List the set of waf_exclusion_policy in a namespace.",
4300
+ pathParameters: [
4301
+ {
4302
+ description: "Namespace\nNamespace to scope the listing of waf_exclusion_policy.",
4303
+ in: "path",
4304
+ name: "namespace",
4305
+ required: true,
4306
+ schema: {
4307
+ type: "string",
4308
+ },
4309
+ "x-displayname": "Namespace",
4310
+ "x-ves-example": "Ns1",
4311
+ },
4312
+ ],
4313
+ queryParameters: [
4314
+ {
4315
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
4316
+ in: "query",
4317
+ name: "label_filter",
4318
+ required: false,
4319
+ schema: {
4320
+ type: "string",
4321
+ },
4322
+ "x-displayname": "Label Filter.",
4323
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
4324
+ },
4325
+ {
4326
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
4327
+ in: "query",
4328
+ name: "report_fields",
4329
+ required: false,
4330
+ schema: {
4331
+ items: {
4332
+ type: "string",
4333
+ },
4334
+ type: "array",
4335
+ },
4336
+ "x-displayname": "Report Fields.",
4337
+ },
4338
+ {
4339
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
4340
+ in: "query",
4341
+ name: "report_status_fields",
4342
+ required: false,
4343
+ schema: {
4344
+ items: {
4345
+ type: "string",
4346
+ },
4347
+ type: "array",
4348
+ },
4349
+ "x-displayname": "Report Status Fields.",
4350
+ },
4351
+ ],
4352
+ requestBodySchema: null,
4353
+ responseSchema: {
4354
+ $ref: "#/components/schemas/waf_exclusion_policyListResponse",
4355
+ },
4356
+ requiredParams: ["namespace"],
4357
+ operationId: "ves.io.schema.waf_exclusion_policy.API.List",
4358
+ tags: ["Other"],
4359
+ sourceFile: "domains/waf.json",
4360
+ displayName: null,
4361
+ dangerLevel: "low",
4362
+ sideEffects: null,
4363
+ requiredFields: ["path.namespace"],
4364
+ confirmationRequired: false,
4365
+ parameterExamples: {
4366
+ label_filter: "Env in (staging, testing), tier in (web, db)",
4367
+ namespace: "Ns1",
4368
+ },
4369
+ validationRules: {},
4370
+ operationMetadata: {
4371
+ common_errors: [
4372
+ {
4373
+ code: 401,
4374
+ message: "Authentication required",
4375
+ solution: "Provide valid API credentials",
4376
+ },
4377
+ {
4378
+ code: 403,
4379
+ message: "Permission denied",
4380
+ solution: "Check access permissions for this operation",
4381
+ },
4382
+ {
4383
+ code: 404,
4384
+ message: "Resource not found",
4385
+ solution: "Verify resource name, namespace, and path",
4386
+ },
4387
+ {
4388
+ code: 409,
4389
+ message: "Resource already exists",
4390
+ solution: "Use different name or update existing resource",
4391
+ },
4392
+ {
4393
+ code: 429,
4394
+ message: "Rate limit exceeded",
4395
+ solution: "Wait before retrying the operation",
4396
+ },
4397
+ {
4398
+ code: 500,
4399
+ message: "Server error",
4400
+ solution: "Retry operation or contact support",
4401
+ },
4402
+ ],
4403
+ conditions: {
4404
+ postconditions: [],
4405
+ prerequisites: ["Active namespace", "Policy parameters defined"],
4406
+ },
4407
+ confirmation_required: false,
4408
+ danger_level: "low",
4409
+ field_docs: {},
4410
+ optional_fields: [],
4411
+ performance_impact: {
4412
+ latency: "moderate",
4413
+ resource_usage: "moderate",
4414
+ },
4415
+ purpose: "List all waf-exclusion-policys",
4416
+ required_fields: ["path.namespace"],
4417
+ side_effects: {},
4418
+ },
4419
+ curlExample: null,
4420
+ dependencies: [],
4421
+ oneOfGroups: [],
4422
+ subscriptionRequirements: [
4423
+ {
4424
+ addonService: "f5xc_waap_standard",
4425
+ displayName: "F5XC WAAP Standard",
4426
+ required: false,
4427
+ tier: "standard",
4428
+ },
4429
+ {
4430
+ addonService: "f5xc_waap_advanced",
4431
+ displayName: "F5XC WAAP Advanced",
4432
+ required: false,
4433
+ tier: "advanced",
4434
+ },
4435
+ ],
4436
+ },
4437
+ {
4438
+ toolName: "f5xc-api-waf-waf-exclusion-policy-update",
4439
+ method: "PUT",
4440
+ path: "/api/config/namespaces/{metadata.namespace}/waf_exclusion_policys/{metadata.name}",
4441
+ operation: "update",
4442
+ domain: "waf",
4443
+ resource: "waf-exclusion-policy",
4444
+ summary: "Replace WAF Exclusion Policy.",
4445
+ description: "Replace an existing WAF exclusion policy.",
4446
+ pathParameters: [
4447
+ {
4448
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
4449
+ in: "path",
4450
+ name: "metadata.name",
4451
+ required: true,
4452
+ schema: {
4453
+ type: "string",
4454
+ },
4455
+ "x-displayname": "Name",
4456
+ "x-ves-example": "Example-corp-web.",
4457
+ },
4458
+ {
4459
+ description: 'Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be ""',
4460
+ in: "path",
4461
+ name: "metadata.namespace",
4462
+ required: true,
4463
+ schema: {
4464
+ type: "string",
4465
+ },
4466
+ "x-displayname": "Namespace",
4467
+ "x-ves-example": "Staging",
4468
+ },
4469
+ ],
4470
+ queryParameters: [],
4471
+ requestBodySchema: {
4472
+ $ref: "#/components/schemas/waf_exclusion_policyReplaceRequest",
4473
+ },
4474
+ responseSchema: {
4475
+ $ref: "#/components/schemas/waf_exclusion_policyReplaceResponse",
4476
+ },
4477
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
4478
+ operationId: "ves.io.schema.waf_exclusion_policy.API.Replace",
4479
+ tags: ["Other"],
4480
+ sourceFile: "domains/waf.json",
4481
+ displayName: null,
4482
+ dangerLevel: "medium",
4483
+ sideEffects: {
4484
+ modifies: ["waf-exclusion-policy"],
4485
+ },
4486
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
4487
+ confirmationRequired: false,
4488
+ parameterExamples: {
4489
+ "metadata.name": "Example-corp-web.",
4490
+ "metadata.namespace": "Staging",
4491
+ },
4492
+ validationRules: {},
4493
+ operationMetadata: {
4494
+ common_errors: [
4495
+ {
4496
+ code: 401,
4497
+ message: "Authentication required",
4498
+ solution: "Provide valid API credentials",
4499
+ },
4500
+ {
4501
+ code: 403,
4502
+ message: "Permission denied",
4503
+ solution: "Check access permissions for this operation",
4504
+ },
4505
+ {
4506
+ code: 404,
4507
+ message: "Resource not found",
4508
+ solution: "Verify resource name, namespace, and path",
4509
+ },
4510
+ {
4511
+ code: 409,
4512
+ message: "Resource already exists",
4513
+ solution: "Use different name or update existing resource",
4514
+ },
4515
+ {
4516
+ code: 429,
4517
+ message: "Rate limit exceeded",
4518
+ solution: "Wait before retrying the operation",
4519
+ },
4520
+ {
4521
+ code: 500,
4522
+ message: "Server error",
4523
+ solution: "Retry operation or contact support",
4524
+ },
4525
+ ],
4526
+ conditions: {
4527
+ postconditions: ["Resource updated with new values"],
4528
+ prerequisites: ["Active namespace", "Policy parameters defined"],
4529
+ },
4530
+ confirmation_required: false,
4531
+ danger_level: "medium",
4532
+ field_docs: {},
4533
+ optional_fields: [],
4534
+ performance_impact: {
4535
+ latency: "low",
4536
+ resource_usage: "low",
4537
+ },
4538
+ purpose: "Replace existing waf-exclusion-policy",
4539
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
4540
+ side_effects: {
4541
+ modifies: ["waf-exclusion-policy"],
4542
+ },
4543
+ },
4544
+ curlExample: null,
4545
+ dependencies: [
4546
+ {
4547
+ domain: "",
4548
+ fieldPath: "",
4549
+ inline: false,
4550
+ required: false,
4551
+ resourceType: "waf-exclusion-policy",
4552
+ },
4553
+ {
4554
+ domain: "",
4555
+ fieldPath: "metadata",
4556
+ inline: false,
4557
+ required: false,
4558
+ resourceType: "schema-object-replace-meta",
4559
+ },
4560
+ {
4561
+ domain: "",
4562
+ fieldPath: "spec",
4563
+ inline: false,
4564
+ required: false,
4565
+ resourceType: "schemawaf-exclusion-policy-replace",
4566
+ },
4567
+ ],
4568
+ oneOfGroups: [],
4569
+ subscriptionRequirements: [
4570
+ {
4571
+ addonService: "f5xc_waap_standard",
4572
+ displayName: "F5XC WAAP Standard",
4573
+ required: false,
4574
+ tier: "standard",
4575
+ },
4576
+ {
4577
+ addonService: "f5xc_waap_advanced",
4578
+ displayName: "F5XC WAAP Advanced",
4579
+ required: false,
4580
+ tier: "advanced",
4581
+ },
4582
+ ],
4583
+ },
4584
+ ];
4585
+ export default wafTools;
4586
+ //# sourceMappingURL=index.js.map