@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.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/data-sources/bgp.md +2 -2
  3. package/dist/docs/data-sources/certificate.md +2 -2
  4. package/dist/docs/data-sources/log_receiver.md +2 -2
  5. package/dist/docs/data-sources/network_policy.md +2 -2
  6. package/dist/docs/data-sources/site.md +2 -2
  7. package/dist/docs/data-sources/workload.md +2 -2
  8. package/dist/docs/index.md +276 -0
  9. package/dist/docs/resources/bgp.md +238 -4
  10. package/dist/docs/resources/certificate.md +4 -56
  11. package/dist/docs/resources/cloud_connect.md +2 -2
  12. package/dist/docs/resources/log_receiver.md +44 -825
  13. package/dist/docs/resources/network_policy.md +217 -38
  14. package/dist/docs/resources/site.md +527 -233
  15. package/dist/docs/resources/workload.md +2951 -9
  16. package/dist/docs/specifications/api/CHANGELOG.md +4 -4
  17. package/dist/docs/specifications/api/README.md +1 -1
  18. package/dist/docs/specifications/api/domains/admin_console_and_ui.json +25 -25
  19. package/dist/docs/specifications/api/domains/ai_services.json +21 -21
  20. package/dist/docs/specifications/api/domains/api.json +173 -173
  21. package/dist/docs/specifications/api/domains/authentication.json +45 -45
  22. package/dist/docs/specifications/api/domains/bigip.json +94 -94
  23. package/dist/docs/specifications/api/domains/billing_and_usage.json +63 -63
  24. package/dist/docs/specifications/api/domains/blindfold.json +109 -109
  25. package/dist/docs/specifications/api/domains/bot_and_threat_defense.json +65 -65
  26. package/dist/docs/specifications/api/domains/cdn.json +177 -177
  27. package/dist/docs/specifications/api/domains/ce_management.json +76 -76
  28. package/dist/docs/specifications/api/domains/certificates.json +75 -75
  29. package/dist/docs/specifications/api/domains/cloud_infrastructure.json +112 -112
  30. package/dist/docs/specifications/api/domains/container_services.json +91 -91
  31. package/dist/docs/specifications/api/domains/data_and_privacy_security.json +66 -66
  32. package/dist/docs/specifications/api/domains/data_intelligence.json +62 -62
  33. package/dist/docs/specifications/api/domains/ddos.json +154 -154
  34. package/dist/docs/specifications/api/domains/dns.json +148 -148
  35. package/dist/docs/specifications/api/domains/managed_kubernetes.json +85 -85
  36. package/dist/docs/specifications/api/domains/marketplace.json +103 -103
  37. package/dist/docs/specifications/api/domains/network.json +230 -230
  38. package/dist/docs/specifications/api/domains/network_security.json +187 -187
  39. package/dist/docs/specifications/api/domains/nginx_one.json +62 -62
  40. package/dist/docs/specifications/api/domains/object_storage.json +12 -12
  41. package/dist/docs/specifications/api/domains/observability.json +102 -102
  42. package/dist/docs/specifications/api/domains/rate_limiting.json +52 -52
  43. package/dist/docs/specifications/api/domains/secops_and_incident_response.json +36 -36
  44. package/dist/docs/specifications/api/domains/service_mesh.json +119 -119
  45. package/dist/docs/specifications/api/domains/shape.json +313 -313
  46. package/dist/docs/specifications/api/domains/sites.json +349 -349
  47. package/dist/docs/specifications/api/domains/statistics.json +225 -225
  48. package/dist/docs/specifications/api/domains/support.json +108 -108
  49. package/dist/docs/specifications/api/domains/telemetry_and_insights.json +72 -72
  50. package/dist/docs/specifications/api/domains/tenant_and_identity.json +268 -268
  51. package/dist/docs/specifications/api/domains/threat_campaign.json +66 -66
  52. package/dist/docs/specifications/api/domains/users.json +66 -66
  53. package/dist/docs/specifications/api/domains/virtual.json +244 -244
  54. package/dist/docs/specifications/api/domains/vpm_and_node_management.json +1 -1
  55. package/dist/docs/specifications/api/domains/waf.json +139 -139
  56. package/dist/docs/specifications/api/index.json +12 -12
  57. package/dist/docs/specifications/api/openapi.json +2600 -2600
  58. package/dist/docs/specifications/api/openapi.yaml +2600 -2600
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +75 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/metadata/error-patterns.json +192 -0
  64. package/dist/metadata/resource-metadata.json +13095 -0
  65. package/dist/metadata/validation-patterns.json +69 -0
  66. package/dist/schemas/common.d.ts +33 -0
  67. package/dist/schemas/common.d.ts.map +1 -1
  68. package/dist/schemas/common.js +32 -0
  69. package/dist/schemas/common.js.map +1 -1
  70. package/dist/services/documentation.d.ts.map +1 -1
  71. package/dist/services/documentation.js +9 -0
  72. package/dist/services/documentation.js.map +1 -1
  73. package/dist/services/metadata.d.ts +193 -0
  74. package/dist/services/metadata.d.ts.map +1 -0
  75. package/dist/services/metadata.js +367 -0
  76. package/dist/services/metadata.js.map +1 -0
  77. package/dist/tools/discover.d.ts.map +1 -1
  78. package/dist/tools/discover.js +8 -0
  79. package/dist/tools/discover.js.map +1 -1
  80. package/dist/tools/metadata.d.ts +19 -0
  81. package/dist/tools/metadata.d.ts.map +1 -0
  82. package/dist/tools/metadata.js +612 -0
  83. package/dist/tools/metadata.js.map +1 -0
  84. package/dist/types.d.ts +1 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/package.json +1 -1
package/README.md CHANGED
@@ -70,7 +70,7 @@ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
70
70
  docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
71
71
  ```
72
72
 
73
- **Available tags:**
73
+ **Available tags:**
74
74
  - **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
75
75
  - **Continuous**: `main` (latest main branch build)
76
76
  - **Development**: `main-<date>-<sha>` (specific commit builds)
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_bgp Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Networking"
4
4
  description: |-
5
- Manages bgp_asn_set creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
5
+ Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_bgp (Data Source)
9
9
 
10
- Manages bgp_asn_set creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
10
+ Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_certificate Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Certificates"
4
4
  description: |-
5
- Manages a Certificate resource in F5 Distributed Cloud for certificate. configuration.
5
+ Manages a Certificate resource in F5 Distributed Cloud for TLS/SSL certificate management.
6
6
  ---
7
7
 
8
8
  # f5xc_certificate (Data Source)
9
9
 
10
- Manages a Certificate resource in F5 Distributed Cloud for certificate. configuration.
10
+ Manages a Certificate resource in F5 Distributed Cloud for TLS/SSL certificate management.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_log_receiver Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Monitoring"
4
4
  description: |-
5
- Manages new Global Log Receiver object. in F5 Distributed Cloud.
5
+ Manages new Log Receiver object. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_log_receiver (Data Source)
9
9
 
10
- Manages new Global Log Receiver object. in F5 Distributed Cloud.
10
+ Manages new Log Receiver object. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_network_policy Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
5
+ Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_network_policy (Data Source)
9
9
 
10
- Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
10
+ Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_site Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Uncategorized"
4
4
  description: |-
5
- Manages a Site resource in F5 Distributed Cloud for secure mesh site specification. configuration.
5
+ Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_site (Data Source)
9
9
 
10
- Manages a Site resource in F5 Distributed Cloud for secure mesh site specification. configuration.
10
+ Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_workload Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Kubernetes"
4
4
  description: |-
5
- Manages workload_flavor. in F5 Distributed Cloud.
5
+ Manages a Workload resource in F5 Distributed Cloud for workload. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_workload (Data Source)
9
9
 
10
- Manages workload_flavor. in F5 Distributed Cloud.
10
+ Manages a Workload resource in F5 Distributed Cloud for workload. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -0,0 +1,276 @@
1
+ ---
2
+ page_title: "F5XC Provider"
3
+ description: |-
4
+ Terraform provider for F5 Distributed Cloud (F5XC) enabling infrastructure as code for load balancers, security policies, sites, and networking. Community-maintained provider built from public F5 API documentation.
5
+ ---
6
+
7
+ # F5XC Provider
8
+
9
+ The F5XC Terraform provider enables infrastructure as code management for F5 Distributed Cloud (F5XC) resources. Configure HTTP/TCP load balancers, origin pools, application firewalls, service policies, cloud sites, and more through declarative Terraform configurations.
10
+
11
+ This is a community-maintained provider built from public F5 API documentation.
12
+
13
+ ## Requirements
14
+
15
+ | Name | Version |
16
+ |-----------|---------|
17
+ | terraform | >= 1.8 |
18
+
19
+ -> **Note:** This provider uses provider-defined functions which require Terraform 1.8 or later. For details, see the [Functions](/docs/functions) documentation.
20
+
21
+ ## Authenticating to F5 Distributed Cloud
22
+
23
+ The F5XC Terraform provider supports multiple authentication methods:
24
+
25
+ 1. **API Token** - Simplest method using a personal API token
26
+ 2. **P12 Certificate** - Certificate-based authentication using PKCS#12 bundle
27
+ 3. **PEM Certificate** - Certificate-based authentication using separate cert/key files
28
+
29
+ Learn more about [how to generate API credentials](https://docs.cloud.f5.com/docs/how-to/user-mgmt/credentials).
30
+
31
+ ## Example Usage
32
+
33
+ ```terraform
34
+ # Configure the F5XC Provider with API Token Authentication
35
+ provider "f5xc" {
36
+ api_url = "https://your-tenant.console.ves.volterra.io"
37
+ api_token = var.f5xc_api_token
38
+ }
39
+
40
+ # Alternatively, use environment variables:
41
+ # export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
42
+ # export F5XC_API_TOKEN="your-api-token"
43
+
44
+ variable "f5xc_api_token" {
45
+ description = "F5 Distributed Cloud API Token"
46
+ type = string
47
+ sensitive = true
48
+ }
49
+
50
+ # Or use P12 Certificate Authentication:
51
+ # provider "f5xc" {
52
+ # api_url = "https://your-tenant.console.ves.volterra.io"
53
+ # api_p12_file = "/path/to/certificate.p12"
54
+ # p12_password = var.f5xc_p12_password
55
+ # }
56
+ #
57
+ # Environment variables for P12 authentication:
58
+ # export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
59
+ # export F5XC_P12_FILE="/path/to/certificate.p12"
60
+ # export F5XC_P12_PASSWORD="your-p12-password"
61
+ ```
62
+
63
+ ## Argument Reference
64
+
65
+ ### Required (one of the following authentication methods)
66
+
67
+ * `api_token` - F5 Distributed Cloud API Token (`String`, Sensitive). Can also be set via `F5XC_API_TOKEN` environment variable.
68
+
69
+ * `api_p12_file` - Path to PKCS#12 certificate bundle file (`String`). Can also be set via `F5XC_P12_FILE` environment variable. Requires `p12_password`.
70
+
71
+ * `api_cert` and `api_key` - Paths to PEM-encoded certificate and private key files (`String`). Can also be set via `F5XC_CERT` and `F5XC_KEY` environment variables.
72
+
73
+ ### Optional
74
+
75
+ * `api_url` - F5 Distributed Cloud API URL (`String`). Base URL **without** `/api` suffix. Defaults to `https://console.ves.volterra.io`. Can also be set via `F5XC_API_URL` environment variable.
76
+
77
+ * `p12_password` - Password for PKCS#12 certificate bundle (`String`, Sensitive). Required when using `api_p12_file`. Can also be set via `F5XC_P12_PASSWORD` environment variable.
78
+
79
+ * `api_ca_cert` - Path to PEM-encoded CA certificate file (`String`). Optional, used for server certificate verification. Can also be set via `F5XC_CACERT` environment variable.
80
+
81
+ ## Authentication Options
82
+
83
+ ### Option 1: API Token Authentication
84
+
85
+ The simplest authentication method using a personal API token.
86
+
87
+ **Provider Configuration:**
88
+
89
+ ```hcl
90
+ provider "f5xc" {
91
+ api_url = "https://your-tenant.console.ves.volterra.io"
92
+ api_token = var.f5xc_api_token
93
+ }
94
+ ```
95
+
96
+ **Environment Variables:**
97
+
98
+ ```bash
99
+ export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
100
+ export F5XC_API_TOKEN="your-api-token"
101
+ ```
102
+
103
+ ### Option 2: P12 Certificate Authentication
104
+
105
+ Certificate-based authentication using a PKCS#12 bundle downloaded from F5 Distributed Cloud.
106
+
107
+ **Provider Configuration:**
108
+
109
+ ```hcl
110
+ provider "f5xc" {
111
+ api_url = "https://your-tenant.console.ves.volterra.io"
112
+ api_p12_file = "/path/to/certificate.p12"
113
+ p12_password = var.f5xc_p12_password
114
+ }
115
+ ```
116
+
117
+ **Environment Variables:**
118
+
119
+ ```bash
120
+ export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
121
+ export F5XC_P12_FILE="/path/to/certificate.p12"
122
+ export F5XC_P12_PASSWORD="your-p12-password"
123
+ ```
124
+
125
+ ### Option 3: PEM Certificate Authentication
126
+
127
+ Certificate-based authentication using separate PEM-encoded certificate and key files.
128
+
129
+ **Provider Configuration:**
130
+
131
+ ```hcl
132
+ provider "f5xc" {
133
+ api_url = "https://your-tenant.console.ves.volterra.io"
134
+ api_cert = "/path/to/certificate.crt"
135
+ api_key = "/path/to/private.key"
136
+ api_ca_cert = "/path/to/ca-certificate.crt" # Optional
137
+ }
138
+ ```
139
+
140
+ **Environment Variables:**
141
+
142
+ ```bash
143
+ export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
144
+ export F5XC_CERT="/path/to/certificate.crt"
145
+ export F5XC_KEY="/path/to/private.key"
146
+ export F5XC_CACERT="/path/to/ca-certificate.crt" # Optional
147
+ ```
148
+
149
+ -> **Note:** Environment variables are the recommended approach for CI/CD pipelines and to avoid storing sensitive credentials in version control.
150
+
151
+ ## Getting Started
152
+
153
+ 1. **Generate API Credentials**: Navigate to your F5 Distributed Cloud console, go to **Administration** > **Personal Management** > **Credentials**, and create either an API Token or download a certificate bundle.
154
+
155
+ 2. **Configure the Provider**: Add the provider configuration to your Terraform files using one of the authentication options above.
156
+
157
+ 3. **Create Resources**: Start managing F5XC resources like namespaces, load balancers, and origin pools.
158
+
159
+ ### Example: Create a Namespace
160
+
161
+ ```hcl
162
+ resource "f5xc_namespace" "example" {
163
+ name = "example-namespace"
164
+ }
165
+ ```
166
+
167
+ ### Example: Create an HTTP Load Balancer
168
+
169
+ ```hcl
170
+ resource "f5xc_http_loadbalancer" "example" {
171
+ name = "example-load-balancer"
172
+ namespace = "example-namespace"
173
+ domains = ["example.com"]
174
+ }
175
+ ```
176
+
177
+ ## MCP Configuration
178
+
179
+ This provider includes a Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with F5 Distributed Cloud resources. The MCP server provides schema information, documentation, and example configurations.
180
+
181
+ ### Quick Setup for Claude Desktop
182
+
183
+ Add the following to your Claude Desktop configuration file:
184
+
185
+ **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
186
+ **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
187
+
188
+ ```json
189
+ {
190
+ "mcpServers": {
191
+ "f5xc-terraform": {
192
+ "command": "npx",
193
+ "args": ["@robinmordasiewicz/f5xc-terraform-mcp"]
194
+ }
195
+ }
196
+ }
197
+ ```
198
+
199
+ ### Quick Setup for Claude Code (CLI)
200
+
201
+ Install the MCP server with a single command:
202
+
203
+ ```bash
204
+ claude mcp add f5xc-terraform -- npx -y @robinmordasiewicz/f5xc-terraform-mcp
205
+ ```
206
+
207
+ **Scope Options:**
208
+
209
+ * `--scope local` (default) - Available only in the current directory
210
+ * `--scope user` - Available in all your Claude Code sessions
211
+ * `--scope project` - Shared with anyone who clones the repository (saved in `.mcp.json`)
212
+
213
+ Example with user scope (recommended for personal use):
214
+
215
+ ```bash
216
+ claude mcp add --scope user f5xc-terraform -- npx -y @robinmordasiewicz/f5xc-terraform-mcp
217
+ ```
218
+
219
+ **Verify Installation:**
220
+
221
+ ```bash
222
+ claude mcp list
223
+ ```
224
+
225
+ You should see `f5xc-terraform` listed with a `✓ Connected` status.
226
+
227
+ ### Quick Setup for Visual Studio Code
228
+
229
+ VS Code 1.99+ supports MCP servers through GitHub Copilot. Choose the installation method that best fits your environment:
230
+
231
+ #### Option 1: Workspace Configuration (Recommended)
232
+
233
+ Create a `.vscode/mcp.json` file in your workspace:
234
+
235
+ ```json
236
+ {
237
+ "servers": {
238
+ "f5xc-terraform": {
239
+ "command": "npx",
240
+ "args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
241
+ }
242
+ }
243
+ }
244
+ ```
245
+
246
+ #### Option 2: Corporate Environments (No Node.js Required)
247
+
248
+ For environments where npm/Node.js cannot be installed:
249
+
250
+ 1. Download the latest `.mcpb` bundle from [GitHub Releases](https://github.com/robinmordasiewicz/terraform-provider-f5xc/releases)
251
+ 2. Place the file in a known location (e.g., `~/.mcp/f5xc-terraform-mcp.mcpb`)
252
+ 3. Create a `.vscode/mcp.json` file:
253
+
254
+ ```json
255
+ {
256
+ "servers": {
257
+ "f5xc-terraform": {
258
+ "command": "/path/to/f5xc-terraform-mcp.mcpb"
259
+ }
260
+ }
261
+ }
262
+ ```
263
+
264
+ #### Verify Installation
265
+
266
+ 1. Press `Ctrl+Shift+P` / `Cmd+Shift+P`
267
+ 2. Run `MCP: List Servers`
268
+ 3. Look for `f5xc-terraform` with a green status indicator
269
+
270
+ For complete MCP server documentation including all available tools and advanced configuration options, see the [NPM package page](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-terraform-mcp).
271
+
272
+ ## Resources and Data Sources
273
+
274
+ Browse the documentation sidebar for the complete list of resources and data sources organized by category.
275
+
276
+ <!-- Template version: 1.0.1 - MCP token optimization (#592) -->