@robinmordasiewicz/f5xc-terraform-mcp 3.4.0 → 3.5.1

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 (37) hide show
  1. package/README.md +283 -104
  2. package/dist/docs/data-sources/bgp.md +2 -2
  3. package/dist/docs/data-sources/discovery.md +2 -2
  4. package/dist/docs/data-sources/site.md +2 -2
  5. package/dist/docs/index.md +276 -0
  6. package/dist/docs/resources/bgp.md +205 -37
  7. package/dist/docs/resources/discovery.md +259 -8
  8. package/dist/docs/resources/securemesh_site.md +253 -1614
  9. package/dist/docs/resources/site.md +200 -911
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +75 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/metadata/error-patterns.json +192 -0
  15. package/dist/metadata/resource-metadata.json +13095 -0
  16. package/dist/metadata/validation-patterns.json +69 -0
  17. package/dist/schemas/common.d.ts +33 -0
  18. package/dist/schemas/common.d.ts.map +1 -1
  19. package/dist/schemas/common.js +32 -0
  20. package/dist/schemas/common.js.map +1 -1
  21. package/dist/services/documentation.d.ts.map +1 -1
  22. package/dist/services/documentation.js +9 -0
  23. package/dist/services/documentation.js.map +1 -1
  24. package/dist/services/metadata.d.ts +193 -0
  25. package/dist/services/metadata.d.ts.map +1 -0
  26. package/dist/services/metadata.js +367 -0
  27. package/dist/services/metadata.js.map +1 -0
  28. package/dist/tools/discover.d.ts.map +1 -1
  29. package/dist/tools/discover.js +8 -0
  30. package/dist/tools/discover.js.map +1 -1
  31. package/dist/tools/metadata.d.ts +19 -0
  32. package/dist/tools/metadata.d.ts.map +1 -0
  33. package/dist/tools/metadata.js +612 -0
  34. package/dist/tools/metadata.js.map +1 -0
  35. package/dist/types.d.ts +1 -1
  36. package/dist/types.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -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) -->
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_bgp Resource - terraform-provider-f5xc"
3
3
  subcategory: "Networking"
4
4
  description: |-
5
- Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
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 (Resource)
9
9
 
10
- Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
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 resource, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -15,7 +15,7 @@ Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list
15
15
 
16
16
  ```terraform
17
17
  # BGP Resource Example
18
- # Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
18
+ # 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.
19
19
 
20
20
  # Basic BGP configuration
21
21
  resource "f5xc_bgp" "example" {
@@ -73,10 +73,14 @@ resource "f5xc_bgp" "example" {
73
73
 
74
74
  ### Spec Argument Reference
75
75
 
76
- <a id="rules"></a>&#x2022; [`rules`](#rules) - Optional Block<br>Rules. A BGP Routing policy is composed of one or more rules. Note that the order of rules is critical as rules are applied top to bottom<br>See [Rules](#rules) below for details.
76
+ <a id="bgp-parameters"></a>&#x2022; [`bgp_parameters`](#bgp-parameters) - Optional Block<br>BGP Parameters. BGP parameters for the local site<br>See [BGP Parameters](#bgp-parameters) below for details.
77
+
78
+ <a id="peers"></a>&#x2022; [`peers`](#peers) - Optional Block<br>Peers. List of peers<br>See [Peers](#peers) below for details.
77
79
 
78
80
  <a id="timeouts"></a>&#x2022; [`timeouts`](#timeouts) - Optional Block<br>See [Timeouts](#timeouts) below for details.
79
81
 
82
+ <a id="where"></a>&#x2022; [`where`](#where) - Optional Block<br>Site or Virtual Site Reference. VirtualSiteSiteRefSelector defines a union of reference to site or reference to virtual_site It used to refer site or a group of sites indicated by virtual site<br>See [Where](#where) below for details.
83
+
80
84
  ### Attributes Reference
81
85
 
82
86
  In addition to all arguments above, the following attributes are exported:
@@ -85,71 +89,175 @@ In addition to all arguments above, the following attributes are exported:
85
89
 
86
90
  ---
87
91
 
88
- #### Rules
92
+ #### BGP Parameters
93
+
94
+ A [`bgp_parameters`](#bgp-parameters) block supports the following:
95
+
96
+ <a id="bgp-parameters-asn"></a>&#x2022; [`asn`](#bgp-parameters-asn) - Optional Number<br>ASN. Autonomous System Number
97
+
98
+ <a id="bgp-parameters-from-site"></a>&#x2022; [`from_site`](#bgp-parameters-from-site) - Optional Block<br>Enable this option
99
+
100
+ <a id="bgp-parameters-ip-address"></a>&#x2022; [`ip_address`](#bgp-parameters-ip-address) - Optional String<br>IP Address. Use the configured IPv4 Address as Router ID
101
+
102
+ <a id="bgp-parameters-local-address"></a>&#x2022; [`local_address`](#bgp-parameters-local-address) - Optional Block<br>Enable this option
103
+
104
+ #### Peers
105
+
106
+ A [`peers`](#peers) block supports the following:
107
+
108
+ <a id="peers-bfd-disabled"></a>&#x2022; [`bfd_disabled`](#peers-bfd-disabled) - Optional Block<br>Enable this option
109
+
110
+ <a id="peers-bfd-enabled"></a>&#x2022; [`bfd_enabled`](#peers-bfd-enabled) - Optional Block<br>BFD. BFD parameters<br>See [Bfd Enabled](#peers-bfd-enabled) below.
111
+
112
+ <a id="peers-disable"></a>&#x2022; [`disable`](#peers-disable) - Optional Block<br>Enable this option
113
+
114
+ <a id="peers-external"></a>&#x2022; [`external`](#peers-external) - Optional Block<br>External BGP Peer. External BGP Peer parameters<br>See [External](#peers-external) below.
115
+
116
+ <a id="peers-label"></a>&#x2022; [`label`](#peers-label) - Optional String<br>Label. Specify whether this peer should be
117
+
118
+ <a id="peers-metadata"></a>&#x2022; [`metadata`](#peers-metadata) - Optional Block<br>Message Metadata. MessageMetaType is metadata (common attributes) of a message that only certain messages have. This information is propagated to the metadata of a child object that gets created from the containing message during view processing. The information in this type can be specified by user during create and replace APIs<br>See [Metadata](#peers-metadata) below.
119
+
120
+ <a id="peers-passive-mode-disabled"></a>&#x2022; [`passive_mode_disabled`](#peers-passive-mode-disabled) - Optional Block<br>Enable this option
121
+
122
+ <a id="peers-passive-mode-enabled"></a>&#x2022; [`passive_mode_enabled`](#peers-passive-mode-enabled) - Optional Block<br>Enable this option
123
+
124
+ <a id="peers-routing-policies"></a>&#x2022; [`routing_policies`](#peers-routing-policies) - Optional Block<br>BGP Routing Policy. List of rules which can be applied on all or particular nodes<br>See [Routing Policies](#peers-routing-policies) below.
125
+
126
+ #### Peers Bfd Enabled
127
+
128
+ A [`bfd_enabled`](#peers-bfd-enabled) block (within [`peers`](#peers)) supports the following:
129
+
130
+ <a id="peers-bfd-enabled-multiplier"></a>&#x2022; [`multiplier`](#peers-bfd-enabled-multiplier) - Optional Number<br>Multiplier. Specify Number of missed packets to bring session down'
131
+
132
+ <a id="milliseconds-dab8b3"></a>&#x2022; [`receive_interval_milliseconds`](#milliseconds-dab8b3) - Optional Number<br>Minimum Receive Interval. BFD receive interval timer, in milliseconds
133
+
134
+ <a id="milliseconds-135c29"></a>&#x2022; [`transmit_interval_milliseconds`](#milliseconds-135c29) - Optional Number<br>Transmit Interval. BFD transmit interval timer, in milliseconds
135
+
136
+ #### Peers External
137
+
138
+ An [`external`](#peers-external) block (within [`peers`](#peers)) supports the following:
139
+
140
+ <a id="peers-external-address"></a>&#x2022; [`address`](#peers-external-address) - Optional String<br>Peer Address. Specify IPv4 peer address
141
+
142
+ <a id="peers-external-address-ipv6"></a>&#x2022; [`address_ipv6`](#peers-external-address-ipv6) - Optional String<br>Peer IPv6 Address. Specify peer IPv6 address
143
+
144
+ <a id="peers-external-asn"></a>&#x2022; [`asn`](#peers-external-asn) - Optional Number<br>ASN. Autonomous System Number for BGP peer
145
+
146
+ <a id="peers-external-default-gateway"></a>&#x2022; [`default_gateway`](#peers-external-default-gateway) - Optional Block<br>Enable this option
147
+
148
+ <a id="peers-external-default-gateway-v6"></a>&#x2022; [`default_gateway_v6`](#peers-external-default-gateway-v6) - Optional Block<br>Enable this option
149
+
150
+ <a id="peers-external-disable"></a>&#x2022; [`disable`](#peers-external-disable) - Optional Block<br>Enable this option
151
+
152
+ <a id="peers-external-disable-v6"></a>&#x2022; [`disable_v6`](#peers-external-disable-v6) - Optional Block<br>Enable this option
153
+
154
+ <a id="peers-external-external-connector"></a>&#x2022; [`external_connector`](#peers-external-external-connector) - Optional Block<br>Enable this option
155
+
156
+ <a id="peers-external-family-inet"></a>&#x2022; [`family_inet`](#peers-external-family-inet) - Optional Block<br>BGP Family Inet. Parameters for inet family<br>See [Family Inet](#peers-external-family-inet) below.
157
+
158
+ <a id="peers-external-from-site"></a>&#x2022; [`from_site`](#peers-external-from-site) - Optional Block<br>Enable this option
159
+
160
+ <a id="peers-external-from-site-v6"></a>&#x2022; [`from_site_v6`](#peers-external-from-site-v6) - Optional Block<br>Enable this option
161
+
162
+ <a id="peers-external-interface"></a>&#x2022; [`interface`](#peers-external-interface) - Optional Block<br>Object reference. This type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name<br>See [Interface](#peers-external-interface) below.
163
+
164
+ <a id="peers-external-interface-list"></a>&#x2022; [`interface_list`](#peers-external-interface-list) - Optional Block<br>Interface List. List of network interfaces<br>See [Interface List](#peers-external-interface-list) below.
165
+
166
+ <a id="peers-external-md5-auth-key"></a>&#x2022; [`md5_auth_key`](#peers-external-md5-auth-key) - Optional String<br>MD5 Authentication Key. MD5 key for protecting BGP Sessions (RFC 2385)
167
+
168
+ <a id="peers-external-no-authentication"></a>&#x2022; [`no_authentication`](#peers-external-no-authentication) - Optional Block<br>Enable this option
169
+
170
+ <a id="peers-external-port"></a>&#x2022; [`port`](#peers-external-port) - Optional Number<br>Peer Port. Peer TCP port number
171
+
172
+ <a id="peers-external-subnet-begin-offset"></a>&#x2022; [`subnet_begin_offset`](#peers-external-subnet-begin-offset) - Optional Number<br>Offset From Beginning Of Subnet. Calculate peer address using offset from the beginning of the subnet
89
173
 
90
- A [`rules`](#rules) block supports the following:
174
+ <a id="peers-external-subnet-begin-offset-v6"></a>&#x2022; [`subnet_begin_offset_v6`](#peers-external-subnet-begin-offset-v6) - Optional Number<br>Offset From Beginning Of Subnet. Calculate peer address using offset from the beginning of the subnet
91
175
 
92
- <a id="rules-action"></a>&#x2022; [`action`](#rules-action) - Optional Block<br>BGP Route Action. Action to be enforced if the BGP route matches the rule<br>See [Action](#rules-action) below.
176
+ <a id="peers-external-subnet-end-offset"></a>&#x2022; [`subnet_end_offset`](#peers-external-subnet-end-offset) - Optional Number<br>Offset From End Of Subnet. Calculate peer address using offset from the end of the subnet
93
177
 
94
- <a id="rules-match"></a>&#x2022; [`match`](#rules-match) - Optional Block<br>BGP Route Match. Predicates which have to match information in route for action to be applied<br>See [Match](#rules-match) below.
178
+ <a id="peers-external-subnet-end-offset-v6"></a>&#x2022; [`subnet_end_offset_v6`](#peers-external-subnet-end-offset-v6) - Optional Number<br>Offset From End Of Subnet. Calculate peer address using offset from the end of the subnet
95
179
 
96
- #### Rules Action
180
+ #### Peers External Family Inet
97
181
 
98
- An [`action`](#rules-action) block (within [`rules`](#rules)) supports the following:
182
+ A [`family_inet`](#peers-external-family-inet) block (within [`peers.external`](#peers-external)) supports the following:
99
183
 
100
- <a id="rules-action-aggregate"></a>&#x2022; [`aggregate`](#rules-action-aggregate) - Optional Block<br>Enable this option
184
+ <a id="peers-external-family-inet-disable"></a>&#x2022; [`disable`](#peers-external-family-inet-disable) - Optional Block<br>Enable this option
101
185
 
102
- <a id="rules-action-allow"></a>&#x2022; [`allow`](#rules-action-allow) - Optional Block<br>Enable this option
186
+ <a id="peers-external-family-inet-enable"></a>&#x2022; [`enable`](#peers-external-family-inet-enable) - Optional Block<br>Enable this option
103
187
 
104
- <a id="rules-action-as-path"></a>&#x2022; [`as_path`](#rules-action-as-path) - Optional String<br>AS-path to prepend. AS-Path Prepending is generally used to influence incoming traffic
188
+ #### Peers External Interface
105
189
 
106
- <a id="rules-action-community"></a>&#x2022; [`community`](#rules-action-community) - Optional Block<br>BGP Community list. List of BGP communities<br>See [Community](#rules-action-community) below.
190
+ An [`interface`](#peers-external-interface) block (within [`peers.external`](#peers-external)) supports the following:
107
191
 
108
- <a id="rules-action-deny"></a>&#x2022; [`deny`](#rules-action-deny) - Optional Block<br>Enable this option
192
+ <a id="peers-external-interface-name"></a>&#x2022; [`name`](#peers-external-interface-name) - Optional String<br>Name. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name
109
193
 
110
- <a id="rules-action-local-preference"></a>&#x2022; [`local_preference`](#rules-action-local-preference) - Optional Number<br>Local preference. BGP Local Preference is generally used to influence outgoing traffic
194
+ <a id="peers-external-interface-namespace"></a>&#x2022; [`namespace`](#peers-external-interface-namespace) - Optional String<br>Namespace. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace
111
195
 
112
- <a id="rules-action-metric"></a>&#x2022; [`metric`](#rules-action-metric) - Optional Number<br>MED/Metric. The Multi-Exit Discriminator metric to indicate the preferred path to AS
196
+ <a id="peers-external-interface-tenant"></a>&#x2022; [`tenant`](#peers-external-interface-tenant) - Optional String<br>Tenant. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant
113
197
 
114
- #### Rules Action Community
198
+ #### Peers External Interface List
115
199
 
116
- A [`community`](#rules-action-community) block (within [`rules.action`](#rules-action)) supports the following:
200
+ An [`interface_list`](#peers-external-interface-list) block (within [`peers.external`](#peers-external)) supports the following:
117
201
 
118
- <a id="rules-action-community-community"></a>&#x2022; [`community`](#rules-action-community-community) - Optional List<br>BGP community. An unordered set of RFC 1997 defined 4-byte community, first 16 bits being ASN and lower 16 bits being value
202
+ <a id="interfaces-2564cf"></a>&#x2022; [`interfaces`](#interfaces-2564cf) - Optional Block<br>Interface List. List of network interfaces<br>See [Interfaces](#interfaces-2564cf) below.
119
203
 
120
- #### Rules Match
204
+ #### Peers External Interface List Interfaces
121
205
 
122
- A [`match`](#rules-match) block (within [`rules`](#rules)) supports the following:
206
+ An [`interfaces`](#interfaces-2564cf) block (within [`peers.external.interface_list`](#peers-external-interface-list)) supports the following:
123
207
 
124
- <a id="rules-match-as-path"></a>&#x2022; [`as_path`](#rules-match-as-path) - Optional String<br>AS path to match. AS path can also be a regex, which will be matched against route information
208
+ <a id="name-25eca0"></a>&#x2022; [`name`](#name-25eca0) - Optional String<br>Name. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name
125
209
 
126
- <a id="rules-match-community"></a>&#x2022; [`community`](#rules-match-community) - Optional Block<br>BGP Community list. List of BGP communities<br>See [Community](#rules-match-community) below.
210
+ <a id="namespace-7cb7a8"></a>&#x2022; [`namespace`](#namespace-7cb7a8) - Optional String<br>Namespace. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace
127
211
 
128
- <a id="rules-match-ip-prefixes"></a>&#x2022; [`ip_prefixes`](#rules-match-ip-prefixes) - Optional Block<br>BGP Prefix List. List of IP prefix and prefix length range match condition<br>See [IP Prefixes](#rules-match-ip-prefixes) below.
212
+ <a id="tenant-5d2baa"></a>&#x2022; [`tenant`](#tenant-5d2baa) - Optional String<br>Tenant. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant
129
213
 
130
- #### Rules Match Community
214
+ #### Peers Metadata
131
215
 
132
- A [`community`](#rules-match-community) block (within [`rules.match`](#rules-match)) supports the following:
216
+ A [`metadata`](#peers-metadata) block (within [`peers`](#peers)) supports the following:
133
217
 
134
- <a id="rules-match-community-community"></a>&#x2022; [`community`](#rules-match-community-community) - Optional List<br>BGP community. An unordered set of RFC 1997 defined 4-byte community, first 16 bits being ASN and lower 16 bits being value
218
+ <a id="peers-metadata-description-spec"></a>&#x2022; [`description_spec`](#peers-metadata-description-spec) - Optional String<br>Description. Human readable description
135
219
 
136
- #### Rules Match IP Prefixes
220
+ <a id="peers-metadata-name"></a>&#x2022; [`name`](#peers-metadata-name) - Optional String<br>Name. This is the name of the message. The value of name has to follow DNS-1035 format
137
221
 
138
- An [`ip_prefixes`](#rules-match-ip-prefixes) block (within [`rules.match`](#rules-match)) supports the following:
222
+ #### Peers Routing Policies
139
223
 
140
- <a id="rules-match-ip-prefixes-prefixes"></a>&#x2022; [`prefixes`](#rules-match-ip-prefixes-prefixes) - Optional Block<br>Prefix list. List of IP prefix<br>See [Prefixes](#rules-match-ip-prefixes-prefixes) below.
224
+ A [`routing_policies`](#peers-routing-policies) block (within [`peers`](#peers)) supports the following:
141
225
 
142
- #### Rules Match IP Prefixes Prefixes
226
+ <a id="peers-routing-policies-route-policy"></a>&#x2022; [`route_policy`](#peers-routing-policies-route-policy) - Optional Block<br>BGP Routing policy. Route policy to be applied<br>See [Route Policy](#peers-routing-policies-route-policy) below.
143
227
 
144
- A [`prefixes`](#rules-match-ip-prefixes-prefixes) block (within [`rules.match.ip_prefixes`](#rules-match-ip-prefixes)) supports the following:
228
+ #### Peers Routing Policies Route Policy
145
229
 
146
- <a id="than-cdaaa6"></a>&#x2022; [`equal_or_longer_than`](#than-cdaaa6) - Optional Block<br>Enable this option
230
+ A [`route_policy`](#peers-routing-policies-route-policy) block (within [`peers.routing_policies`](#peers-routing-policies)) supports the following:
147
231
 
148
- <a id="match-0a0108"></a>&#x2022; [`exact_match`](#match-0a0108) - Optional Block<br>Enable this option
232
+ <a id="nodes-761998"></a>&#x2022; [`all_nodes`](#nodes-761998) - Optional Block<br>Enable this option
149
233
 
150
- <a id="prefixes-e82cab"></a>&#x2022; [`ip_prefixes`](#prefixes-e82cab) - Optional String<br>IP Prefix. IP prefix to match on BGP route
234
+ <a id="inbound-bbe39d"></a>&#x2022; [`inbound`](#inbound-bbe39d) - Optional Block<br>Enable this option
151
235
 
152
- <a id="than-7e2ba6"></a>&#x2022; [`longer_than`](#than-7e2ba6) - Optional Block<br>Enable this option
236
+ <a id="name-e2301f"></a>&#x2022; [`node_name`](#name-e2301f) - Optional Block<br>Nodes. List of nodes on which BGP routing policy has to be applied<br>See [Node Name](#name-e2301f) below.
237
+
238
+ <a id="refs-6e5457"></a>&#x2022; [`object_refs`](#refs-6e5457) - Optional Block<br>BGP routing policy. Select route policy to apply<br>See [Object Refs](#refs-6e5457) below.
239
+
240
+ <a id="outbound-195eea"></a>&#x2022; [`outbound`](#outbound-195eea) - Optional Block<br>Enable this option
241
+
242
+ #### Peers Routing Policies Route Policy Node Name
243
+
244
+ A [`node_name`](#name-e2301f) block (within [`peers.routing_policies.route_policy`](#peers-routing-policies-route-policy)) supports the following:
245
+
246
+ <a id="node-a4a8b2"></a>&#x2022; [`node`](#node-a4a8b2) - Optional List<br>Node of choice. Select BGP Session on which policy will be applied
247
+
248
+ #### Peers Routing Policies Route Policy Object Refs
249
+
250
+ An [`object_refs`](#refs-6e5457) block (within [`peers.routing_policies.route_policy`](#peers-routing-policies-route-policy)) supports the following:
251
+
252
+ <a id="kind-8c3ca2"></a>&#x2022; [`kind`](#kind-8c3ca2) - Optional String<br>Kind. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. 'route')
253
+
254
+ <a id="name-7f5085"></a>&#x2022; [`name`](#name-7f5085) - Optional String<br>Name. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name
255
+
256
+ <a id="namespace-7ab467"></a>&#x2022; [`namespace`](#namespace-7ab467) - Optional String<br>Namespace. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace
257
+
258
+ <a id="tenant-685165"></a>&#x2022; [`tenant`](#tenant-685165) - Optional String<br>Tenant. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant
259
+
260
+ <a id="uid-965d22"></a>&#x2022; [`uid`](#uid-965d22) - Optional String<br>UID. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g. Route's) uid
153
261
 
154
262
  #### Timeouts
155
263
 
@@ -163,6 +271,66 @@ A [`timeouts`](#timeouts) block supports the following:
163
271
 
164
272
  <a id="timeouts-update"></a>&#x2022; [`update`](#timeouts-update) - Optional String (Defaults to `10 minutes`)<br>Used when updating the resource
165
273
 
274
+ #### Where
275
+
276
+ A [`where`](#where) block supports the following:
277
+
278
+ <a id="where-site"></a>&#x2022; [`site`](#where-site) - Optional Block<br>Site Reference. This specifies a direct reference to a site configuration object<br>See [Site](#where-site) below.
279
+
280
+ <a id="where-virtual-site"></a>&#x2022; [`virtual_site`](#where-virtual-site) - Optional Block<br>Virtual Site. A reference to virtual_site object<br>See [Virtual Site](#where-virtual-site) below.
281
+
282
+ #### Where Site
283
+
284
+ A [`site`](#where-site) block (within [`where`](#where)) supports the following:
285
+
286
+ <a id="where-site-disable-internet-vip"></a>&#x2022; [`disable_internet_vip`](#where-site-disable-internet-vip) - Optional Block<br>Enable this option
287
+
288
+ <a id="where-site-enable-internet-vip"></a>&#x2022; [`enable_internet_vip`](#where-site-enable-internet-vip) - Optional Block<br>Enable this option
289
+
290
+ <a id="where-site-network-type"></a>&#x2022; [`network_type`](#where-site-network-type) - Optional String Defaults to `VIRTUAL_NETWORK_SITE_LOCAL`<br>Possible values are `VIRTUAL_NETWORK_SITE_LOCAL`, `VIRTUAL_NETWORK_SITE_LOCAL_INSIDE`, `VIRTUAL_NETWORK_PER_SITE`, `VIRTUAL_NETWORK_PUBLIC`, `VIRTUAL_NETWORK_GLOBAL`, `VIRTUAL_NETWORK_SITE_SERVICE`, `VIRTUAL_NETWORK_VER_INTERNAL`, `VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE`, `VIRTUAL_NETWORK_IP_AUTO`, `VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK`, `VIRTUAL_NETWORK_SRV6_NETWORK`, `VIRTUAL_NETWORK_IP_FABRIC`, `VIRTUAL_NETWORK_SEGMENT`<br>[Enum: VIRTUAL_NETWORK_SITE_LOCAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE|VIRTUAL_NETWORK_PER_SITE|VIRTUAL_NETWORK_PUBLIC|VIRTUAL_NETWORK_GLOBAL|VIRTUAL_NETWORK_SITE_SERVICE|VIRTUAL_NETWORK_VER_INTERNAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE|VIRTUAL_NETWORK_IP_AUTO|VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK|VIRTUAL_NETWORK_SRV6_NETWORK|VIRTUAL_NETWORK_IP_FABRIC|VIRTUAL_NETWORK_SEGMENT] Virtual Network Type. Different types of virtual networks understood by the system Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public (outside) network. This is an insecure network and is connected to public internet via NAT Gateways/firwalls Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on CE sites. This network is created automatically and present on all sites Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE is a private network inside site. It is a secure network and is not connected to public network. Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on CE sites. This network is created during provisioning of site User defined per-site virtual network. Scope of this virtual network is limited to the site. This is not yet supported Virtual-network of type VIRTUAL_NETWORK_PUBLIC directly conects to the public internet. Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on RE sites only It is an internally created by the system. They must not be created by user Virtual Neworks with global scope across different sites in F5XC domain. An example global virtual-network called 'AIN Network' is created for every tenant. For F5 Distributed Cloud fabric Constraints: It is currently only supported as internally created by the system. VK8s service network for a given tenant. Used to advertise a virtual host only to vk8s pods for that tenant Constraints: It is an internally created by the system. Must not be created by user VER internal network for the site. It can only be used for virtual hosts with SMA_PROXY type proxy Constraints: It is an internally created by the system. Must not be created by user Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE represents both VIRTUAL_NETWORK_SITE_LOCAL and VIRTUAL_NETWORK_SITE_LOCAL_INSIDE Constraints: This network type is only meaningful in an advertise policy When virtual-network of type VIRTUAL_NETWORK_IP_AUTO is selected for an endpoint, VER will try to determine the network based on the provided IP address Constraints: This network type is only meaningful in an endpoint VoltADN Private Network is used on F5 Distributed Cloud RE(s) to connect to customer private networks This network is created by opening a support ticket This network is per site srv6 network VER IP Fabric network for the site. This Virtual network type is used for exposing virtual host on IP Fabric network on the VER site or for endpoint in IP Fabric network Constraints: It is an internally created by the system. Must not be created by user Network internally created for a segment Constraints: It is an internally created by the system. Must not be created by user
291
+
292
+ <a id="where-site-ref"></a>&#x2022; [`ref`](#where-site-ref) - Optional Block<br>Reference. A site direct reference<br>See [Ref](#where-site-ref) below.
293
+
294
+ #### Where Site Ref
295
+
296
+ A [`ref`](#where-site-ref) block (within [`where.site`](#where-site)) supports the following:
297
+
298
+ <a id="where-site-ref-kind"></a>&#x2022; [`kind`](#where-site-ref-kind) - Optional String<br>Kind. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. 'route')
299
+
300
+ <a id="where-site-ref-name"></a>&#x2022; [`name`](#where-site-ref-name) - Optional String<br>Name. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name
301
+
302
+ <a id="where-site-ref-namespace"></a>&#x2022; [`namespace`](#where-site-ref-namespace) - Optional String<br>Namespace. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace
303
+
304
+ <a id="where-site-ref-tenant"></a>&#x2022; [`tenant`](#where-site-ref-tenant) - Optional String<br>Tenant. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant
305
+
306
+ <a id="where-site-ref-uid"></a>&#x2022; [`uid`](#where-site-ref-uid) - Optional String<br>UID. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g. Route's) uid
307
+
308
+ #### Where Virtual Site
309
+
310
+ A [`virtual_site`](#where-virtual-site) block (within [`where`](#where)) supports the following:
311
+
312
+ <a id="where-virtual-site-disable-internet-vip"></a>&#x2022; [`disable_internet_vip`](#where-virtual-site-disable-internet-vip) - Optional Block<br>Enable this option
313
+
314
+ <a id="where-virtual-site-enable-internet-vip"></a>&#x2022; [`enable_internet_vip`](#where-virtual-site-enable-internet-vip) - Optional Block<br>Enable this option
315
+
316
+ <a id="where-virtual-site-network-type"></a>&#x2022; [`network_type`](#where-virtual-site-network-type) - Optional String Defaults to `VIRTUAL_NETWORK_SITE_LOCAL`<br>Possible values are `VIRTUAL_NETWORK_SITE_LOCAL`, `VIRTUAL_NETWORK_SITE_LOCAL_INSIDE`, `VIRTUAL_NETWORK_PER_SITE`, `VIRTUAL_NETWORK_PUBLIC`, `VIRTUAL_NETWORK_GLOBAL`, `VIRTUAL_NETWORK_SITE_SERVICE`, `VIRTUAL_NETWORK_VER_INTERNAL`, `VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE`, `VIRTUAL_NETWORK_IP_AUTO`, `VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK`, `VIRTUAL_NETWORK_SRV6_NETWORK`, `VIRTUAL_NETWORK_IP_FABRIC`, `VIRTUAL_NETWORK_SEGMENT`<br>[Enum: VIRTUAL_NETWORK_SITE_LOCAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE|VIRTUAL_NETWORK_PER_SITE|VIRTUAL_NETWORK_PUBLIC|VIRTUAL_NETWORK_GLOBAL|VIRTUAL_NETWORK_SITE_SERVICE|VIRTUAL_NETWORK_VER_INTERNAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE|VIRTUAL_NETWORK_IP_AUTO|VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK|VIRTUAL_NETWORK_SRV6_NETWORK|VIRTUAL_NETWORK_IP_FABRIC|VIRTUAL_NETWORK_SEGMENT] Virtual Network Type. Different types of virtual networks understood by the system Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public (outside) network. This is an insecure network and is connected to public internet via NAT Gateways/firwalls Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on CE sites. This network is created automatically and present on all sites Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE is a private network inside site. It is a secure network and is not connected to public network. Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on CE sites. This network is created during provisioning of site User defined per-site virtual network. Scope of this virtual network is limited to the site. This is not yet supported Virtual-network of type VIRTUAL_NETWORK_PUBLIC directly conects to the public internet. Virtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected. Constraints: There can be atmost one virtual network of this type in a given site. This network type is supported on RE sites only It is an internally created by the system. They must not be created by user Virtual Neworks with global scope across different sites in F5XC domain. An example global virtual-network called 'AIN Network' is created for every tenant. For F5 Distributed Cloud fabric Constraints: It is currently only supported as internally created by the system. VK8s service network for a given tenant. Used to advertise a virtual host only to vk8s pods for that tenant Constraints: It is an internally created by the system. Must not be created by user VER internal network for the site. It can only be used for virtual hosts with SMA_PROXY type proxy Constraints: It is an internally created by the system. Must not be created by user Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE represents both VIRTUAL_NETWORK_SITE_LOCAL and VIRTUAL_NETWORK_SITE_LOCAL_INSIDE Constraints: This network type is only meaningful in an advertise policy When virtual-network of type VIRTUAL_NETWORK_IP_AUTO is selected for an endpoint, VER will try to determine the network based on the provided IP address Constraints: This network type is only meaningful in an endpoint VoltADN Private Network is used on F5 Distributed Cloud RE(s) to connect to customer private networks This network is created by opening a support ticket This network is per site srv6 network VER IP Fabric network for the site. This Virtual network type is used for exposing virtual host on IP Fabric network on the VER site or for endpoint in IP Fabric network Constraints: It is an internally created by the system. Must not be created by user Network internally created for a segment Constraints: It is an internally created by the system. Must not be created by user
317
+
318
+ <a id="where-virtual-site-ref"></a>&#x2022; [`ref`](#where-virtual-site-ref) - Optional Block<br>Reference. A virtual_site direct reference<br>See [Ref](#where-virtual-site-ref) below.
319
+
320
+ #### Where Virtual Site Ref
321
+
322
+ A [`ref`](#where-virtual-site-ref) block (within [`where.virtual_site`](#where-virtual-site)) supports the following:
323
+
324
+ <a id="where-virtual-site-ref-kind"></a>&#x2022; [`kind`](#where-virtual-site-ref-kind) - Optional String<br>Kind. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. 'route')
325
+
326
+ <a id="where-virtual-site-ref-name"></a>&#x2022; [`name`](#where-virtual-site-ref-name) - Optional String<br>Name. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name
327
+
328
+ <a id="where-virtual-site-ref-namespace"></a>&#x2022; [`namespace`](#where-virtual-site-ref-namespace) - Optional String<br>Namespace. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace
329
+
330
+ <a id="where-virtual-site-ref-tenant"></a>&#x2022; [`tenant`](#where-virtual-site-ref-tenant) - Optional String<br>Tenant. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant
331
+
332
+ <a id="where-virtual-site-ref-uid"></a>&#x2022; [`uid`](#where-virtual-site-ref-uid) - Optional String<br>UID. When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g. Route's) uid
333
+
166
334
  ---
167
335
 
168
336
  ## Common Types