@robinmordasiewicz/f5xc-terraform-mcp 3.3.0 → 3.5.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.
- package/README.md +1 -1
- package/dist/docs/data-sources/bgp.md +2 -2
- package/dist/docs/data-sources/certificate.md +2 -2
- package/dist/docs/data-sources/log_receiver.md +2 -2
- package/dist/docs/data-sources/network_policy.md +2 -2
- package/dist/docs/data-sources/site.md +2 -2
- package/dist/docs/data-sources/workload.md +2 -2
- package/dist/docs/index.md +276 -0
- package/dist/docs/resources/bgp.md +238 -4
- package/dist/docs/resources/certificate.md +4 -56
- package/dist/docs/resources/cloud_connect.md +2 -2
- package/dist/docs/resources/log_receiver.md +44 -825
- package/dist/docs/resources/network_policy.md +217 -38
- package/dist/docs/resources/site.md +527 -233
- package/dist/docs/resources/workload.md +2951 -9
- package/dist/docs/specifications/api/CHANGELOG.md +4 -4
- package/dist/docs/specifications/api/README.md +1 -1
- package/dist/docs/specifications/api/domains/admin_console_and_ui.json +25 -25
- package/dist/docs/specifications/api/domains/ai_services.json +21 -21
- package/dist/docs/specifications/api/domains/api.json +173 -173
- package/dist/docs/specifications/api/domains/authentication.json +45 -45
- package/dist/docs/specifications/api/domains/bigip.json +94 -94
- package/dist/docs/specifications/api/domains/billing_and_usage.json +63 -63
- package/dist/docs/specifications/api/domains/blindfold.json +109 -109
- package/dist/docs/specifications/api/domains/bot_and_threat_defense.json +65 -65
- package/dist/docs/specifications/api/domains/cdn.json +177 -177
- package/dist/docs/specifications/api/domains/ce_management.json +76 -76
- package/dist/docs/specifications/api/domains/certificates.json +75 -75
- package/dist/docs/specifications/api/domains/cloud_infrastructure.json +112 -112
- package/dist/docs/specifications/api/domains/container_services.json +91 -91
- package/dist/docs/specifications/api/domains/data_and_privacy_security.json +66 -66
- package/dist/docs/specifications/api/domains/data_intelligence.json +62 -62
- package/dist/docs/specifications/api/domains/ddos.json +154 -154
- package/dist/docs/specifications/api/domains/dns.json +148 -148
- package/dist/docs/specifications/api/domains/managed_kubernetes.json +85 -85
- package/dist/docs/specifications/api/domains/marketplace.json +103 -103
- package/dist/docs/specifications/api/domains/network.json +230 -230
- package/dist/docs/specifications/api/domains/network_security.json +187 -187
- package/dist/docs/specifications/api/domains/nginx_one.json +62 -62
- package/dist/docs/specifications/api/domains/object_storage.json +12 -12
- package/dist/docs/specifications/api/domains/observability.json +102 -102
- package/dist/docs/specifications/api/domains/rate_limiting.json +52 -52
- package/dist/docs/specifications/api/domains/secops_and_incident_response.json +36 -36
- package/dist/docs/specifications/api/domains/service_mesh.json +119 -119
- package/dist/docs/specifications/api/domains/shape.json +313 -313
- package/dist/docs/specifications/api/domains/sites.json +349 -349
- package/dist/docs/specifications/api/domains/statistics.json +225 -225
- package/dist/docs/specifications/api/domains/support.json +108 -108
- package/dist/docs/specifications/api/domains/telemetry_and_insights.json +72 -72
- package/dist/docs/specifications/api/domains/tenant_and_identity.json +268 -268
- package/dist/docs/specifications/api/domains/threat_campaign.json +66 -66
- package/dist/docs/specifications/api/domains/users.json +66 -66
- package/dist/docs/specifications/api/domains/virtual.json +244 -244
- package/dist/docs/specifications/api/domains/vpm_and_node_management.json +1 -1
- package/dist/docs/specifications/api/domains/waf.json +139 -139
- package/dist/docs/specifications/api/index.json +12 -12
- package/dist/docs/specifications/api/openapi.json +2600 -2600
- package/dist/docs/specifications/api/openapi.yaml +2600 -2600
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -4
- package/dist/index.js.map +1 -1
- package/dist/metadata/error-patterns.json +192 -0
- package/dist/metadata/resource-metadata.json +13095 -0
- package/dist/metadata/validation-patterns.json +69 -0
- package/dist/schemas/common.d.ts +33 -0
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +32 -0
- package/dist/schemas/common.js.map +1 -1
- package/dist/services/documentation.d.ts.map +1 -1
- package/dist/services/documentation.js +9 -0
- package/dist/services/documentation.js.map +1 -1
- package/dist/services/metadata.d.ts +193 -0
- package/dist/services/metadata.d.ts.map +1 -0
- package/dist/services/metadata.js +367 -0
- package/dist/services/metadata.js.map +1 -0
- package/dist/tools/discover.d.ts.map +1 -1
- package/dist/tools/discover.js +8 -0
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/metadata.d.ts +19 -0
- package/dist/tools/metadata.d.ts.map +1 -0
- package/dist/tools/metadata.js +612 -0
- package/dist/tools/metadata.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
* - Consolidated API specification tool (search/get/endpoints/definitions)
|
|
11
11
|
* - Consolidated subscription tier tool
|
|
12
12
|
* - Consolidated addon service tool
|
|
13
|
+
* - Resource metadata tool for deterministic AI configuration generation
|
|
13
14
|
* - Provider summary tool
|
|
14
15
|
*
|
|
15
16
|
* Token Optimization:
|
|
16
|
-
* - 14 tools consolidated to
|
|
17
|
+
* - 14 tools consolidated to 7 tools (~75% token reduction)
|
|
17
18
|
* - Optimized descriptions using shared parameter descriptions
|
|
18
19
|
* - Discovery meta-tool enables lazy schema loading
|
|
19
20
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
package/dist/index.js
CHANGED
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
* - Consolidated API specification tool (search/get/endpoints/definitions)
|
|
11
11
|
* - Consolidated subscription tier tool
|
|
12
12
|
* - Consolidated addon service tool
|
|
13
|
+
* - Resource metadata tool for deterministic AI configuration generation
|
|
13
14
|
* - Provider summary tool
|
|
14
15
|
*
|
|
15
16
|
* Token Optimization:
|
|
16
|
-
* - 14 tools consolidated to
|
|
17
|
+
* - 14 tools consolidated to 7 tools (~75% token reduction)
|
|
17
18
|
* - Optimized descriptions using shared parameter descriptions
|
|
18
19
|
* - Discovery meta-tool enables lazy schema loading
|
|
19
20
|
*
|
|
@@ -40,8 +41,9 @@ import { handleDocs, DOCS_TOOL_DEFINITION } from './tools/docs.js';
|
|
|
40
41
|
import { handleApi, API_TOOL_DEFINITION } from './tools/api.js';
|
|
41
42
|
import { handleSubscription, SUBSCRIPTION_TOOL_DEFINITION } from './tools/subscription.js';
|
|
42
43
|
import { handleAddon, ADDON_TOOL_DEFINITION } from './tools/addon.js';
|
|
44
|
+
import { handleMetadata, METADATA_TOOL_DEFINITION } from './tools/metadata.js';
|
|
43
45
|
// Consolidated schemas
|
|
44
|
-
import { DiscoverSchema, DocsSchema, ApiSchema, SubscriptionSchema, AddonSchema, } from './schemas/common.js';
|
|
46
|
+
import { DiscoverSchema, DocsSchema, ApiSchema, SubscriptionSchema, AddonSchema, MetadataSchema, } from './schemas/common.js';
|
|
45
47
|
// Legacy schemas for get_summary tool
|
|
46
48
|
import { GetSummarySchema } from './schemas/index.js';
|
|
47
49
|
// Constants
|
|
@@ -164,7 +166,26 @@ server.registerTool(ADDON_TOOL_DEFINITION.name, {
|
|
|
164
166
|
};
|
|
165
167
|
});
|
|
166
168
|
// =============================================================================
|
|
167
|
-
// TOOL 6:
|
|
169
|
+
// TOOL 6: METADATA TOOL (NEW)
|
|
170
|
+
// =============================================================================
|
|
171
|
+
server.registerTool(METADATA_TOOL_DEFINITION.name, {
|
|
172
|
+
title: 'F5XC Resource Metadata',
|
|
173
|
+
description: METADATA_TOOL_DEFINITION.description,
|
|
174
|
+
inputSchema: MetadataSchema,
|
|
175
|
+
annotations: {
|
|
176
|
+
readOnlyHint: true,
|
|
177
|
+
destructiveHint: false,
|
|
178
|
+
idempotentHint: true,
|
|
179
|
+
openWorldHint: false,
|
|
180
|
+
},
|
|
181
|
+
}, async (params) => {
|
|
182
|
+
const result = await handleMetadata(params);
|
|
183
|
+
return {
|
|
184
|
+
content: [{ type: 'text', text: result }],
|
|
185
|
+
};
|
|
186
|
+
});
|
|
187
|
+
// =============================================================================
|
|
188
|
+
// TOOL 7: SUMMARY TOOL (KEEP AS-IS)
|
|
168
189
|
// =============================================================================
|
|
169
190
|
server.registerTool('f5xc_terraform_get_summary', {
|
|
170
191
|
title: 'F5XC Provider Summary',
|
|
@@ -180,6 +201,12 @@ server.registerTool('f5xc_terraform_get_summary', {
|
|
|
180
201
|
const docsSummary = getDocumentationSummary();
|
|
181
202
|
const apiSummary = getApiSpecsSummary();
|
|
182
203
|
const output = {
|
|
204
|
+
provider: {
|
|
205
|
+
name: 'robinmordasiewicz/f5xc',
|
|
206
|
+
registry_url: 'https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest',
|
|
207
|
+
github_url: 'https://github.com/robinmordasiewicz/terraform-provider-f5xc',
|
|
208
|
+
npm_package: '@robinmordasiewicz/f5xc-terraform-mcp',
|
|
209
|
+
},
|
|
183
210
|
documentation: {
|
|
184
211
|
total: Object.values(docsSummary).reduce((a, b) => a + b, 0),
|
|
185
212
|
by_type: docsSummary,
|
|
@@ -194,6 +221,47 @@ server.registerTool('f5xc_terraform_get_summary', {
|
|
|
194
221
|
const lines = [
|
|
195
222
|
'# F5 Distributed Cloud Terraform Provider',
|
|
196
223
|
'',
|
|
224
|
+
'## Provider Information',
|
|
225
|
+
'',
|
|
226
|
+
'| Property | Value |',
|
|
227
|
+
'|----------|-------|',
|
|
228
|
+
'| **Provider Name** | `robinmordasiewicz/f5xc` |',
|
|
229
|
+
'| **Registry URL** | https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest |',
|
|
230
|
+
'| **GitHub** | https://github.com/robinmordasiewicz/terraform-provider-f5xc |',
|
|
231
|
+
'| **npm Package** | `@robinmordasiewicz/f5xc-terraform-mcp` |',
|
|
232
|
+
'',
|
|
233
|
+
'## Quick Start',
|
|
234
|
+
'',
|
|
235
|
+
'### Terraform Configuration',
|
|
236
|
+
'',
|
|
237
|
+
'```hcl',
|
|
238
|
+
'terraform {',
|
|
239
|
+
' required_providers {',
|
|
240
|
+
' f5xc = {',
|
|
241
|
+
' source = "robinmordasiewicz/f5xc"',
|
|
242
|
+
' }',
|
|
243
|
+
' }',
|
|
244
|
+
'}',
|
|
245
|
+
'',
|
|
246
|
+
'provider "f5xc" {',
|
|
247
|
+
' # API Token authentication (recommended)',
|
|
248
|
+
' api_url = "https://your-tenant.console.ves.volterra.io"',
|
|
249
|
+
' api_token = var.f5xc_api_token',
|
|
250
|
+
'}',
|
|
251
|
+
'```',
|
|
252
|
+
'',
|
|
253
|
+
'### Environment Variables',
|
|
254
|
+
'',
|
|
255
|
+
'| Variable | Description |',
|
|
256
|
+
'|----------|-------------|',
|
|
257
|
+
'| `F5XC_API_URL` | F5 Distributed Cloud API URL |',
|
|
258
|
+
'| `F5XC_API_TOKEN` | API Token for authentication |',
|
|
259
|
+
'| `F5XC_P12_FILE` | Path to P12 certificate file |',
|
|
260
|
+
'| `F5XC_P12_PASSWORD` | Password for P12 certificate |',
|
|
261
|
+
'| `F5XC_CERT` | Path to PEM certificate file |',
|
|
262
|
+
'| `F5XC_KEY` | Path to PEM private key file |',
|
|
263
|
+
'| `F5XC_CACERT` | Path to CA certificate file |',
|
|
264
|
+
'',
|
|
197
265
|
'## Documentation',
|
|
198
266
|
'',
|
|
199
267
|
`Total: ${output.documentation.total} items`,
|
|
@@ -214,9 +282,12 @@ server.registerTool('f5xc_terraform_get_summary', {
|
|
|
214
282
|
lines.push('- `f5xc_terraform_api` - Query API specs (operations: search, get, find_endpoints, get_definition, list_definitions)');
|
|
215
283
|
lines.push('- `f5xc_terraform_subscription` - Check subscription tiers (operations: resource, property)');
|
|
216
284
|
lines.push('- `f5xc_terraform_addon` - Addon services (operations: list, check, workflow)');
|
|
285
|
+
lines.push('- `f5xc_terraform_metadata` - Resource metadata for deterministic AI config generation (operations: oneof, validation, defaults, enums, attribute, requires_replace, summary)');
|
|
217
286
|
lines.push('- `f5xc_terraform_get_summary` - This summary');
|
|
218
287
|
lines.push('');
|
|
219
|
-
lines.push('> **Token Optimization**: 14 tools consolidated to
|
|
288
|
+
lines.push('> **Token Optimization**: 14 tools consolidated to 7 tools (~75% reduction)');
|
|
289
|
+
lines.push('');
|
|
290
|
+
lines.push('> **Note**: Use `f5xc_terraform_docs` with `operation: "get", name: "provider"` for complete provider documentation.');
|
|
220
291
|
textContent = lines.join('\n');
|
|
221
292
|
}
|
|
222
293
|
else {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"description": "Common F5XC Terraform provider error patterns and remediation guidance",
|
|
4
|
+
"error_codes": {
|
|
5
|
+
"NOT_FOUND": {
|
|
6
|
+
"status": 404,
|
|
7
|
+
"causes": [
|
|
8
|
+
"Resource deleted outside Terraform",
|
|
9
|
+
"Typo in resource name or namespace",
|
|
10
|
+
"Wrong namespace specified",
|
|
11
|
+
"Resource never existed"
|
|
12
|
+
],
|
|
13
|
+
"remediation": [
|
|
14
|
+
"Run 'terraform refresh' to sync state",
|
|
15
|
+
"Check resource exists in F5XC console",
|
|
16
|
+
"Verify namespace is correct",
|
|
17
|
+
"Remove resource from state: terraform state rm <resource>"
|
|
18
|
+
],
|
|
19
|
+
"operations": ["Read", "Update", "Delete"]
|
|
20
|
+
},
|
|
21
|
+
"CONFLICT": {
|
|
22
|
+
"status": 409,
|
|
23
|
+
"causes": [
|
|
24
|
+
"Resource already exists with same name",
|
|
25
|
+
"Concurrent modification detected",
|
|
26
|
+
"State drift from external changes"
|
|
27
|
+
],
|
|
28
|
+
"remediation": [
|
|
29
|
+
"Import existing resource: terraform import <resource> <id>",
|
|
30
|
+
"Use a different name",
|
|
31
|
+
"Refresh state and retry: terraform refresh"
|
|
32
|
+
],
|
|
33
|
+
"operations": ["Create"]
|
|
34
|
+
},
|
|
35
|
+
"UNAUTHORIZED": {
|
|
36
|
+
"status": 401,
|
|
37
|
+
"causes": [
|
|
38
|
+
"API token expired",
|
|
39
|
+
"Invalid credentials",
|
|
40
|
+
"Certificate expired",
|
|
41
|
+
"Token revoked"
|
|
42
|
+
],
|
|
43
|
+
"remediation": [
|
|
44
|
+
"Rotate API token in F5XC console",
|
|
45
|
+
"Check F5XC_API_TOKEN environment variable",
|
|
46
|
+
"Verify P12 certificate is valid and not expired",
|
|
47
|
+
"Regenerate credentials and update provider config"
|
|
48
|
+
],
|
|
49
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
50
|
+
},
|
|
51
|
+
"FORBIDDEN": {
|
|
52
|
+
"status": 403,
|
|
53
|
+
"causes": [
|
|
54
|
+
"Insufficient permissions for operation",
|
|
55
|
+
"Namespace access denied",
|
|
56
|
+
"Feature requires higher subscription tier",
|
|
57
|
+
"Resource in protected namespace"
|
|
58
|
+
],
|
|
59
|
+
"remediation": [
|
|
60
|
+
"Check user/service account permissions in F5XC",
|
|
61
|
+
"Verify namespace access rights",
|
|
62
|
+
"Check subscription tier: f5xc_terraform_subscription(operation: 'resource')",
|
|
63
|
+
"Request elevated permissions from admin"
|
|
64
|
+
],
|
|
65
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
66
|
+
},
|
|
67
|
+
"RATE_LIMIT": {
|
|
68
|
+
"status": 429,
|
|
69
|
+
"causes": [
|
|
70
|
+
"Too many API requests",
|
|
71
|
+
"Batch operation too large",
|
|
72
|
+
"Concurrent apply operations"
|
|
73
|
+
],
|
|
74
|
+
"remediation": [
|
|
75
|
+
"Wait 60 seconds and retry (automatic exponential backoff)",
|
|
76
|
+
"Reduce parallelism: terraform apply -parallelism=5",
|
|
77
|
+
"Split large operations into batches",
|
|
78
|
+
"Implement request throttling"
|
|
79
|
+
],
|
|
80
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
81
|
+
},
|
|
82
|
+
"VALIDATION_ERROR": {
|
|
83
|
+
"status": 400,
|
|
84
|
+
"causes": [
|
|
85
|
+
"Invalid field value",
|
|
86
|
+
"Missing required field",
|
|
87
|
+
"Field value exceeds limits",
|
|
88
|
+
"Invalid field combination"
|
|
89
|
+
],
|
|
90
|
+
"remediation": [
|
|
91
|
+
"Check validation patterns: f5xc_terraform_metadata(operation: 'validation')",
|
|
92
|
+
"Check required fields: f5xc_terraform_metadata(operation: 'requires_replace')",
|
|
93
|
+
"Check enum values: f5xc_terraform_metadata(operation: 'enums')",
|
|
94
|
+
"Check OneOf constraints: f5xc_terraform_metadata(operation: 'oneof')"
|
|
95
|
+
],
|
|
96
|
+
"operations": ["Create", "Update"]
|
|
97
|
+
},
|
|
98
|
+
"INTERNAL_ERROR": {
|
|
99
|
+
"status": 500,
|
|
100
|
+
"causes": [
|
|
101
|
+
"F5XC API internal error",
|
|
102
|
+
"Temporary service unavailability",
|
|
103
|
+
"Backend processing failure"
|
|
104
|
+
],
|
|
105
|
+
"remediation": [
|
|
106
|
+
"Retry the operation after a delay",
|
|
107
|
+
"Check F5XC status page for incidents",
|
|
108
|
+
"Contact F5 support if persistent"
|
|
109
|
+
],
|
|
110
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
111
|
+
},
|
|
112
|
+
"SERVICE_UNAVAILABLE": {
|
|
113
|
+
"status": 503,
|
|
114
|
+
"causes": [
|
|
115
|
+
"F5XC API temporarily unavailable",
|
|
116
|
+
"Maintenance in progress",
|
|
117
|
+
"Capacity limits reached"
|
|
118
|
+
],
|
|
119
|
+
"remediation": [
|
|
120
|
+
"Wait and retry with exponential backoff",
|
|
121
|
+
"Check F5XC status page",
|
|
122
|
+
"Try again during off-peak hours"
|
|
123
|
+
],
|
|
124
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
125
|
+
},
|
|
126
|
+
"TIMEOUT": {
|
|
127
|
+
"status": 0,
|
|
128
|
+
"causes": [
|
|
129
|
+
"Network connectivity issues",
|
|
130
|
+
"API response too slow",
|
|
131
|
+
"Large resource operation",
|
|
132
|
+
"Firewall blocking requests"
|
|
133
|
+
],
|
|
134
|
+
"remediation": [
|
|
135
|
+
"Check network connectivity to F5XC API",
|
|
136
|
+
"Increase timeout: provider { timeout = \"5m\" }",
|
|
137
|
+
"Verify firewall allows HTTPS to *.volterra.io",
|
|
138
|
+
"Check for VPN or proxy issues"
|
|
139
|
+
],
|
|
140
|
+
"operations": ["Create", "Read", "Update", "Delete"]
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"common_patterns": {
|
|
144
|
+
"drift_detected": {
|
|
145
|
+
"pattern": "Resource Drift Detected",
|
|
146
|
+
"cause": "Resource modified outside Terraform",
|
|
147
|
+
"remediation": "Run 'terraform refresh' then 'terraform plan' to review changes"
|
|
148
|
+
},
|
|
149
|
+
"validation_failed": {
|
|
150
|
+
"pattern": "Invalid value for",
|
|
151
|
+
"cause": "Field value doesn't match validation rules",
|
|
152
|
+
"remediation": "Check f5xc_terraform_metadata(operation: 'validation') for patterns"
|
|
153
|
+
},
|
|
154
|
+
"oneof_conflict": {
|
|
155
|
+
"pattern": "Conflicting attributes",
|
|
156
|
+
"cause": "Multiple mutually exclusive fields set",
|
|
157
|
+
"remediation": "Check f5xc_terraform_metadata(operation: 'oneof') for constraints"
|
|
158
|
+
},
|
|
159
|
+
"missing_dependency": {
|
|
160
|
+
"pattern": "depends on resource that doesn't exist",
|
|
161
|
+
"cause": "Dependency not created or in different namespace",
|
|
162
|
+
"remediation": "Check f5xc_terraform_metadata(operation: 'dependencies') for required resources"
|
|
163
|
+
},
|
|
164
|
+
"subscription_required": {
|
|
165
|
+
"pattern": "feature requires.*subscription",
|
|
166
|
+
"cause": "Current subscription tier doesn't include this feature",
|
|
167
|
+
"remediation": "Check f5xc_terraform_subscription(operation: 'resource') for tier requirements"
|
|
168
|
+
},
|
|
169
|
+
"import_format": {
|
|
170
|
+
"pattern": "cannot import",
|
|
171
|
+
"cause": "Wrong import ID format used",
|
|
172
|
+
"remediation": "Use f5xc_terraform_metadata(operation: 'attribute') to check import_format"
|
|
173
|
+
},
|
|
174
|
+
"namespace_not_found": {
|
|
175
|
+
"pattern": "namespace.*not found|namespace does not exist",
|
|
176
|
+
"cause": "Target namespace doesn't exist or inaccessible",
|
|
177
|
+
"remediation": "Create namespace first or check namespace name spelling"
|
|
178
|
+
},
|
|
179
|
+
"secret_encryption": {
|
|
180
|
+
"pattern": "blindfold|secret.*invalid|encryption.*failed",
|
|
181
|
+
"cause": "Secret encryption/decryption issue",
|
|
182
|
+
"remediation": "Check SecretPolicy exists and blindfold function parameters"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"diagnostic_tips": {
|
|
186
|
+
"enable_debug": "Set TF_LOG=DEBUG for detailed API request/response logs",
|
|
187
|
+
"check_state": "Run 'terraform state list' to see managed resources",
|
|
188
|
+
"validate_config": "Run 'terraform validate' before apply",
|
|
189
|
+
"plan_first": "Always run 'terraform plan' before 'terraform apply'",
|
|
190
|
+
"check_provider_version": "Ensure provider version is current: terraform providers"
|
|
191
|
+
}
|
|
192
|
+
}
|