@robinmordasiewicz/f5xc-api-mcp 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/generator/openapi-parser.d.ts +418 -0
  2. package/dist/generator/openapi-parser.d.ts.map +1 -1
  3. package/dist/generator/openapi-parser.js +132 -0
  4. package/dist/generator/openapi-parser.js.map +1 -1
  5. package/dist/generator/tool-generator.d.ts +29 -1
  6. package/dist/generator/tool-generator.d.ts.map +1 -1
  7. package/dist/generator/tool-generator.js +150 -7
  8. package/dist/generator/tool-generator.js.map +1 -1
  9. package/dist/tools/discovery/describe.d.ts +1 -0
  10. package/dist/tools/discovery/describe.d.ts.map +1 -1
  11. package/dist/tools/discovery/describe.js +10 -8
  12. package/dist/tools/discovery/describe.js.map +1 -1
  13. package/dist/tools/generated/admin_console_and_ui/index.d.ts +8 -0
  14. package/dist/tools/generated/admin_console_and_ui/index.d.ts.map +1 -0
  15. package/dist/tools/generated/admin_console_and_ui/index.js +285 -0
  16. package/dist/tools/generated/admin_console_and_ui/index.js.map +1 -0
  17. package/dist/tools/generated/api/index.d.ts +8 -0
  18. package/dist/tools/generated/{vpn → api}/index.d.ts.map +1 -1
  19. package/dist/tools/generated/api/index.js +6668 -0
  20. package/dist/tools/generated/api/index.js.map +1 -0
  21. package/dist/tools/generated/authentication/index.d.ts +8 -0
  22. package/dist/tools/generated/authentication/index.d.ts.map +1 -0
  23. package/dist/tools/generated/authentication/index.js +1005 -0
  24. package/dist/tools/generated/authentication/index.js.map +1 -0
  25. package/dist/tools/generated/bigip/index.d.ts.map +1 -1
  26. package/dist/tools/generated/bigip/index.js +2045 -0
  27. package/dist/tools/generated/bigip/index.js.map +1 -1
  28. package/dist/tools/generated/billing_and_usage/index.d.ts +8 -0
  29. package/dist/tools/generated/billing_and_usage/index.d.ts.map +1 -0
  30. package/dist/tools/generated/billing_and_usage/index.js +2702 -0
  31. package/dist/tools/generated/billing_and_usage/index.js.map +1 -0
  32. package/dist/tools/generated/blindfold/index.d.ts +8 -0
  33. package/dist/tools/generated/blindfold/index.d.ts.map +1 -0
  34. package/dist/tools/generated/blindfold/index.js +3998 -0
  35. package/dist/tools/generated/blindfold/index.js.map +1 -0
  36. package/dist/tools/generated/bot_and_threat_defense/index.d.ts +8 -0
  37. package/dist/tools/generated/bot_and_threat_defense/index.d.ts.map +1 -0
  38. package/dist/tools/generated/bot_and_threat_defense/index.js +2584 -0
  39. package/dist/tools/generated/bot_and_threat_defense/index.js.map +1 -0
  40. package/dist/tools/generated/cdn/index.d.ts.map +1 -1
  41. package/dist/tools/generated/cdn/index.js +1904 -0
  42. package/dist/tools/generated/cdn/index.js.map +1 -1
  43. package/dist/tools/generated/ce_management/index.d.ts +8 -0
  44. package/dist/tools/generated/ce_management/index.d.ts.map +1 -0
  45. package/dist/tools/generated/ce_management/index.js +3963 -0
  46. package/dist/tools/generated/ce_management/index.js.map +1 -0
  47. package/dist/tools/generated/certificates/index.d.ts +8 -0
  48. package/dist/tools/generated/certificates/index.d.ts.map +1 -0
  49. package/dist/tools/generated/certificates/index.js +2579 -0
  50. package/dist/tools/generated/certificates/index.js.map +1 -0
  51. package/dist/tools/generated/cloud_infrastructure/index.d.ts +8 -0
  52. package/dist/tools/generated/cloud_infrastructure/index.d.ts.map +1 -0
  53. package/dist/tools/generated/cloud_infrastructure/index.js +4124 -0
  54. package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -0
  55. package/dist/tools/generated/container_services/index.d.ts +8 -0
  56. package/dist/tools/generated/container_services/index.d.ts.map +1 -0
  57. package/dist/tools/generated/container_services/index.js +2054 -0
  58. package/dist/tools/generated/container_services/index.js.map +1 -0
  59. package/dist/tools/generated/data_and_privacy_security/index.d.ts +8 -0
  60. package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -0
  61. package/dist/tools/generated/data_and_privacy_security/index.js +1708 -0
  62. package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -0
  63. package/dist/tools/generated/data_intelligence/index.d.ts +8 -0
  64. package/dist/tools/generated/data_intelligence/index.d.ts.map +1 -0
  65. package/dist/tools/generated/data_intelligence/index.js +1770 -0
  66. package/dist/tools/generated/data_intelligence/index.js.map +1 -0
  67. package/dist/tools/generated/ddos/index.d.ts +8 -0
  68. package/dist/tools/generated/ddos/index.d.ts.map +1 -0
  69. package/dist/tools/generated/ddos/index.js +8511 -0
  70. package/dist/tools/generated/ddos/index.js.map +1 -0
  71. package/dist/tools/generated/dns/index.d.ts +8 -0
  72. package/dist/tools/generated/dns/index.d.ts.map +1 -0
  73. package/dist/tools/generated/dns/index.js +6460 -0
  74. package/dist/tools/generated/dns/index.js.map +1 -0
  75. package/dist/tools/generated/generative_ai/index.d.ts +8 -0
  76. package/dist/tools/generated/generative_ai/index.d.ts.map +1 -0
  77. package/dist/tools/generated/generative_ai/index.js +1215 -0
  78. package/dist/tools/generated/generative_ai/index.js.map +1 -0
  79. package/dist/tools/generated/managed_kubernetes/index.d.ts +8 -0
  80. package/dist/tools/generated/managed_kubernetes/index.d.ts.map +1 -0
  81. package/dist/tools/generated/managed_kubernetes/index.js +3233 -0
  82. package/dist/tools/generated/managed_kubernetes/index.js.map +1 -0
  83. package/dist/tools/generated/marketplace/index.d.ts +8 -0
  84. package/dist/tools/generated/marketplace/index.d.ts.map +1 -0
  85. package/dist/tools/generated/marketplace/index.js +4580 -0
  86. package/dist/tools/generated/marketplace/index.js.map +1 -0
  87. package/dist/tools/generated/network/index.d.ts +8 -0
  88. package/dist/tools/generated/network/index.d.ts.map +1 -0
  89. package/dist/tools/generated/network/index.js +12616 -0
  90. package/dist/tools/generated/network/index.js.map +1 -0
  91. package/dist/tools/generated/network_security/index.d.ts +8 -0
  92. package/dist/tools/generated/network_security/index.d.ts.map +1 -0
  93. package/dist/tools/generated/network_security/index.js +8884 -0
  94. package/dist/tools/generated/network_security/index.js.map +1 -0
  95. package/dist/tools/generated/nginx_one/index.d.ts +8 -0
  96. package/dist/tools/generated/nginx_one/index.d.ts.map +1 -0
  97. package/dist/tools/generated/nginx_one/index.js +1820 -0
  98. package/dist/tools/generated/nginx_one/index.js.map +1 -0
  99. package/dist/tools/generated/object_storage/index.d.ts +8 -0
  100. package/dist/tools/generated/object_storage/index.d.ts.map +1 -0
  101. package/dist/tools/generated/object_storage/index.js +1055 -0
  102. package/dist/tools/generated/object_storage/index.js.map +1 -0
  103. package/dist/tools/generated/observability/index.d.ts.map +1 -1
  104. package/dist/tools/generated/observability/index.js +4243 -4618
  105. package/dist/tools/generated/observability/index.js.map +1 -1
  106. package/dist/tools/generated/rate_limiting/index.d.ts +8 -0
  107. package/dist/tools/generated/rate_limiting/index.d.ts.map +1 -0
  108. package/dist/tools/generated/rate_limiting/index.js +1937 -0
  109. package/dist/tools/generated/rate_limiting/index.js.map +1 -0
  110. package/dist/tools/generated/secops_and_incident_response/index.d.ts +8 -0
  111. package/dist/tools/generated/secops_and_incident_response/index.d.ts.map +1 -0
  112. package/dist/tools/generated/secops_and_incident_response/index.js +653 -0
  113. package/dist/tools/generated/secops_and_incident_response/index.js.map +1 -0
  114. package/dist/tools/generated/service_mesh/index.d.ts.map +1 -1
  115. package/dist/tools/generated/service_mesh/index.js +4532 -438
  116. package/dist/tools/generated/service_mesh/index.js.map +1 -1
  117. package/dist/tools/generated/shape/index.d.ts +8 -0
  118. package/dist/tools/generated/shape/index.d.ts.map +1 -0
  119. package/dist/tools/generated/shape/index.js +21784 -0
  120. package/dist/tools/generated/shape/index.js.map +1 -0
  121. package/dist/tools/generated/sites/index.d.ts +8 -0
  122. package/dist/tools/generated/sites/index.d.ts.map +1 -0
  123. package/dist/tools/generated/sites/index.js +13252 -0
  124. package/dist/tools/generated/sites/index.js.map +1 -0
  125. package/dist/tools/generated/statistics/index.d.ts +8 -0
  126. package/dist/tools/generated/statistics/index.d.ts.map +1 -0
  127. package/dist/tools/generated/statistics/index.js +8837 -0
  128. package/dist/tools/generated/statistics/index.js.map +1 -0
  129. package/dist/tools/generated/support/index.d.ts +8 -0
  130. package/dist/tools/generated/support/index.d.ts.map +1 -0
  131. package/dist/tools/generated/support/index.js +6215 -0
  132. package/dist/tools/generated/support/index.js.map +1 -0
  133. package/dist/tools/generated/telemetry_and_insights/index.d.ts +8 -0
  134. package/dist/tools/generated/telemetry_and_insights/index.d.ts.map +1 -0
  135. package/dist/tools/generated/telemetry_and_insights/index.js +2773 -0
  136. package/dist/tools/generated/telemetry_and_insights/index.js.map +1 -0
  137. package/dist/tools/generated/tenant_and_identity/index.d.ts +8 -0
  138. package/dist/tools/generated/tenant_and_identity/index.d.ts.map +1 -0
  139. package/dist/tools/generated/tenant_and_identity/index.js +20456 -0
  140. package/dist/tools/generated/tenant_and_identity/index.js.map +1 -0
  141. package/dist/tools/generated/threat_campaign/index.d.ts +8 -0
  142. package/dist/tools/generated/threat_campaign/index.d.ts.map +1 -0
  143. package/dist/tools/generated/threat_campaign/index.js +112 -0
  144. package/dist/tools/generated/threat_campaign/index.js.map +1 -0
  145. package/dist/tools/generated/users/index.d.ts +8 -0
  146. package/dist/tools/generated/users/index.d.ts.map +1 -0
  147. package/dist/tools/generated/users/index.js +1572 -0
  148. package/dist/tools/generated/users/index.js.map +1 -0
  149. package/dist/tools/generated/virtual/index.d.ts +8 -0
  150. package/dist/tools/generated/virtual/index.d.ts.map +1 -0
  151. package/dist/tools/generated/virtual/index.js +11540 -0
  152. package/dist/tools/generated/virtual/index.js.map +1 -0
  153. package/dist/tools/generated/vpm_and_node_management/index.d.ts +8 -0
  154. package/dist/tools/generated/vpm_and_node_management/index.d.ts.map +1 -0
  155. package/dist/tools/generated/vpm_and_node_management/index.js +98 -0
  156. package/dist/tools/generated/vpm_and_node_management/index.js.map +1 -0
  157. package/dist/tools/generated/waf/index.d.ts +8 -0
  158. package/dist/tools/generated/waf/index.d.ts.map +1 -0
  159. package/dist/tools/generated/waf/index.js +4440 -0
  160. package/dist/tools/generated/waf/index.js.map +1 -0
  161. package/dist/tools/registry.d.ts.map +1 -1
  162. package/dist/tools/registry.js +68 -36
  163. package/dist/tools/registry.js.map +1 -1
  164. package/package.json +3 -1
  165. package/dist/tools/generated/ai_intelligence/index.d.ts +0 -8
  166. package/dist/tools/generated/ai_intelligence/index.d.ts.map +0 -1
  167. package/dist/tools/generated/ai_intelligence/index.js +0 -282
  168. package/dist/tools/generated/ai_intelligence/index.js.map +0 -1
  169. package/dist/tools/generated/api_security/index.d.ts +0 -8
  170. package/dist/tools/generated/api_security/index.d.ts.map +0 -1
  171. package/dist/tools/generated/api_security/index.js +0 -1852
  172. package/dist/tools/generated/api_security/index.js.map +0 -1
  173. package/dist/tools/generated/applications/index.d.ts +0 -8
  174. package/dist/tools/generated/applications/index.d.ts.map +0 -1
  175. package/dist/tools/generated/applications/index.js +0 -1589
  176. package/dist/tools/generated/applications/index.js.map +0 -1
  177. package/dist/tools/generated/billing/index.d.ts +0 -8
  178. package/dist/tools/generated/billing/index.d.ts.map +0 -1
  179. package/dist/tools/generated/billing/index.js +0 -759
  180. package/dist/tools/generated/billing/index.js.map +0 -1
  181. package/dist/tools/generated/config/index.d.ts +0 -8
  182. package/dist/tools/generated/config/index.d.ts.map +0 -1
  183. package/dist/tools/generated/config/index.js +0 -316
  184. package/dist/tools/generated/config/index.js.map +0 -1
  185. package/dist/tools/generated/identity/index.d.ts +0 -8
  186. package/dist/tools/generated/identity/index.d.ts.map +0 -1
  187. package/dist/tools/generated/identity/index.js +0 -5371
  188. package/dist/tools/generated/identity/index.js.map +0 -1
  189. package/dist/tools/generated/infrastructure/index.d.ts +0 -8
  190. package/dist/tools/generated/infrastructure/index.d.ts.map +0 -1
  191. package/dist/tools/generated/infrastructure/index.js +0 -5342
  192. package/dist/tools/generated/infrastructure/index.js.map +0 -1
  193. package/dist/tools/generated/infrastructure_protection/index.d.ts +0 -8
  194. package/dist/tools/generated/infrastructure_protection/index.d.ts.map +0 -1
  195. package/dist/tools/generated/infrastructure_protection/index.js +0 -2919
  196. package/dist/tools/generated/infrastructure_protection/index.js.map +0 -1
  197. package/dist/tools/generated/integrations/index.d.ts +0 -8
  198. package/dist/tools/generated/integrations/index.d.ts.map +0 -1
  199. package/dist/tools/generated/integrations/index.js +0 -1995
  200. package/dist/tools/generated/integrations/index.js.map +0 -1
  201. package/dist/tools/generated/load_balancer/index.d.ts +0 -8
  202. package/dist/tools/generated/load_balancer/index.d.ts.map +0 -1
  203. package/dist/tools/generated/load_balancer/index.js +0 -2269
  204. package/dist/tools/generated/load_balancer/index.js.map +0 -1
  205. package/dist/tools/generated/networking/index.d.ts +0 -8
  206. package/dist/tools/generated/networking/index.d.ts.map +0 -1
  207. package/dist/tools/generated/networking/index.js +0 -11289
  208. package/dist/tools/generated/networking/index.js.map +0 -1
  209. package/dist/tools/generated/nginx/index.d.ts +0 -8
  210. package/dist/tools/generated/nginx/index.d.ts.map +0 -1
  211. package/dist/tools/generated/nginx/index.js +0 -680
  212. package/dist/tools/generated/nginx/index.js.map +0 -1
  213. package/dist/tools/generated/operations/index.d.ts +0 -8
  214. package/dist/tools/generated/operations/index.d.ts.map +0 -1
  215. package/dist/tools/generated/operations/index.js +0 -1759
  216. package/dist/tools/generated/operations/index.js.map +0 -1
  217. package/dist/tools/generated/security/index.d.ts +0 -8
  218. package/dist/tools/generated/security/index.d.ts.map +0 -1
  219. package/dist/tools/generated/security/index.js +0 -9111
  220. package/dist/tools/generated/security/index.js.map +0 -1
  221. package/dist/tools/generated/shape_security/index.d.ts +0 -8
  222. package/dist/tools/generated/shape_security/index.d.ts.map +0 -1
  223. package/dist/tools/generated/shape_security/index.js +0 -4121
  224. package/dist/tools/generated/shape_security/index.js.map +0 -1
  225. package/dist/tools/generated/subscriptions/index.d.ts +0 -8
  226. package/dist/tools/generated/subscriptions/index.d.ts.map +0 -1
  227. package/dist/tools/generated/subscriptions/index.js +0 -778
  228. package/dist/tools/generated/subscriptions/index.js.map +0 -1
  229. package/dist/tools/generated/tenant_management/index.d.ts +0 -8
  230. package/dist/tools/generated/tenant_management/index.d.ts.map +0 -1
  231. package/dist/tools/generated/tenant_management/index.js +0 -2292
  232. package/dist/tools/generated/tenant_management/index.js.map +0 -1
  233. package/dist/tools/generated/vpn/index.d.ts +0 -8
  234. package/dist/tools/generated/vpn/index.js +0 -1183
  235. package/dist/tools/generated/vpn/index.js.map +0 -1
@@ -0,0 +1,1937 @@
1
+ /**
2
+ * Generated tool definitions for rate_limiting domain
3
+ * DO NOT EDIT - This file is auto-generated by scripts/generate.ts
4
+ */
5
+ export const rate_limitingTools = [
6
+ {
7
+ toolName: "f5xc-api-ratelimiting-policer-create",
8
+ method: "POST",
9
+ path: "/api/config/namespaces/{metadata.namespace}/policers",
10
+ operation: "create",
11
+ domain: "rate_limiting",
12
+ resource: "policer",
13
+ summary: "Create Policer.",
14
+ description: "Create a new policer with traffic rate limits.",
15
+ pathParameters: [
16
+ {
17
+ 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 ""',
18
+ in: "path",
19
+ name: "metadata.namespace",
20
+ required: true,
21
+ schema: {
22
+ type: "string",
23
+ },
24
+ "x-displayname": "Namespace",
25
+ "x-ves-example": "Staging",
26
+ },
27
+ ],
28
+ queryParameters: [],
29
+ requestBodySchema: {
30
+ $ref: "#/components/schemas/policerCreateRequest",
31
+ },
32
+ responseSchema: {
33
+ $ref: "#/components/schemas/policerCreateResponse",
34
+ },
35
+ requiredParams: ["body", "metadata.namespace"],
36
+ operationId: "ves.io.schema.policer.API.Create",
37
+ tags: ["Other"],
38
+ sourceFile: "domains/rate_limiting.json",
39
+ displayName: null,
40
+ dangerLevel: "medium",
41
+ sideEffects: {
42
+ creates: ["policer"],
43
+ },
44
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
45
+ cliExamples: [
46
+ {
47
+ command: "f5xcctl config policer create -f {file}.yaml",
48
+ description: "Create from YAML file",
49
+ use_case: "file_based",
50
+ },
51
+ {
52
+ command: "f5xcctl config policer create {name} --namespace {namespace}",
53
+ description: "Create policer",
54
+ use_case: "basic_create",
55
+ },
56
+ ],
57
+ confirmationRequired: false,
58
+ parameterExamples: {
59
+ "metadata.namespace": "Staging",
60
+ },
61
+ validationRules: {},
62
+ operationMetadata: {
63
+ common_errors: [
64
+ {
65
+ code: 401,
66
+ message: "Authentication required",
67
+ solution: "Provide valid API credentials",
68
+ },
69
+ {
70
+ code: 403,
71
+ message: "Permission denied",
72
+ solution: "Check access permissions for this operation",
73
+ },
74
+ {
75
+ code: 404,
76
+ message: "Resource not found",
77
+ solution: "Verify resource name, namespace, and path",
78
+ },
79
+ {
80
+ code: 409,
81
+ message: "Resource already exists",
82
+ solution: "Use different name or update existing resource",
83
+ },
84
+ {
85
+ code: 429,
86
+ message: "Rate limit exceeded",
87
+ solution: "Wait before retrying the operation",
88
+ },
89
+ {
90
+ code: 500,
91
+ message: "Server error",
92
+ solution: "Retry operation or contact support",
93
+ },
94
+ ],
95
+ conditions: {
96
+ postconditions: ["Policer resource created", "Resource assigned unique identifier"],
97
+ prerequisites: ["Active namespace"],
98
+ },
99
+ confirmation_required: false,
100
+ danger_level: "medium",
101
+ examples: [
102
+ {
103
+ command: "f5xcctl config policer create {name} --namespace {namespace}",
104
+ description: "Create policer",
105
+ use_case: "basic_create",
106
+ },
107
+ {
108
+ command: "f5xcctl config policer create -f {file}.yaml",
109
+ description: "Create from YAML file",
110
+ use_case: "file_based",
111
+ },
112
+ ],
113
+ field_docs: {},
114
+ optional_fields: [],
115
+ performance_impact: {
116
+ latency: "low",
117
+ resource_usage: "low",
118
+ },
119
+ purpose: "Create new policer",
120
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
121
+ side_effects: {
122
+ creates: ["policer"],
123
+ },
124
+ },
125
+ },
126
+ {
127
+ toolName: "f5xc-api-ratelimiting-policer-delete",
128
+ method: "DELETE",
129
+ path: "/api/config/namespaces/{namespace}/policers/{name}",
130
+ operation: "delete",
131
+ domain: "rate_limiting",
132
+ resource: "policer",
133
+ summary: "DELETE Policer.",
134
+ description: "DELETE the specified policer.",
135
+ pathParameters: [
136
+ {
137
+ description: "Name\nName of the configuration object.",
138
+ in: "path",
139
+ name: "name",
140
+ required: true,
141
+ schema: {
142
+ type: "string",
143
+ },
144
+ "x-displayname": "Name",
145
+ "x-ves-example": "Name",
146
+ },
147
+ {
148
+ description: "Namespace\nNamespace in which the configuration object is present.",
149
+ in: "path",
150
+ name: "namespace",
151
+ required: true,
152
+ schema: {
153
+ type: "string",
154
+ },
155
+ "x-displayname": "Namespace",
156
+ "x-ves-example": "Ns1",
157
+ },
158
+ ],
159
+ queryParameters: [],
160
+ requestBodySchema: {
161
+ $ref: "#/components/schemas/policerDeleteRequest",
162
+ },
163
+ responseSchema: {},
164
+ requiredParams: ["body", "name", "namespace"],
165
+ operationId: "ves.io.schema.policer.API.Delete",
166
+ tags: ["Other"],
167
+ sourceFile: "domains/rate_limiting.json",
168
+ displayName: null,
169
+ dangerLevel: "high",
170
+ sideEffects: {
171
+ deletes: ["policer", "contained_resources"],
172
+ },
173
+ requiredFields: ["path.name", "path.namespace"],
174
+ cliExamples: [
175
+ {
176
+ command: "f5xcctl config policer delete {name} --namespace {namespace}",
177
+ description: "Delete policer",
178
+ use_case: "delete",
179
+ },
180
+ ],
181
+ confirmationRequired: true,
182
+ parameterExamples: {
183
+ name: "Name",
184
+ namespace: "Ns1",
185
+ },
186
+ validationRules: {},
187
+ operationMetadata: {
188
+ common_errors: [
189
+ {
190
+ code: 401,
191
+ message: "Authentication required",
192
+ solution: "Provide valid API credentials",
193
+ },
194
+ {
195
+ code: 403,
196
+ message: "Permission denied",
197
+ solution: "Check access permissions for this operation",
198
+ },
199
+ {
200
+ code: 404,
201
+ message: "Resource not found",
202
+ solution: "Verify resource name, namespace, and path",
203
+ },
204
+ {
205
+ code: 409,
206
+ message: "Resource already exists",
207
+ solution: "Use different name or update existing resource",
208
+ },
209
+ {
210
+ code: 429,
211
+ message: "Rate limit exceeded",
212
+ solution: "Wait before retrying the operation",
213
+ },
214
+ {
215
+ code: 500,
216
+ message: "Server error",
217
+ solution: "Retry operation or contact support",
218
+ },
219
+ ],
220
+ conditions: {
221
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
222
+ prerequisites: ["Active namespace"],
223
+ },
224
+ confirmation_required: true,
225
+ danger_level: "high",
226
+ examples: [
227
+ {
228
+ command: "f5xcctl config policer delete {name} --namespace {namespace}",
229
+ description: "Delete policer",
230
+ use_case: "delete",
231
+ },
232
+ ],
233
+ field_docs: {},
234
+ optional_fields: [],
235
+ performance_impact: {
236
+ latency: "high",
237
+ resource_usage: "moderate",
238
+ },
239
+ purpose: "Delete policer",
240
+ required_fields: ["path.name", "path.namespace"],
241
+ side_effects: {
242
+ deletes: ["policer", "contained_resources"],
243
+ },
244
+ },
245
+ },
246
+ {
247
+ toolName: "f5xc-api-ratelimiting-policer-get",
248
+ method: "GET",
249
+ path: "/api/config/namespaces/{namespace}/policers/{name}",
250
+ operation: "get",
251
+ domain: "rate_limiting",
252
+ resource: "policer",
253
+ summary: "GET Policer.",
254
+ description: "GET specification of policer object.",
255
+ pathParameters: [
256
+ {
257
+ description: "Name\nThe name of the configuration object to be fetched.",
258
+ in: "path",
259
+ name: "name",
260
+ required: true,
261
+ schema: {
262
+ type: "string",
263
+ },
264
+ "x-displayname": "Name",
265
+ "x-ves-example": "Name",
266
+ },
267
+ {
268
+ description: "Namespace\nThe namespace in which the configuration object is present.",
269
+ in: "path",
270
+ name: "namespace",
271
+ required: true,
272
+ schema: {
273
+ type: "string",
274
+ },
275
+ "x-displayname": "Namespace",
276
+ "x-ves-example": "Ns1",
277
+ },
278
+ ],
279
+ queryParameters: [
280
+ {
281
+ 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.",
282
+ in: "query",
283
+ name: "response_format",
284
+ required: false,
285
+ schema: {
286
+ default: "GET_RSP_FORMAT_DEFAULT",
287
+ enum: [
288
+ "GET_RSP_FORMAT_DEFAULT",
289
+ "GET_RSP_FORMAT_FOR_CREATE",
290
+ "GET_RSP_FORMAT_FOR_REPLACE",
291
+ "GET_RSP_FORMAT_STATUS",
292
+ "GET_RSP_FORMAT_READ",
293
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
294
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
295
+ ],
296
+ type: "string",
297
+ },
298
+ "x-displayname": "Broken Referred Objects.",
299
+ },
300
+ ],
301
+ requestBodySchema: null,
302
+ responseSchema: {
303
+ $ref: "#/components/schemas/policerGetResponse",
304
+ },
305
+ requiredParams: ["name", "namespace"],
306
+ operationId: "ves.io.schema.policer.API.Get",
307
+ tags: ["Other"],
308
+ sourceFile: "domains/rate_limiting.json",
309
+ displayName: null,
310
+ dangerLevel: "low",
311
+ sideEffects: null,
312
+ requiredFields: ["path.name", "path.namespace"],
313
+ cliExamples: [
314
+ {
315
+ command: "f5xcctl config policer get {name} --namespace {namespace}",
316
+ description: "Get specific policer",
317
+ use_case: "get_specific",
318
+ },
319
+ ],
320
+ confirmationRequired: false,
321
+ parameterExamples: {
322
+ name: "Name",
323
+ namespace: "Ns1",
324
+ },
325
+ validationRules: {},
326
+ operationMetadata: {
327
+ common_errors: [
328
+ {
329
+ code: 401,
330
+ message: "Authentication required",
331
+ solution: "Provide valid API credentials",
332
+ },
333
+ {
334
+ code: 403,
335
+ message: "Permission denied",
336
+ solution: "Check access permissions for this operation",
337
+ },
338
+ {
339
+ code: 404,
340
+ message: "Resource not found",
341
+ solution: "Verify resource name, namespace, and path",
342
+ },
343
+ {
344
+ code: 409,
345
+ message: "Resource already exists",
346
+ solution: "Use different name or update existing resource",
347
+ },
348
+ {
349
+ code: 429,
350
+ message: "Rate limit exceeded",
351
+ solution: "Wait before retrying the operation",
352
+ },
353
+ {
354
+ code: 500,
355
+ message: "Server error",
356
+ solution: "Retry operation or contact support",
357
+ },
358
+ ],
359
+ conditions: {
360
+ postconditions: [],
361
+ prerequisites: ["Active namespace"],
362
+ },
363
+ confirmation_required: false,
364
+ danger_level: "low",
365
+ examples: [
366
+ {
367
+ command: "f5xcctl config policer get {name} --namespace {namespace}",
368
+ description: "Get specific policer",
369
+ use_case: "get_specific",
370
+ },
371
+ ],
372
+ field_docs: {},
373
+ optional_fields: [],
374
+ performance_impact: {
375
+ latency: "low",
376
+ resource_usage: "low",
377
+ },
378
+ purpose: "Retrieve specific policer",
379
+ required_fields: ["path.name", "path.namespace"],
380
+ side_effects: {},
381
+ },
382
+ },
383
+ {
384
+ toolName: "f5xc-api-ratelimiting-policer-list",
385
+ method: "GET",
386
+ path: "/api/config/namespaces/{namespace}/policers",
387
+ operation: "list",
388
+ domain: "rate_limiting",
389
+ resource: "policer",
390
+ summary: "List Policer.",
391
+ description: "List the set of policer in a namespace.",
392
+ pathParameters: [
393
+ {
394
+ description: "Namespace\nNamespace to scope the listing of policer.",
395
+ in: "path",
396
+ name: "namespace",
397
+ required: true,
398
+ schema: {
399
+ type: "string",
400
+ },
401
+ "x-displayname": "Namespace",
402
+ "x-ves-example": "Ns1",
403
+ },
404
+ ],
405
+ queryParameters: [
406
+ {
407
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
408
+ in: "query",
409
+ name: "label_filter",
410
+ required: false,
411
+ schema: {
412
+ type: "string",
413
+ },
414
+ "x-displayname": "Label Filter.",
415
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
416
+ },
417
+ {
418
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
419
+ in: "query",
420
+ name: "report_fields",
421
+ required: false,
422
+ schema: {
423
+ items: {
424
+ type: "string",
425
+ },
426
+ type: "array",
427
+ },
428
+ "x-displayname": "Report Fields.",
429
+ },
430
+ {
431
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
432
+ in: "query",
433
+ name: "report_status_fields",
434
+ required: false,
435
+ schema: {
436
+ items: {
437
+ type: "string",
438
+ },
439
+ type: "array",
440
+ },
441
+ "x-displayname": "Report Status Fields.",
442
+ },
443
+ ],
444
+ requestBodySchema: null,
445
+ responseSchema: {
446
+ $ref: "#/components/schemas/policerListResponse",
447
+ },
448
+ requiredParams: ["namespace"],
449
+ operationId: "ves.io.schema.policer.API.List",
450
+ tags: ["Other"],
451
+ sourceFile: "domains/rate_limiting.json",
452
+ displayName: null,
453
+ dangerLevel: "low",
454
+ sideEffects: null,
455
+ requiredFields: ["path.namespace"],
456
+ cliExamples: [
457
+ {
458
+ command: "f5xcctl config policer list --namespace {namespace}",
459
+ description: "List all policers",
460
+ use_case: "list_all",
461
+ },
462
+ ],
463
+ confirmationRequired: false,
464
+ parameterExamples: {
465
+ label_filter: "Env in (staging, testing), tier in (web, db)",
466
+ namespace: "Ns1",
467
+ },
468
+ validationRules: {},
469
+ operationMetadata: {
470
+ common_errors: [
471
+ {
472
+ code: 401,
473
+ message: "Authentication required",
474
+ solution: "Provide valid API credentials",
475
+ },
476
+ {
477
+ code: 403,
478
+ message: "Permission denied",
479
+ solution: "Check access permissions for this operation",
480
+ },
481
+ {
482
+ code: 404,
483
+ message: "Resource not found",
484
+ solution: "Verify resource name, namespace, and path",
485
+ },
486
+ {
487
+ code: 409,
488
+ message: "Resource already exists",
489
+ solution: "Use different name or update existing resource",
490
+ },
491
+ {
492
+ code: 429,
493
+ message: "Rate limit exceeded",
494
+ solution: "Wait before retrying the operation",
495
+ },
496
+ {
497
+ code: 500,
498
+ message: "Server error",
499
+ solution: "Retry operation or contact support",
500
+ },
501
+ ],
502
+ conditions: {
503
+ postconditions: [],
504
+ prerequisites: ["Active namespace"],
505
+ },
506
+ confirmation_required: false,
507
+ danger_level: "low",
508
+ examples: [
509
+ {
510
+ command: "f5xcctl config policer list --namespace {namespace}",
511
+ description: "List all policers",
512
+ use_case: "list_all",
513
+ },
514
+ ],
515
+ field_docs: {},
516
+ optional_fields: [],
517
+ performance_impact: {
518
+ latency: "moderate",
519
+ resource_usage: "moderate",
520
+ },
521
+ purpose: "List all policers",
522
+ required_fields: ["path.namespace"],
523
+ side_effects: {},
524
+ },
525
+ },
526
+ {
527
+ toolName: "f5xc-api-ratelimiting-policer-update",
528
+ method: "PUT",
529
+ path: "/api/config/namespaces/{metadata.namespace}/policers/{metadata.name}",
530
+ operation: "update",
531
+ domain: "rate_limiting",
532
+ resource: "policer",
533
+ summary: "Replace Policer.",
534
+ description: "Replace a given policer with changed traffic rate limits.",
535
+ pathParameters: [
536
+ {
537
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
538
+ in: "path",
539
+ name: "metadata.name",
540
+ required: true,
541
+ schema: {
542
+ type: "string",
543
+ },
544
+ "x-displayname": "Name",
545
+ "x-ves-example": "Example-corp-web.",
546
+ },
547
+ {
548
+ 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 ""',
549
+ in: "path",
550
+ name: "metadata.namespace",
551
+ required: true,
552
+ schema: {
553
+ type: "string",
554
+ },
555
+ "x-displayname": "Namespace",
556
+ "x-ves-example": "Staging",
557
+ },
558
+ ],
559
+ queryParameters: [],
560
+ requestBodySchema: {
561
+ $ref: "#/components/schemas/policerReplaceRequest",
562
+ },
563
+ responseSchema: {
564
+ $ref: "#/components/schemas/policerReplaceResponse",
565
+ },
566
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
567
+ operationId: "ves.io.schema.policer.API.Replace",
568
+ tags: ["Other"],
569
+ sourceFile: "domains/rate_limiting.json",
570
+ displayName: null,
571
+ dangerLevel: "medium",
572
+ sideEffects: {
573
+ modifies: ["policer"],
574
+ },
575
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
576
+ cliExamples: [
577
+ {
578
+ command: "f5xcctl config policer update {name} --namespace {namespace} -f {file}.yaml",
579
+ description: "Update policer",
580
+ use_case: "update",
581
+ },
582
+ ],
583
+ confirmationRequired: false,
584
+ parameterExamples: {
585
+ "metadata.name": "Example-corp-web.",
586
+ "metadata.namespace": "Staging",
587
+ },
588
+ validationRules: {},
589
+ operationMetadata: {
590
+ common_errors: [
591
+ {
592
+ code: 401,
593
+ message: "Authentication required",
594
+ solution: "Provide valid API credentials",
595
+ },
596
+ {
597
+ code: 403,
598
+ message: "Permission denied",
599
+ solution: "Check access permissions for this operation",
600
+ },
601
+ {
602
+ code: 404,
603
+ message: "Resource not found",
604
+ solution: "Verify resource name, namespace, and path",
605
+ },
606
+ {
607
+ code: 409,
608
+ message: "Resource already exists",
609
+ solution: "Use different name or update existing resource",
610
+ },
611
+ {
612
+ code: 429,
613
+ message: "Rate limit exceeded",
614
+ solution: "Wait before retrying the operation",
615
+ },
616
+ {
617
+ code: 500,
618
+ message: "Server error",
619
+ solution: "Retry operation or contact support",
620
+ },
621
+ ],
622
+ conditions: {
623
+ postconditions: ["Resource updated with new values"],
624
+ prerequisites: ["Active namespace"],
625
+ },
626
+ confirmation_required: false,
627
+ danger_level: "medium",
628
+ examples: [
629
+ {
630
+ command: "f5xcctl config policer update {name} --namespace {namespace} -f {file}.yaml",
631
+ description: "Update policer",
632
+ use_case: "update",
633
+ },
634
+ ],
635
+ field_docs: {},
636
+ optional_fields: [],
637
+ performance_impact: {
638
+ latency: "low",
639
+ resource_usage: "low",
640
+ },
641
+ purpose: "Replace existing policer",
642
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
643
+ side_effects: {
644
+ modifies: ["policer"],
645
+ },
646
+ },
647
+ },
648
+ {
649
+ toolName: "f5xc-api-ratelimiting-protocol-policer-create",
650
+ method: "POST",
651
+ path: "/api/config/namespaces/{metadata.namespace}/protocol_policers",
652
+ operation: "create",
653
+ domain: "rate_limiting",
654
+ resource: "protocol-policer",
655
+ summary: "Create Protocol Policer.",
656
+ description: "Create a protocol_policer object, protocol_policer object contains list\nof L4 protocol match condition and corresponding traffic rate limits.",
657
+ pathParameters: [
658
+ {
659
+ 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 ""',
660
+ in: "path",
661
+ name: "metadata.namespace",
662
+ required: true,
663
+ schema: {
664
+ type: "string",
665
+ },
666
+ "x-displayname": "Namespace",
667
+ "x-ves-example": "Staging",
668
+ },
669
+ ],
670
+ queryParameters: [],
671
+ requestBodySchema: {
672
+ $ref: "#/components/schemas/protocol_policerCreateRequest",
673
+ },
674
+ responseSchema: {
675
+ $ref: "#/components/schemas/protocol_policerCreateResponse",
676
+ },
677
+ requiredParams: ["body", "metadata.namespace"],
678
+ operationId: "ves.io.schema.protocol_policer.API.Create",
679
+ tags: ["Other"],
680
+ sourceFile: "domains/rate_limiting.json",
681
+ displayName: null,
682
+ dangerLevel: "medium",
683
+ sideEffects: {
684
+ creates: ["protocol-policer"],
685
+ },
686
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
687
+ cliExamples: [
688
+ {
689
+ command: "f5xcctl config protocol-policer create -f {file}.yaml",
690
+ description: "Create from YAML file",
691
+ use_case: "file_based",
692
+ },
693
+ {
694
+ command: "f5xcctl config protocol-policer create {name} --namespace {namespace}",
695
+ description: "Create protocol-policer",
696
+ use_case: "basic_create",
697
+ },
698
+ ],
699
+ confirmationRequired: false,
700
+ parameterExamples: {
701
+ "metadata.namespace": "Staging",
702
+ },
703
+ validationRules: {},
704
+ operationMetadata: {
705
+ common_errors: [
706
+ {
707
+ code: 401,
708
+ message: "Authentication required",
709
+ solution: "Provide valid API credentials",
710
+ },
711
+ {
712
+ code: 403,
713
+ message: "Permission denied",
714
+ solution: "Check access permissions for this operation",
715
+ },
716
+ {
717
+ code: 404,
718
+ message: "Resource not found",
719
+ solution: "Verify resource name, namespace, and path",
720
+ },
721
+ {
722
+ code: 409,
723
+ message: "Resource already exists",
724
+ solution: "Use different name or update existing resource",
725
+ },
726
+ {
727
+ code: 429,
728
+ message: "Rate limit exceeded",
729
+ solution: "Wait before retrying the operation",
730
+ },
731
+ {
732
+ code: 500,
733
+ message: "Server error",
734
+ solution: "Retry operation or contact support",
735
+ },
736
+ ],
737
+ conditions: {
738
+ postconditions: [
739
+ "Protocol-policer resource created",
740
+ "Resource assigned unique identifier",
741
+ ],
742
+ prerequisites: ["Active namespace"],
743
+ },
744
+ confirmation_required: false,
745
+ danger_level: "medium",
746
+ examples: [
747
+ {
748
+ command: "f5xcctl config protocol-policer create {name} --namespace {namespace}",
749
+ description: "Create protocol-policer",
750
+ use_case: "basic_create",
751
+ },
752
+ {
753
+ command: "f5xcctl config protocol-policer create -f {file}.yaml",
754
+ description: "Create from YAML file",
755
+ use_case: "file_based",
756
+ },
757
+ ],
758
+ field_docs: {},
759
+ optional_fields: [],
760
+ performance_impact: {
761
+ latency: "low",
762
+ resource_usage: "low",
763
+ },
764
+ purpose: "Create new protocol-policer",
765
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
766
+ side_effects: {
767
+ creates: ["protocol-policer"],
768
+ },
769
+ },
770
+ },
771
+ {
772
+ toolName: "f5xc-api-ratelimiting-protocol-policer-delete",
773
+ method: "DELETE",
774
+ path: "/api/config/namespaces/{namespace}/protocol_policers/{name}",
775
+ operation: "delete",
776
+ domain: "rate_limiting",
777
+ resource: "protocol-policer",
778
+ summary: "DELETE Protocol Policer.",
779
+ description: "DELETE the specified protocol_policer.",
780
+ pathParameters: [
781
+ {
782
+ description: "Name\nName of the configuration object.",
783
+ in: "path",
784
+ name: "name",
785
+ required: true,
786
+ schema: {
787
+ type: "string",
788
+ },
789
+ "x-displayname": "Name",
790
+ "x-ves-example": "Name",
791
+ },
792
+ {
793
+ description: "Namespace\nNamespace in which the configuration object is present.",
794
+ in: "path",
795
+ name: "namespace",
796
+ required: true,
797
+ schema: {
798
+ type: "string",
799
+ },
800
+ "x-displayname": "Namespace",
801
+ "x-ves-example": "Ns1",
802
+ },
803
+ ],
804
+ queryParameters: [],
805
+ requestBodySchema: {
806
+ $ref: "#/components/schemas/protocol_policerDeleteRequest",
807
+ },
808
+ responseSchema: {},
809
+ requiredParams: ["body", "name", "namespace"],
810
+ operationId: "ves.io.schema.protocol_policer.API.Delete",
811
+ tags: ["Other"],
812
+ sourceFile: "domains/rate_limiting.json",
813
+ displayName: null,
814
+ dangerLevel: "high",
815
+ sideEffects: {
816
+ deletes: ["protocol-policer", "contained_resources"],
817
+ },
818
+ requiredFields: ["path.name", "path.namespace"],
819
+ cliExamples: [
820
+ {
821
+ command: "f5xcctl config protocol-policer delete {name} --namespace {namespace}",
822
+ description: "Delete protocol-policer",
823
+ use_case: "delete",
824
+ },
825
+ ],
826
+ confirmationRequired: true,
827
+ parameterExamples: {
828
+ name: "Name",
829
+ namespace: "Ns1",
830
+ },
831
+ validationRules: {},
832
+ operationMetadata: {
833
+ common_errors: [
834
+ {
835
+ code: 401,
836
+ message: "Authentication required",
837
+ solution: "Provide valid API credentials",
838
+ },
839
+ {
840
+ code: 403,
841
+ message: "Permission denied",
842
+ solution: "Check access permissions for this operation",
843
+ },
844
+ {
845
+ code: 404,
846
+ message: "Resource not found",
847
+ solution: "Verify resource name, namespace, and path",
848
+ },
849
+ {
850
+ code: 409,
851
+ message: "Resource already exists",
852
+ solution: "Use different name or update existing resource",
853
+ },
854
+ {
855
+ code: 429,
856
+ message: "Rate limit exceeded",
857
+ solution: "Wait before retrying the operation",
858
+ },
859
+ {
860
+ code: 500,
861
+ message: "Server error",
862
+ solution: "Retry operation or contact support",
863
+ },
864
+ ],
865
+ conditions: {
866
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
867
+ prerequisites: ["Active namespace"],
868
+ },
869
+ confirmation_required: true,
870
+ danger_level: "high",
871
+ examples: [
872
+ {
873
+ command: "f5xcctl config protocol-policer delete {name} --namespace {namespace}",
874
+ description: "Delete protocol-policer",
875
+ use_case: "delete",
876
+ },
877
+ ],
878
+ field_docs: {},
879
+ optional_fields: [],
880
+ performance_impact: {
881
+ latency: "high",
882
+ resource_usage: "moderate",
883
+ },
884
+ purpose: "Delete protocol-policer",
885
+ required_fields: ["path.name", "path.namespace"],
886
+ side_effects: {
887
+ deletes: ["protocol-policer", "contained_resources"],
888
+ },
889
+ },
890
+ },
891
+ {
892
+ toolName: "f5xc-api-ratelimiting-protocol-policer-get",
893
+ method: "GET",
894
+ path: "/api/config/namespaces/{namespace}/protocol_policers/{name}",
895
+ operation: "get",
896
+ domain: "rate_limiting",
897
+ resource: "protocol-policer",
898
+ summary: "GET Protocol Policer.",
899
+ description: "GET specification of a protocol_policer object with L4 protocol match condition and\ncorresponding traffic rate limits.",
900
+ pathParameters: [
901
+ {
902
+ description: "Name\nThe name of the configuration object to be fetched.",
903
+ in: "path",
904
+ name: "name",
905
+ required: true,
906
+ schema: {
907
+ type: "string",
908
+ },
909
+ "x-displayname": "Name",
910
+ "x-ves-example": "Name",
911
+ },
912
+ {
913
+ description: "Namespace\nThe namespace in which the configuration object is present.",
914
+ in: "path",
915
+ name: "namespace",
916
+ required: true,
917
+ schema: {
918
+ type: "string",
919
+ },
920
+ "x-displayname": "Namespace",
921
+ "x-ves-example": "Ns1",
922
+ },
923
+ ],
924
+ queryParameters: [
925
+ {
926
+ 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.",
927
+ in: "query",
928
+ name: "response_format",
929
+ required: false,
930
+ schema: {
931
+ default: "GET_RSP_FORMAT_DEFAULT",
932
+ enum: [
933
+ "GET_RSP_FORMAT_DEFAULT",
934
+ "GET_RSP_FORMAT_FOR_CREATE",
935
+ "GET_RSP_FORMAT_FOR_REPLACE",
936
+ "GET_RSP_FORMAT_STATUS",
937
+ "GET_RSP_FORMAT_READ",
938
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
939
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
940
+ ],
941
+ type: "string",
942
+ },
943
+ "x-displayname": "Broken Referred Objects.",
944
+ },
945
+ ],
946
+ requestBodySchema: null,
947
+ responseSchema: {
948
+ $ref: "#/components/schemas/protocol_policerGetResponse",
949
+ },
950
+ requiredParams: ["name", "namespace"],
951
+ operationId: "ves.io.schema.protocol_policer.API.Get",
952
+ tags: ["Other"],
953
+ sourceFile: "domains/rate_limiting.json",
954
+ displayName: null,
955
+ dangerLevel: "low",
956
+ sideEffects: null,
957
+ requiredFields: ["path.name", "path.namespace"],
958
+ cliExamples: [
959
+ {
960
+ command: "f5xcctl config protocol-policer get {name} --namespace {namespace}",
961
+ description: "Get specific protocol-policer",
962
+ use_case: "get_specific",
963
+ },
964
+ ],
965
+ confirmationRequired: false,
966
+ parameterExamples: {
967
+ name: "Name",
968
+ namespace: "Ns1",
969
+ },
970
+ validationRules: {},
971
+ operationMetadata: {
972
+ common_errors: [
973
+ {
974
+ code: 401,
975
+ message: "Authentication required",
976
+ solution: "Provide valid API credentials",
977
+ },
978
+ {
979
+ code: 403,
980
+ message: "Permission denied",
981
+ solution: "Check access permissions for this operation",
982
+ },
983
+ {
984
+ code: 404,
985
+ message: "Resource not found",
986
+ solution: "Verify resource name, namespace, and path",
987
+ },
988
+ {
989
+ code: 409,
990
+ message: "Resource already exists",
991
+ solution: "Use different name or update existing resource",
992
+ },
993
+ {
994
+ code: 429,
995
+ message: "Rate limit exceeded",
996
+ solution: "Wait before retrying the operation",
997
+ },
998
+ {
999
+ code: 500,
1000
+ message: "Server error",
1001
+ solution: "Retry operation or contact support",
1002
+ },
1003
+ ],
1004
+ conditions: {
1005
+ postconditions: [],
1006
+ prerequisites: ["Active namespace"],
1007
+ },
1008
+ confirmation_required: false,
1009
+ danger_level: "low",
1010
+ examples: [
1011
+ {
1012
+ command: "f5xcctl config protocol-policer get {name} --namespace {namespace}",
1013
+ description: "Get specific protocol-policer",
1014
+ use_case: "get_specific",
1015
+ },
1016
+ ],
1017
+ field_docs: {},
1018
+ optional_fields: [],
1019
+ performance_impact: {
1020
+ latency: "low",
1021
+ resource_usage: "low",
1022
+ },
1023
+ purpose: "Retrieve specific protocol-policer",
1024
+ required_fields: ["path.name", "path.namespace"],
1025
+ side_effects: {},
1026
+ },
1027
+ },
1028
+ {
1029
+ toolName: "f5xc-api-ratelimiting-protocol-policer-list",
1030
+ method: "GET",
1031
+ path: "/api/config/namespaces/{namespace}/protocol_policers",
1032
+ operation: "list",
1033
+ domain: "rate_limiting",
1034
+ resource: "protocol-policer",
1035
+ summary: "List Protocol Policer.",
1036
+ description: "List the set of protocol_policer in a namespace.",
1037
+ pathParameters: [
1038
+ {
1039
+ description: "Namespace\nNamespace to scope the listing of protocol_policer.",
1040
+ in: "path",
1041
+ name: "namespace",
1042
+ required: true,
1043
+ schema: {
1044
+ type: "string",
1045
+ },
1046
+ "x-displayname": "Namespace",
1047
+ "x-ves-example": "Ns1",
1048
+ },
1049
+ ],
1050
+ queryParameters: [
1051
+ {
1052
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
1053
+ in: "query",
1054
+ name: "label_filter",
1055
+ required: false,
1056
+ schema: {
1057
+ type: "string",
1058
+ },
1059
+ "x-displayname": "Label Filter.",
1060
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
1061
+ },
1062
+ {
1063
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
1064
+ in: "query",
1065
+ name: "report_fields",
1066
+ required: false,
1067
+ schema: {
1068
+ items: {
1069
+ type: "string",
1070
+ },
1071
+ type: "array",
1072
+ },
1073
+ "x-displayname": "Report Fields.",
1074
+ },
1075
+ {
1076
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
1077
+ in: "query",
1078
+ name: "report_status_fields",
1079
+ required: false,
1080
+ schema: {
1081
+ items: {
1082
+ type: "string",
1083
+ },
1084
+ type: "array",
1085
+ },
1086
+ "x-displayname": "Report Status Fields.",
1087
+ },
1088
+ ],
1089
+ requestBodySchema: null,
1090
+ responseSchema: {
1091
+ $ref: "#/components/schemas/protocol_policerListResponse",
1092
+ },
1093
+ requiredParams: ["namespace"],
1094
+ operationId: "ves.io.schema.protocol_policer.API.List",
1095
+ tags: ["Other"],
1096
+ sourceFile: "domains/rate_limiting.json",
1097
+ displayName: null,
1098
+ dangerLevel: "low",
1099
+ sideEffects: null,
1100
+ requiredFields: ["path.namespace"],
1101
+ cliExamples: [
1102
+ {
1103
+ command: "f5xcctl config protocol-policer list --namespace {namespace}",
1104
+ description: "List all protocol-policers",
1105
+ use_case: "list_all",
1106
+ },
1107
+ ],
1108
+ confirmationRequired: false,
1109
+ parameterExamples: {
1110
+ label_filter: "Env in (staging, testing), tier in (web, db)",
1111
+ namespace: "Ns1",
1112
+ },
1113
+ validationRules: {},
1114
+ operationMetadata: {
1115
+ common_errors: [
1116
+ {
1117
+ code: 401,
1118
+ message: "Authentication required",
1119
+ solution: "Provide valid API credentials",
1120
+ },
1121
+ {
1122
+ code: 403,
1123
+ message: "Permission denied",
1124
+ solution: "Check access permissions for this operation",
1125
+ },
1126
+ {
1127
+ code: 404,
1128
+ message: "Resource not found",
1129
+ solution: "Verify resource name, namespace, and path",
1130
+ },
1131
+ {
1132
+ code: 409,
1133
+ message: "Resource already exists",
1134
+ solution: "Use different name or update existing resource",
1135
+ },
1136
+ {
1137
+ code: 429,
1138
+ message: "Rate limit exceeded",
1139
+ solution: "Wait before retrying the operation",
1140
+ },
1141
+ {
1142
+ code: 500,
1143
+ message: "Server error",
1144
+ solution: "Retry operation or contact support",
1145
+ },
1146
+ ],
1147
+ conditions: {
1148
+ postconditions: [],
1149
+ prerequisites: ["Active namespace"],
1150
+ },
1151
+ confirmation_required: false,
1152
+ danger_level: "low",
1153
+ examples: [
1154
+ {
1155
+ command: "f5xcctl config protocol-policer list --namespace {namespace}",
1156
+ description: "List all protocol-policers",
1157
+ use_case: "list_all",
1158
+ },
1159
+ ],
1160
+ field_docs: {},
1161
+ optional_fields: [],
1162
+ performance_impact: {
1163
+ latency: "moderate",
1164
+ resource_usage: "moderate",
1165
+ },
1166
+ purpose: "List all protocol-policers",
1167
+ required_fields: ["path.namespace"],
1168
+ side_effects: {},
1169
+ },
1170
+ },
1171
+ {
1172
+ toolName: "f5xc-api-ratelimiting-protocol-policer-update",
1173
+ method: "PUT",
1174
+ path: "/api/config/namespaces/{metadata.namespace}/protocol_policers/{metadata.name}",
1175
+ operation: "update",
1176
+ domain: "rate_limiting",
1177
+ resource: "protocol-policer",
1178
+ summary: "Replace Protocol Policer.",
1179
+ description: "Replace a protocol_policer object with new L4 protocol match condition and\ncorresponding traffic rate limits.",
1180
+ pathParameters: [
1181
+ {
1182
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
1183
+ in: "path",
1184
+ name: "metadata.name",
1185
+ required: true,
1186
+ schema: {
1187
+ type: "string",
1188
+ },
1189
+ "x-displayname": "Name",
1190
+ "x-ves-example": "Example-corp-web.",
1191
+ },
1192
+ {
1193
+ 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 ""',
1194
+ in: "path",
1195
+ name: "metadata.namespace",
1196
+ required: true,
1197
+ schema: {
1198
+ type: "string",
1199
+ },
1200
+ "x-displayname": "Namespace",
1201
+ "x-ves-example": "Staging",
1202
+ },
1203
+ ],
1204
+ queryParameters: [],
1205
+ requestBodySchema: {
1206
+ $ref: "#/components/schemas/protocol_policerReplaceRequest",
1207
+ },
1208
+ responseSchema: {
1209
+ $ref: "#/components/schemas/protocol_policerReplaceResponse",
1210
+ },
1211
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
1212
+ operationId: "ves.io.schema.protocol_policer.API.Replace",
1213
+ tags: ["Other"],
1214
+ sourceFile: "domains/rate_limiting.json",
1215
+ displayName: null,
1216
+ dangerLevel: "medium",
1217
+ sideEffects: {
1218
+ modifies: ["protocol-policer"],
1219
+ },
1220
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
1221
+ cliExamples: [
1222
+ {
1223
+ command: "f5xcctl config protocol-policer update {name} --namespace {namespace} -f {file}.yaml",
1224
+ description: "Update protocol-policer",
1225
+ use_case: "update",
1226
+ },
1227
+ ],
1228
+ confirmationRequired: false,
1229
+ parameterExamples: {
1230
+ "metadata.name": "Example-corp-web.",
1231
+ "metadata.namespace": "Staging",
1232
+ },
1233
+ validationRules: {},
1234
+ operationMetadata: {
1235
+ common_errors: [
1236
+ {
1237
+ code: 401,
1238
+ message: "Authentication required",
1239
+ solution: "Provide valid API credentials",
1240
+ },
1241
+ {
1242
+ code: 403,
1243
+ message: "Permission denied",
1244
+ solution: "Check access permissions for this operation",
1245
+ },
1246
+ {
1247
+ code: 404,
1248
+ message: "Resource not found",
1249
+ solution: "Verify resource name, namespace, and path",
1250
+ },
1251
+ {
1252
+ code: 409,
1253
+ message: "Resource already exists",
1254
+ solution: "Use different name or update existing resource",
1255
+ },
1256
+ {
1257
+ code: 429,
1258
+ message: "Rate limit exceeded",
1259
+ solution: "Wait before retrying the operation",
1260
+ },
1261
+ {
1262
+ code: 500,
1263
+ message: "Server error",
1264
+ solution: "Retry operation or contact support",
1265
+ },
1266
+ ],
1267
+ conditions: {
1268
+ postconditions: ["Resource updated with new values"],
1269
+ prerequisites: ["Active namespace"],
1270
+ },
1271
+ confirmation_required: false,
1272
+ danger_level: "medium",
1273
+ examples: [
1274
+ {
1275
+ command: "f5xcctl config protocol-policer update {name} --namespace {namespace} -f {file}.yaml",
1276
+ description: "Update protocol-policer",
1277
+ use_case: "update",
1278
+ },
1279
+ ],
1280
+ field_docs: {},
1281
+ optional_fields: [],
1282
+ performance_impact: {
1283
+ latency: "low",
1284
+ resource_usage: "low",
1285
+ },
1286
+ purpose: "Replace existing protocol-policer",
1287
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
1288
+ side_effects: {
1289
+ modifies: ["protocol-policer"],
1290
+ },
1291
+ },
1292
+ },
1293
+ {
1294
+ toolName: "f5xc-api-ratelimiting-rate-limiter-create",
1295
+ method: "POST",
1296
+ path: "/api/config/namespaces/{metadata.namespace}/rate_limiters",
1297
+ operation: "create",
1298
+ domain: "rate_limiting",
1299
+ resource: "rate-limiter",
1300
+ summary: "Create Rate Limiter.",
1301
+ description: "Create rate_limiter creates a new object in the storage backend for metadata.namespace.",
1302
+ pathParameters: [
1303
+ {
1304
+ 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 ""',
1305
+ in: "path",
1306
+ name: "metadata.namespace",
1307
+ required: true,
1308
+ schema: {
1309
+ type: "string",
1310
+ },
1311
+ "x-displayname": "Namespace",
1312
+ "x-ves-example": "Staging",
1313
+ },
1314
+ ],
1315
+ queryParameters: [],
1316
+ requestBodySchema: {
1317
+ $ref: "#/components/schemas/rate_limiterCreateRequest",
1318
+ },
1319
+ responseSchema: {
1320
+ $ref: "#/components/schemas/rate_limiterCreateResponse",
1321
+ },
1322
+ requiredParams: ["body", "metadata.namespace"],
1323
+ operationId: "ves.io.schema.rate_limiter.API.Create",
1324
+ tags: ["Other"],
1325
+ sourceFile: "domains/rate_limiting.json",
1326
+ displayName: null,
1327
+ dangerLevel: "medium",
1328
+ sideEffects: {
1329
+ creates: ["rate-limiter"],
1330
+ },
1331
+ requiredFields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
1332
+ cliExamples: [
1333
+ {
1334
+ command: "f5xcctl config rate-limiter create -f {file}.yaml",
1335
+ description: "Create from YAML file",
1336
+ use_case: "file_based",
1337
+ },
1338
+ {
1339
+ command: "f5xcctl config rate-limiter create {name} --namespace {namespace}",
1340
+ description: "Create rate-limiter",
1341
+ use_case: "basic_create",
1342
+ },
1343
+ ],
1344
+ confirmationRequired: false,
1345
+ parameterExamples: {
1346
+ "metadata.namespace": "Staging",
1347
+ },
1348
+ validationRules: {},
1349
+ operationMetadata: {
1350
+ common_errors: [
1351
+ {
1352
+ code: 401,
1353
+ message: "Authentication required",
1354
+ solution: "Provide valid API credentials",
1355
+ },
1356
+ {
1357
+ code: 403,
1358
+ message: "Permission denied",
1359
+ solution: "Check access permissions for this operation",
1360
+ },
1361
+ {
1362
+ code: 404,
1363
+ message: "Resource not found",
1364
+ solution: "Verify resource name, namespace, and path",
1365
+ },
1366
+ {
1367
+ code: 409,
1368
+ message: "Resource already exists",
1369
+ solution: "Use different name or update existing resource",
1370
+ },
1371
+ {
1372
+ code: 429,
1373
+ message: "Rate limit exceeded",
1374
+ solution: "Wait before retrying the operation",
1375
+ },
1376
+ {
1377
+ code: 500,
1378
+ message: "Server error",
1379
+ solution: "Retry operation or contact support",
1380
+ },
1381
+ ],
1382
+ conditions: {
1383
+ postconditions: ["Rate-limiter resource created", "Resource assigned unique identifier"],
1384
+ prerequisites: ["Active namespace"],
1385
+ },
1386
+ confirmation_required: false,
1387
+ danger_level: "medium",
1388
+ examples: [
1389
+ {
1390
+ command: "f5xcctl config rate-limiter create {name} --namespace {namespace}",
1391
+ description: "Create rate-limiter",
1392
+ use_case: "basic_create",
1393
+ },
1394
+ {
1395
+ command: "f5xcctl config rate-limiter create -f {file}.yaml",
1396
+ description: "Create from YAML file",
1397
+ use_case: "file_based",
1398
+ },
1399
+ ],
1400
+ field_docs: {},
1401
+ optional_fields: [],
1402
+ performance_impact: {
1403
+ latency: "low",
1404
+ resource_usage: "low",
1405
+ },
1406
+ purpose: "Create new rate-limiter",
1407
+ required_fields: ["metadata.name", "metadata.namespace", "path.metadata.namespace"],
1408
+ side_effects: {
1409
+ creates: ["rate-limiter"],
1410
+ },
1411
+ },
1412
+ },
1413
+ {
1414
+ toolName: "f5xc-api-ratelimiting-rate-limiter-delete",
1415
+ method: "DELETE",
1416
+ path: "/api/config/namespaces/{namespace}/rate_limiters/{name}",
1417
+ operation: "delete",
1418
+ domain: "rate_limiting",
1419
+ resource: "rate-limiter",
1420
+ summary: "DELETE Rate Limiter.",
1421
+ description: "DELETE the specified rate_limiter.",
1422
+ pathParameters: [
1423
+ {
1424
+ description: "Name\nName of the configuration object.",
1425
+ in: "path",
1426
+ name: "name",
1427
+ required: true,
1428
+ schema: {
1429
+ type: "string",
1430
+ },
1431
+ "x-displayname": "Name",
1432
+ "x-ves-example": "Name",
1433
+ },
1434
+ {
1435
+ description: "Namespace\nNamespace in which the configuration object is present.",
1436
+ in: "path",
1437
+ name: "namespace",
1438
+ required: true,
1439
+ schema: {
1440
+ type: "string",
1441
+ },
1442
+ "x-displayname": "Namespace",
1443
+ "x-ves-example": "Ns1",
1444
+ },
1445
+ ],
1446
+ queryParameters: [],
1447
+ requestBodySchema: {
1448
+ $ref: "#/components/schemas/rate_limiterDeleteRequest",
1449
+ },
1450
+ responseSchema: {},
1451
+ requiredParams: ["body", "name", "namespace"],
1452
+ operationId: "ves.io.schema.rate_limiter.API.Delete",
1453
+ tags: ["Other"],
1454
+ sourceFile: "domains/rate_limiting.json",
1455
+ displayName: null,
1456
+ dangerLevel: "high",
1457
+ sideEffects: {
1458
+ deletes: ["rate-limiter", "contained_resources"],
1459
+ },
1460
+ requiredFields: ["path.name", "path.namespace"],
1461
+ cliExamples: [
1462
+ {
1463
+ command: "f5xcctl config rate-limiter delete {name} --namespace {namespace}",
1464
+ description: "Delete rate-limiter",
1465
+ use_case: "delete",
1466
+ },
1467
+ ],
1468
+ confirmationRequired: true,
1469
+ parameterExamples: {
1470
+ name: "Name",
1471
+ namespace: "Ns1",
1472
+ },
1473
+ validationRules: {},
1474
+ operationMetadata: {
1475
+ common_errors: [
1476
+ {
1477
+ code: 401,
1478
+ message: "Authentication required",
1479
+ solution: "Provide valid API credentials",
1480
+ },
1481
+ {
1482
+ code: 403,
1483
+ message: "Permission denied",
1484
+ solution: "Check access permissions for this operation",
1485
+ },
1486
+ {
1487
+ code: 404,
1488
+ message: "Resource not found",
1489
+ solution: "Verify resource name, namespace, and path",
1490
+ },
1491
+ {
1492
+ code: 409,
1493
+ message: "Resource already exists",
1494
+ solution: "Use different name or update existing resource",
1495
+ },
1496
+ {
1497
+ code: 429,
1498
+ message: "Rate limit exceeded",
1499
+ solution: "Wait before retrying the operation",
1500
+ },
1501
+ {
1502
+ code: 500,
1503
+ message: "Server error",
1504
+ solution: "Retry operation or contact support",
1505
+ },
1506
+ ],
1507
+ conditions: {
1508
+ postconditions: ["Resource removed from system", "Associated resources may be affected"],
1509
+ prerequisites: ["Active namespace"],
1510
+ },
1511
+ confirmation_required: true,
1512
+ danger_level: "high",
1513
+ examples: [
1514
+ {
1515
+ command: "f5xcctl config rate-limiter delete {name} --namespace {namespace}",
1516
+ description: "Delete rate-limiter",
1517
+ use_case: "delete",
1518
+ },
1519
+ ],
1520
+ field_docs: {},
1521
+ optional_fields: [],
1522
+ performance_impact: {
1523
+ latency: "high",
1524
+ resource_usage: "moderate",
1525
+ },
1526
+ purpose: "Delete rate-limiter",
1527
+ required_fields: ["path.name", "path.namespace"],
1528
+ side_effects: {
1529
+ deletes: ["rate-limiter", "contained_resources"],
1530
+ },
1531
+ },
1532
+ },
1533
+ {
1534
+ toolName: "f5xc-api-ratelimiting-rate-limiter-get",
1535
+ method: "GET",
1536
+ path: "/api/config/namespaces/{namespace}/rate_limiters/{name}",
1537
+ operation: "get",
1538
+ domain: "rate_limiting",
1539
+ resource: "rate-limiter",
1540
+ summary: "GET Rate Limiter.",
1541
+ description: "GET rate_limiter reads a given object from storage backend for metadata.namespace.",
1542
+ pathParameters: [
1543
+ {
1544
+ description: "Name\nThe name of the configuration object to be fetched.",
1545
+ in: "path",
1546
+ name: "name",
1547
+ required: true,
1548
+ schema: {
1549
+ type: "string",
1550
+ },
1551
+ "x-displayname": "Name",
1552
+ "x-ves-example": "Name",
1553
+ },
1554
+ {
1555
+ description: "Namespace\nThe namespace in which the configuration object is present.",
1556
+ in: "path",
1557
+ name: "namespace",
1558
+ required: true,
1559
+ schema: {
1560
+ type: "string",
1561
+ },
1562
+ "x-displayname": "Namespace",
1563
+ "x-ves-example": "Ns1",
1564
+ },
1565
+ ],
1566
+ queryParameters: [
1567
+ {
1568
+ 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.",
1569
+ in: "query",
1570
+ name: "response_format",
1571
+ required: false,
1572
+ schema: {
1573
+ default: "GET_RSP_FORMAT_DEFAULT",
1574
+ enum: [
1575
+ "GET_RSP_FORMAT_DEFAULT",
1576
+ "GET_RSP_FORMAT_FOR_CREATE",
1577
+ "GET_RSP_FORMAT_FOR_REPLACE",
1578
+ "GET_RSP_FORMAT_STATUS",
1579
+ "GET_RSP_FORMAT_READ",
1580
+ "GET_RSP_FORMAT_REFERRING_OBJECTS",
1581
+ "GET_RSP_FORMAT_BROKEN_REFERENCES",
1582
+ ],
1583
+ type: "string",
1584
+ },
1585
+ "x-displayname": "Broken Referred Objects.",
1586
+ },
1587
+ ],
1588
+ requestBodySchema: null,
1589
+ responseSchema: {
1590
+ $ref: "#/components/schemas/rate_limiterGetResponse",
1591
+ },
1592
+ requiredParams: ["name", "namespace"],
1593
+ operationId: "ves.io.schema.rate_limiter.API.Get",
1594
+ tags: ["Other"],
1595
+ sourceFile: "domains/rate_limiting.json",
1596
+ displayName: null,
1597
+ dangerLevel: "low",
1598
+ sideEffects: null,
1599
+ requiredFields: ["path.name", "path.namespace"],
1600
+ cliExamples: [
1601
+ {
1602
+ command: "f5xcctl config rate-limiter get {name} --namespace {namespace}",
1603
+ description: "Get specific rate-limiter",
1604
+ use_case: "get_specific",
1605
+ },
1606
+ ],
1607
+ confirmationRequired: false,
1608
+ parameterExamples: {
1609
+ name: "Name",
1610
+ namespace: "Ns1",
1611
+ },
1612
+ validationRules: {},
1613
+ operationMetadata: {
1614
+ common_errors: [
1615
+ {
1616
+ code: 401,
1617
+ message: "Authentication required",
1618
+ solution: "Provide valid API credentials",
1619
+ },
1620
+ {
1621
+ code: 403,
1622
+ message: "Permission denied",
1623
+ solution: "Check access permissions for this operation",
1624
+ },
1625
+ {
1626
+ code: 404,
1627
+ message: "Resource not found",
1628
+ solution: "Verify resource name, namespace, and path",
1629
+ },
1630
+ {
1631
+ code: 409,
1632
+ message: "Resource already exists",
1633
+ solution: "Use different name or update existing resource",
1634
+ },
1635
+ {
1636
+ code: 429,
1637
+ message: "Rate limit exceeded",
1638
+ solution: "Wait before retrying the operation",
1639
+ },
1640
+ {
1641
+ code: 500,
1642
+ message: "Server error",
1643
+ solution: "Retry operation or contact support",
1644
+ },
1645
+ ],
1646
+ conditions: {
1647
+ postconditions: [],
1648
+ prerequisites: ["Active namespace"],
1649
+ },
1650
+ confirmation_required: false,
1651
+ danger_level: "low",
1652
+ examples: [
1653
+ {
1654
+ command: "f5xcctl config rate-limiter get {name} --namespace {namespace}",
1655
+ description: "Get specific rate-limiter",
1656
+ use_case: "get_specific",
1657
+ },
1658
+ ],
1659
+ field_docs: {},
1660
+ optional_fields: [],
1661
+ performance_impact: {
1662
+ latency: "low",
1663
+ resource_usage: "low",
1664
+ },
1665
+ purpose: "Retrieve specific rate-limiter",
1666
+ required_fields: ["path.name", "path.namespace"],
1667
+ side_effects: {},
1668
+ },
1669
+ },
1670
+ {
1671
+ toolName: "f5xc-api-ratelimiting-rate-limiter-list",
1672
+ method: "GET",
1673
+ path: "/api/config/namespaces/{namespace}/rate_limiters",
1674
+ operation: "list",
1675
+ domain: "rate_limiting",
1676
+ resource: "rate-limiter",
1677
+ summary: "List Rate Limiter.",
1678
+ description: "List the set of rate_limiter in a namespace.",
1679
+ pathParameters: [
1680
+ {
1681
+ description: "Namespace\nNamespace to scope the listing of rate_limiter.",
1682
+ in: "path",
1683
+ name: "namespace",
1684
+ required: true,
1685
+ schema: {
1686
+ type: "string",
1687
+ },
1688
+ "x-displayname": "Namespace",
1689
+ "x-ves-example": "Ns1",
1690
+ },
1691
+ ],
1692
+ queryParameters: [
1693
+ {
1694
+ description: "A LabelSelectorType expression that every item in list response will satisfy.",
1695
+ in: "query",
1696
+ name: "label_filter",
1697
+ required: false,
1698
+ schema: {
1699
+ type: "string",
1700
+ },
1701
+ "x-displayname": "Label Filter.",
1702
+ "x-ves-example": "Env in (staging, testing), tier in (web, db)",
1703
+ },
1704
+ {
1705
+ description: 'X-example: ""\nExtra fields to return along with summary fields.',
1706
+ in: "query",
1707
+ name: "report_fields",
1708
+ required: false,
1709
+ schema: {
1710
+ items: {
1711
+ type: "string",
1712
+ },
1713
+ type: "array",
1714
+ },
1715
+ "x-displayname": "Report Fields.",
1716
+ },
1717
+ {
1718
+ description: 'X-example: ""\nExtra status fields to return along with summary fields.',
1719
+ in: "query",
1720
+ name: "report_status_fields",
1721
+ required: false,
1722
+ schema: {
1723
+ items: {
1724
+ type: "string",
1725
+ },
1726
+ type: "array",
1727
+ },
1728
+ "x-displayname": "Report Status Fields.",
1729
+ },
1730
+ ],
1731
+ requestBodySchema: null,
1732
+ responseSchema: {
1733
+ $ref: "#/components/schemas/rate_limiterListResponse",
1734
+ },
1735
+ requiredParams: ["namespace"],
1736
+ operationId: "ves.io.schema.rate_limiter.API.List",
1737
+ tags: ["Other"],
1738
+ sourceFile: "domains/rate_limiting.json",
1739
+ displayName: null,
1740
+ dangerLevel: "low",
1741
+ sideEffects: null,
1742
+ requiredFields: ["path.namespace"],
1743
+ cliExamples: [
1744
+ {
1745
+ command: "f5xcctl config rate-limiter list --namespace {namespace}",
1746
+ description: "List all rate-limiters",
1747
+ use_case: "list_all",
1748
+ },
1749
+ ],
1750
+ confirmationRequired: false,
1751
+ parameterExamples: {
1752
+ label_filter: "Env in (staging, testing), tier in (web, db)",
1753
+ namespace: "Ns1",
1754
+ },
1755
+ validationRules: {},
1756
+ operationMetadata: {
1757
+ common_errors: [
1758
+ {
1759
+ code: 401,
1760
+ message: "Authentication required",
1761
+ solution: "Provide valid API credentials",
1762
+ },
1763
+ {
1764
+ code: 403,
1765
+ message: "Permission denied",
1766
+ solution: "Check access permissions for this operation",
1767
+ },
1768
+ {
1769
+ code: 404,
1770
+ message: "Resource not found",
1771
+ solution: "Verify resource name, namespace, and path",
1772
+ },
1773
+ {
1774
+ code: 409,
1775
+ message: "Resource already exists",
1776
+ solution: "Use different name or update existing resource",
1777
+ },
1778
+ {
1779
+ code: 429,
1780
+ message: "Rate limit exceeded",
1781
+ solution: "Wait before retrying the operation",
1782
+ },
1783
+ {
1784
+ code: 500,
1785
+ message: "Server error",
1786
+ solution: "Retry operation or contact support",
1787
+ },
1788
+ ],
1789
+ conditions: {
1790
+ postconditions: [],
1791
+ prerequisites: ["Active namespace"],
1792
+ },
1793
+ confirmation_required: false,
1794
+ danger_level: "low",
1795
+ examples: [
1796
+ {
1797
+ command: "f5xcctl config rate-limiter list --namespace {namespace}",
1798
+ description: "List all rate-limiters",
1799
+ use_case: "list_all",
1800
+ },
1801
+ ],
1802
+ field_docs: {},
1803
+ optional_fields: [],
1804
+ performance_impact: {
1805
+ latency: "moderate",
1806
+ resource_usage: "moderate",
1807
+ },
1808
+ purpose: "List all rate-limiters",
1809
+ required_fields: ["path.namespace"],
1810
+ side_effects: {},
1811
+ },
1812
+ },
1813
+ {
1814
+ toolName: "f5xc-api-ratelimiting-rate-limiter-update",
1815
+ method: "PUT",
1816
+ path: "/api/config/namespaces/{metadata.namespace}/rate_limiters/{metadata.name}",
1817
+ operation: "update",
1818
+ domain: "rate_limiting",
1819
+ resource: "rate-limiter",
1820
+ summary: "Replace Rate Limiter.",
1821
+ description: "Replace rate_limiter replaces an existing object in the storage backend for metadata.namespace.",
1822
+ pathParameters: [
1823
+ {
1824
+ description: "Name\nThe configuration object to be replaced will be looked up by name.",
1825
+ in: "path",
1826
+ name: "metadata.name",
1827
+ required: true,
1828
+ schema: {
1829
+ type: "string",
1830
+ },
1831
+ "x-displayname": "Name",
1832
+ "x-ves-example": "Example-corp-web.",
1833
+ },
1834
+ {
1835
+ 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 ""',
1836
+ in: "path",
1837
+ name: "metadata.namespace",
1838
+ required: true,
1839
+ schema: {
1840
+ type: "string",
1841
+ },
1842
+ "x-displayname": "Namespace",
1843
+ "x-ves-example": "Staging",
1844
+ },
1845
+ ],
1846
+ queryParameters: [],
1847
+ requestBodySchema: {
1848
+ $ref: "#/components/schemas/rate_limiterReplaceRequest",
1849
+ },
1850
+ responseSchema: {
1851
+ $ref: "#/components/schemas/rate_limiterReplaceResponse",
1852
+ },
1853
+ requiredParams: ["body", "metadata.name", "metadata.namespace"],
1854
+ operationId: "ves.io.schema.rate_limiter.API.Replace",
1855
+ tags: ["Other"],
1856
+ sourceFile: "domains/rate_limiting.json",
1857
+ displayName: null,
1858
+ dangerLevel: "medium",
1859
+ sideEffects: {
1860
+ modifies: ["rate-limiter"],
1861
+ },
1862
+ requiredFields: ["path.metadata.name", "path.metadata.namespace"],
1863
+ cliExamples: [
1864
+ {
1865
+ command: "f5xcctl config rate-limiter update {name} --namespace {namespace} -f {file}.yaml",
1866
+ description: "Update rate-limiter",
1867
+ use_case: "update",
1868
+ },
1869
+ ],
1870
+ confirmationRequired: false,
1871
+ parameterExamples: {
1872
+ "metadata.name": "Example-corp-web.",
1873
+ "metadata.namespace": "Staging",
1874
+ },
1875
+ validationRules: {},
1876
+ operationMetadata: {
1877
+ common_errors: [
1878
+ {
1879
+ code: 401,
1880
+ message: "Authentication required",
1881
+ solution: "Provide valid API credentials",
1882
+ },
1883
+ {
1884
+ code: 403,
1885
+ message: "Permission denied",
1886
+ solution: "Check access permissions for this operation",
1887
+ },
1888
+ {
1889
+ code: 404,
1890
+ message: "Resource not found",
1891
+ solution: "Verify resource name, namespace, and path",
1892
+ },
1893
+ {
1894
+ code: 409,
1895
+ message: "Resource already exists",
1896
+ solution: "Use different name or update existing resource",
1897
+ },
1898
+ {
1899
+ code: 429,
1900
+ message: "Rate limit exceeded",
1901
+ solution: "Wait before retrying the operation",
1902
+ },
1903
+ {
1904
+ code: 500,
1905
+ message: "Server error",
1906
+ solution: "Retry operation or contact support",
1907
+ },
1908
+ ],
1909
+ conditions: {
1910
+ postconditions: ["Resource updated with new values"],
1911
+ prerequisites: ["Active namespace"],
1912
+ },
1913
+ confirmation_required: false,
1914
+ danger_level: "medium",
1915
+ examples: [
1916
+ {
1917
+ command: "f5xcctl config rate-limiter update {name} --namespace {namespace} -f {file}.yaml",
1918
+ description: "Update rate-limiter",
1919
+ use_case: "update",
1920
+ },
1921
+ ],
1922
+ field_docs: {},
1923
+ optional_fields: [],
1924
+ performance_impact: {
1925
+ latency: "low",
1926
+ resource_usage: "low",
1927
+ },
1928
+ purpose: "Replace existing rate-limiter",
1929
+ required_fields: ["path.metadata.name", "path.metadata.namespace"],
1930
+ side_effects: {
1931
+ modifies: ["rate-limiter"],
1932
+ },
1933
+ },
1934
+ },
1935
+ ];
1936
+ export default rate_limitingTools;
1937
+ //# sourceMappingURL=index.js.map